Skip to:
Content
Pages
Categories
Search
Top
Bottom

Search Results for 'code'

Viewing 25 results - 3,876 through 3,900 (of 32,517 total)
  • Author
    Search Results
  • #198356
    hthornhillhww
    Participant

    Hi,

    I have created a custom notification for my site when a post is published, the code used to do this is :-

    // this is to add a fake component to BuddyPress. A registered component is needed to add notifications
    function custom_filter_notifications_get_registered_components( $component_names = array() ) {
        // Force $component_names to be an array
        if ( ! is_array( $component_names ) ) {
            $component_names = array();
        }
        // Add 'custom' component to registered components array
        array_push( $component_names, 'publishpost' );
        // Return component's with 'custom' appended
        return $component_names;
    }
    add_filter( 'bp_notifications_get_registered_components', 'custom_filter_notifications_get_registered_components' );
    
    // this hooks to post creation and saves the post id
    function bp_custom_add_notification( $post_id, $post ) {
            $post = get_post( $post_id );
            $author_id = $post->post_author;
    		
    		$blogusers = get_users( array( 'role' => 'staff' ) );
    		// Array of WP_User objects.
    		foreach ( $blogusers as $user ) {
    			bp_notifications_add_notification( array(
                'user_id'           => $user->id,
                'item_id'           => $post_id,
                'component_name'    => 'publishpost',
                'component_action'  => 'publishpost_action',
                'date_notified'     => bp_core_current_time(),
                'is_new'            => 1,
            ) );   
    		}        
    }
    add_action( 'publish_post', 'bp_custom_add_notification', 99, 2 );
    
    /**
     * Format the BuddyBar/Toolbar notifications
     *
     * @since bbPress (r5155)
     *
     * @package bbPress
     *
     * @param string $action The kind of notification being rendered
     * @param int $item_id The primary item id
     * @param int $secondary_item_id The secondary item id
     * @param int $total_items The total number of messaging-related notifications waiting for the user
     * @param string $format 'string' for BuddyBar-compatible notifications; 'array' for WP Toolbar
     */
    function custom_format_buddypress_notifications( $action, $item_id, $secondary_item_id, $total_items, $format = 'string' ) 
    {
    // New custom notifications
        if ( 'publishpost_action' === $action ) {
    
            $post = get_post( $item_id );
    		$author_name = get_the_author_meta('display_name', $post->post_author);
            $custom_title = bp_core_get_user_displayname( $post->post_author ) . ' published a new post "' . get_the_title( $item_id ) . '"';
            $custom_link  = get_permalink( $post );
            $custom_text = bp_core_get_user_displayname( $post->post_author ) . ' published a new post "' . get_the_title( $item_id ) . '"';
            // WordPress Toolbar
            if ( 'string' === $format ) {
                $return = apply_filters( 'publishpost_filter', '<a href="' . esc_url( $custom_link ) . '" title="' . esc_attr( $custom_title ) . '">' . esc_html( $custom_text ) . '</a>', $custom_text, $custom_link );
            // Deprecated BuddyBar
            } else {
                $return = apply_filters( 'publishpost_filter', array(
                    'text' => $custom_text,
                    'link' => $custom_link
                ), $custom_link, (int) $total_items, $custom_text, $custom_title );
            }
    
            return $return;
    
        } 
    	
    	if ( 'bbp_new_reply' === $action ) {
    		$topic_id    = bbp_get_reply_topic_id( $item_id );
    		$topic_title = bbp_get_topic_title( $topic_id );
    		$topic_link  = wp_nonce_url( add_query_arg( array( 'action' => 'bbp_mark_read', 'topic_id' => $topic_id ), bbp_get_reply_url( $item_id ) ), 'bbp_mark_topic_' . $topic_id );
    		$title_attr  = __( 'Topic Replies', 'bbpress' );
    
    		if ( (int) $total_items > 1 ) {
    			$text   = sprintf( __( 'You have %d new replies', 'bbpress' ), (int) $total_items );
    			$filter = 'bbp_multiple_new_subscription_notification';
    		} else {
    			if ( !empty( $secondary_item_id ) ) {
    				$text = sprintf( __( 'You have %d new reply to %2$s from %3$s', 'bbpress' ), (int) $total_items, $topic_title, bp_core_get_user_displayname( $secondary_item_id ) );
    			} else {
    				$text = sprintf( __( 'You have %d new reply to %s',             'bbpress' ), (int) $total_items, $topic_title );
    			}
    			$filter = 'bbp_single_new_subscription_notification';
    		}
    
    		// WordPress Toolbar
    		if ( 'string' === $format ) {
    			$return = apply_filters( $filter, '<a href="' . esc_url( $topic_link ) . '" title="' . esc_attr( $title_attr ) . '">' . esc_html( $text ) . '</a>', (int) $total_items, $text, $topic_link );
    
    		// Deprecated BuddyBar
    		} else {
    			$return = apply_filters( $filter, array(
    				'text' => $text,
    				'link' => $topic_link
    			), $topic_link, (int) $total_items, $text, $topic_title );
    		}
    
    		do_action( 'bbp_format_buddypress_notifications', $action, $item_id, $secondary_item_id, $total_items );
    
    		return $return;
    	}
    }
    add_filter( 'bp_notifications_get_notifications_for_user', 'custom_format_buddypress_notifications', 1, 5 );

    How can i create the same for a new bbpress topic? i’m thinking i need to change this code section but not sure how

    // this hooks to post creation and saves the post id
    function bp_custom_add_notification( $post_id, $post ) {
            $post = get_post( $post_id );
            $author_id = $post->post_author;
    		
    		$blogusers = get_users( array( 'role' => 'staff' ) );
    		// Array of WP_User objects.
    		foreach ( $blogusers as $user ) {
    			bp_notifications_add_notification( array(
                'user_id'           => $user->id,
                'item_id'           => $post_id,
                'component_name'    => 'publishpost',
                'component_action'  => 'publishpost_action',
                'date_notified'     => bp_core_current_time(),
                'is_new'            => 1,
            ) );   
    		}        
    }
    add_action( 'publish_post', 'bp_custom_add_notification', 99, 2 );

    I am using woffice as the theme, bbpress version 2.5.14, buddypress version 4.1.0 and the latest version of wordpress

    Thanks

    #198333

    In reply to: Topic View

    Robin W
    Moderator
    #198316
    hthornhillhww
    Participant

    Hi,

    I have created a custom notification for my site when a post is published, if i have buddypress activated alone i see the notification text but as soon as i activate bbpress i can no longer see the notification description. In order to work out this was happening when bbpress was activated i created a whole new blank install of wpress and only installed the two plugins and when i deactivated bbpress it showed the text.

    this is how the notification shows when bbpress is activated
    https://www.dropbox.com/s/uepps9cjcd8xan5/With%20BbPress%20no%20text.PNG?dl=0

    this is how the notification shows when bbpress is NOT activated
    https://www.dropbox.com/s/03wch6bc27nsked/Without%20BbPress%20showing%20text.PNG?dl=0

    I am using Twenty seventeen as the theme, bbpress version 2.5.14, buddypress version 4.1.0 and the latest version of wordpress

    The code i have used to generate the notification is below, and this is located in \wp-content\plugins\bp-custom.php

    <?php
    // this is to add a fake component to BuddyPress. A registered component is needed to add notifications
    function custom_filter_notifications_get_registered_components( $component_names = array() ) {
        // Force $component_names to be an array
        if ( ! is_array( $component_names ) ) {
            $component_names = array();
        }
        // Add 'custom' component to registered components array
        array_push( $component_names, 'publishpost' );
        // Return component's with 'custom' appended
        return $component_names;
    }
    add_filter( 'bp_notifications_get_registered_components', 'custom_filter_notifications_get_registered_components' );
    
    // this hooks to post creation and saves the post id
    function bp_custom_add_notification( $post_id, $post ) {
            $post = get_post( $post_id );
            $author_id = $post->post_author;
            bp_notifications_add_notification( array(
                'user_id'           => $author_id,
                'item_id'           => $post_id,
                'component_name'    => 'publishpost',
                'component_action'  => 'publishpost_action',
                'date_notified'     => bp_core_current_time(),
                'is_new'            => 1,
            ) );   
    }
    add_action( 'publish_post', 'bp_custom_add_notification', 99, 2 );
    
    function custom_format_buddypress_notifications( $action, $item_id, $secondary_item_id, $total_items, $format = 'string' ) 
    {
    // New custom notifications
        if ( 'publishpost_action' === $action ) {
    
            $post = get_post( $item_id );
    
            $custom_title = $post->post_author . ' published a new post ' . get_the_title( $item_id );
            $custom_link  = get_permalink( $post );
            $custom_text = $post->post_author . ' published a new post ' . get_the_title( $item_id );
            // WordPress Toolbar
            if ( 'string' === $format ) {
                $return = apply_filters( 'publishpost_filter', '<a href="' . esc_url( $custom_link ) . '" title="' . esc_attr( $custom_title ) . '">' . esc_html( $custom_text ) . '</a>', $custom_text, $custom_link );
            // Deprecated BuddyBar
            } else {
                $return = apply_filters( 'publishpost_filter', array(
                    'text' => $custom_text,
                    'link' => $custom_link
                ), $custom_link, (int) $total_items, $custom_text, $custom_title );
            }
    
            return $return;
    
        }
    }
    add_filter( 'bp_notifications_get_notifications_for_user', 'custom_format_buddypress_notifications', 10, 5 );

    I need to get it so that when bbpress is activated i can see the custom notification description as we use bbpress for our forums

    #198305

    Topic: Topic View

    in forum Themes
    kahlidah
    Participant

    I have searched everywhere for an answer but cant find one to this

    I have created a single page forum, using a custom page and a shortcode for forum id. The layout for this page is completely different to the rest of my site. All is good with that until you click on a topic and the topic page reverts back to the standard template of the rest of my site.

    I need the single topic page to replicate that one custom page on my site and can’t for the life of me work out how. Would be good if I could just duplicate the page layout by creating a new page and using shortcode like I did with the forum page, but the only shortcode for topics I can find is [bbp-single-topic id=$topic_id] which calls for a specific topic id, not for all topics.

    How do I get around this. Thanks in advance.

    #198276
    Howdy_McGee
    Participant

    I’m receiving a couple undefined index notices whenever viewing the settings page:

    PHP Notice:  Undefined index: args in /wp-content/plugins/bbpress/includes/admin/admin.php on line 370
    PHP Notice:  Undefined index: sanitize_callback in /wp-content/plugins/bbpress/includes/admin/admin.php on line 374

    Any ideas what could be causing this?

    #198273
    Robin W
    Moderator

    you will need to do a custom import

    Custom Import

    #198250
    ahmetinal
    Participant

    i use this but i want this files to be in topic not bottom and files must view
    after upload doc view this code <iframe src="https://docs.google.com/viewer?url=MYLOCAL URL" style="width:600px; height:500px;" frameborder="0"></iframe>
    İts possible ?

    Robin W
    Moderator

    @antipole thanks for posting the solution and link to the code 🙂

    #198197

    In reply to: Styling bbPress forum

    Robin W
    Moderator

    add this to your theme’s custom css area or the custom css area tab of my style pack plugin

    .has-sidebar:not(.error404) #primary {
    	width: 100% !important;
    }
    #198190
    letaiwanais
    Participant

    hi.

    I would like to know how to manage the form for creating a new topic.

    With the plugin BBP Pack style, I have created a button “Create a new topic” and i would like that, once you click on that button, we can write our topic and publish it after.
    For that, i already have created a dedicated page (https://blogfcombeta.wpengine.com/creer-un-nouveau-sujet/) with a bbcode.
    What i want now is to redirect the create topic button on the dedicated page, and MUST important, to delete the current form displayed in the sub forum like this page : https://blogfcombeta.wpengine.com/forum-freelance/outils-freelance/outils-productivite-gestion-de-projet-freelance/

    Is It someone who know how to do that ?

    Thanks.

    PS : if you could also help me to well positionned the Subscribe button, it would be very pleasant !
    The site is still private so for access it, please using this iD : blogfcombeta / e8556cb8

    #198175
    akenach
    Participant

    Hi Folks

    i have more forums but only need show the forums by groups created by Buddypress, this is my code, only apears One course, can somebody help me?

    add_shortcode( 'DASH_forums', 'DASH_forums_func' );
    function DASH_forums_func() {
      $group_ids = groups_get_user_groups(bp_loggedin_user_id());
      foreach($group_ids["groups"] as $group_id) {
        $nombregrupo = groups_get_group(array( 'group_id' => $group_id )) -> name;
        $descripciongrupo = groups_get_group(array( 'group_id' => $group_id )) -> description;
    
        $html .= '<div id="enlacecurso"><a href="' . home_url() . '/groups/' . $nombregrupo . '/forum">' . $nombregrupo  . ' Group Forum</a>' . (end($group_ids["groups"]) == $group_id ? '' : '' ) ;
        $html .= '</div>';
        return $html;
      }
    }
    #198167
    BrianHenryIE
    Participant

    When you stop and start it should continue from where it was before. This is part of the standard bbPress importer setup. Unless you choose: “Start Over: Restart the converter from the beginning (This forces all steps back to 0. Avoid duplicate data by purging or resetting first.)” on the Import Forums screen. As it suggests, under the Reset Forums tab you can delete all existing forums, topics and posts. Unfortunately, my plugin doesn’t delete the Redirection plugin settings or the images it imports (although it may be possible to hook into the forum reset code and achieve that).

    You will have to start the import again to import the images and attachments. The converter scans each post as it’s importing for local links and then retrieves the files from the uploads folder. Some are direct links, some are links via Invision’s ~attachment.php?id=123 which need to query the database to find the true file path, and some are older style Invision v3 attachments.

    As you see, the converter just creates its own forums and ignores what’s there, so just delete them.

    I don’t think there’s any need, unless something goes wrong, to give me any access. I suggest doing a feature comparison between Invision and bbPress and see what plugins you’re going to need to retain tools you were using in Invision. If they match what I know I need, I’ll work on converting the appropriate data for both of us.

    Antipole
    Participant

    It turns out to be horribly messy in my original approach. I had to poke around to pick up stuff in different places depending on whether it was invoked from the font or backend. As an example:

    $forum_id =  bbp_get_topic_forum_id($topic_id);  // This often does not work here
    		if (!$forum_id){	// need to find it elsewhere, which is different for front and backend submissions
    			$forum_id = $_POST['bbp_forum_id'] ? $_POST['bbp_forum_id'] : $_POST['parent_id'];
    			}

    Note for frontend it is to be found in $_POST[‘bbp_forum_id’] and for backend submissions $_POST[‘parent_id’]

    In the end I adopted Robin’s suggestion for hooking onto bbp_topic_attributes_metabox_save for backend and onto bap_new_topic and bap_new_reply for frontend.

    So I now have a much simpler plugin which is sending notifications when topics or replies are actually published (even after moderation) and which works with publication from front or back ends and for moderation approval in front or backends.
    Subscription choices are lost during moderation and not available in the backend. So I force-subscribe users to their own topics and to topics they reply to on publication. (They can unsubscribe later if they wish.)

    Thank you very much to those who contributed to me getting there.
    Code is to be found here

    boborg
    Participant

    I have been troubleshooting an issue with embedded iframe table from datawrapper.de. The responsive iframe code was not changing height parameters on small screens so table was cut off. After disabling plugins I found that the problem went away after disabling bbpress.

    datawrapper.de support told me this:
    A part of the embed code contains the character string [b], it seems that your CMS automatically replaces this with an html strong tag, so the embed script no longer works.

    So I guess the replace [b] with an html strong tag is part of bbpress? Any way to turn that off in bbpress?

    #198134
    BrianHenryIE
    Participant

    The forums should import ok, just without the proper title and description, and you’ll be able to see them at /wp-admin/edit.php?post_type=forum. When mine import, one parent forum with no posts contains our 13 actual forums.

    The upload folder is for copying across the images, emoticons, and attachments users have added to their posts on Invision 4 forum. If your Invision 4 forum is still live (which it probably is), the URL of your forum with /uploads added should work fine. If you set $ipb_uploads_url to null the forums themselves should import no problem, but without media.

    The table prefix is dependent on how your Invision database was set up initially. Typically, if it’s the only application using the database, there’s no need for a prefix, but if multiple applications (e.g. WordPress and Invision) share a database it’s prudent to set a prefix on the database table names so you can be confident both applications won’t try to use the same table name (e.g. “users”), and it’s essential if multiple instances of the same application share the same database (e.g. two independent WordPress installations).

    The forums->topics->replies associations all work correctly for me. Are you saying that your replies have imported but aren’t associated correctly with their topics? This isn’t something that needs the importer to complete to verify is working. Although, the topics might show how many replies are part of the topic before the replies themselves have been imported. My import takes a few hours to complete.

    Let me know how you get on. I’ve still to do more work on this myself before I finally migrate our forums so now is a good time for feedback and suggestions.

    #198127
    Robin W
    Moderator

    I doubt that this will get coded.

    If you want a specific solution, contact me via

    Contact me

    Robin W
    Moderator

    in your original code, try

    $reply_id = bbp_get_topic_id( $post->ID );
    $topic_id = $_POST['parent_id']  ;
    $forum_id = bbp_get_topic_forum_id( $topic_id );
    $reply_author_id = bbp_get_reply_author_id($reply_id);
    

    I think that $_POST[‘parent_id’] should be available at the point the transition_post_status runs

    you might also find that $post->parent_id is there as well

    #198109
    Radzio125
    Participant

    Hi, I want to display 3 latest topics with new replies for each forum category. In loop-single-forum.php file I created this:

    $count = bbp_get_forum_topic_count();
    $user = bbp_get_topic_author_id( bbp_get_forum_last_topic_id() );
    if ( $count != 0 ) {
    	echo '<a href="'. bbp_get_forum_last_topic_permalink().'"></a>'; // Link to the topic
    	echo'<a href="'. bbp_get_user_profile_url( $user ) .'"><img class="avatar" src="'. bp_core_fetch_avatar ( array( 'item_id' => $user, 'type' => 'full', 'html' => false ) ).'" /></a>'; // Link to the topic author profile with author's avatar
    	echo '<div class="title">'. bbp_get_forum_last_topic_title().'</div>'; // Title of the topic with last activity
    	echo '<div class="activity">Last activity '. bbp_get_forum_last_active_time().'</div>'; // Time of the topic last activity
    } else {
    	echo 'No topics'; // Information if there is no topics
    }

    How to display two more topics (if they exist)?

    Antipole
    Participant

    @robin-w Ahh yes! Thanks for putting me right on the number of args.
    If I follow your route, I will have work to do to work out when a topic/reply is changing to ‘publish’ as in my code.

    Antipole
    Participant

    @Barry – thanks for your interest.

    Standard WP and bbPress email notifications fall short because

    1. When a WP post is held for moderation, admin/moderators do not get any notification.
    2. When a WP post or comment is held for moderation and subsequently approved, subscribers are not notified
    3. When bbPress topics or replies are held for moderation and subsequently approved, subscribers are not notified.
    4. Sometimes it is best for admin or moderator to create or moderate topics or replies in the backend. Standard bbPress does not send subscriber notifications when they are published from the backend.

    I am working on a plugin which uses the transition_post_status hook to look for publications of the above and make notifications. I show the full plugin as of now here.

    The section above line 76 deals with WP posts held for moderation and subsequently approval. It is basically cloned from another plugin as acknowledged.

    From line 72 is my work. It looks for a topic or reply status changing to ‘publish’.
    It works when a topic or reply is published from the frontend but not from the backend. The relevant bit of code gets executed correctly, but the relevant variables are not set up correctly. I suspect that some of the functions I am calling rely on globals that are set up by the bbPress frontend but these are not in place for backend actions.

    My trace statements reveal that:

    1. Publishing a topic from the frontend works fine – BUT trace shows that $forum_id is set to zero. So the bbPress_notify_forum_subscribers call works without the $forum_id parameter being set. It must work it out otherwise.
    2. Publishing a topic from the backend fails to notify subscribers. bbPress_notify_forum_subscribers presumably fails to workout the forum-id behind the scenes.
    3. On reply publication, the code gets the $reply_id OK but the notifications do not get sent, so it must fail to work out the missing information.

    I think my basic approach of using the transition_post_status hook is good as it allows me to act when a post changes to publish from draft/pending etc. whether from the front or backends. But the calls to collect the required ids are not all they seem and rely on behind the scenes poking around in stuff that is not in place when invoked from the backend.

    Robin W
    Moderator

    @antipole

    you need to specify the number of arguments in the call so..

    function test_reply_call($reply_id, $topic_id, $forum_id, $reply_to){
    	error_log("Trace rest reply: $reply_id: ". strval($reply_id) . "; $topic_id: " . strval($topic_id) . "; $forum_id: " . strval($forum_id) . "; $reply_to: " . strval($reply_to));
    	}
    add_action('bbp_reply_attributes_metabox_save', 'test_reply_call', 10 , 4);

    the ’10’ is the priority – 10 is the standard, the higher the number the higher the priority so the order in which any other links to this hook are run, and the ‘4’ the numbers of arguments you are calling through

    Barry
    Participant

    Hi @antipole,

    Looking back at your original strategy, you only shared a fragment of your code – so it’s hard to be sure of this – but I’m wondering if the problem are the assumptions you are making about the type of $post your callback is receiving.

    https://gist.github.com/barryhughes/30bacb98b716ecaa864f0b6eaa7c051c

    Does a revised approach like the one I shared above work for you? It should give you the author ID (whether that is the author of the reply or the topic) and the forum ID. If you need to, you could add an extra test to confirm the status change reflects publication (vs a topic being set back to draft by an admin).

    #198087
    Robin W
    Moderator

    I think this does it

    $count = rew_count_no_replies () ;
    
    function rew_count_no_replies () {
    	global $wpdb;
    	$type = bbp_get_topic_post_type() ;
    	$count = (int) $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts, $wpdb->postmeta	
    	WHERE $wpdb->posts.post_type = '$type'
    	AND ( $wpdb->posts.post_status = 'publish' OR $wpdb->posts.post_status = 'private' )
    	AND $wpdb->posts.ID = $wpdb->postmeta.post_id 
        AND $wpdb->postmeta.meta_key = '_bbp_reply_count'
        AND $wpdb->postmeta.meta_value = 0 ");
    	return $count ;
    }
    Antipole
    Participant

    @robin-w thanks. I am experimenting with your suggestion. I have

    function test_reply_call($reply_id, $topic_id, $forum_id, $reply_to){
    	error_log("Trace rest reply: $reply_id: ". strval($reply_id) . "; $topic_id: " . strval($topic_id) . "; $forum_id: " . strval($forum_id) . "; $reply_to: " . strval($reply_to));
    	}
    add_action('bbp_reply_attributes_metabox_save', 'test_reply_call');

    This is fired when I post a reply in the backend, but I get

    Fatal error: Uncaught ArgumentCountError: Too few arguments to function test_reply_call(), 1 passed in /home/…/wp-includes/class-wp-hook.php on line 288 and exactly 4 expected in /home/…/wp-content/plugins/ovni-submission-notifications/pending-submission-notifications.php

    The do_action in bbp_reply_attributes_metabox_save does use 4 arguments. What am I doing wrong please?

    Robin W
    Moderator

    there is also

    do_action( 'bbp_topic_attributes_metabox_save', $topic_id, $forum_id );

    for topics

Viewing 25 results - 3,876 through 3,900 (of 32,517 total)
Skip to toolbar