Skip to:
Content
Pages
Categories
Search
Top
Bottom

Forum Replies Created

Viewing 21 replies - 1 through 21 (of 21 total)

  • creativesinside
    Participant

    @creativesinside

    I had a very strange circumstance based on a custom notifications loop where we hooked into the messaging system. I had to find my post_id from the message thread_id. Probably won’t help anyone but maybe! 😀


    creativesinside
    Participant

    @creativesinside

    object(BP_Notifications_Notification)#394 (8) { ["id"]=> string(3) "297" ["item_id"]=> string(3) "242" ["secondary_item_id"]=> string(1) "1" ["user_id"]=> string(1) "1" ["component_name"]=> string(8) "messages" ["component_action"]=> string(11) "new_message" ["date_notified"]=> string(19) "2015-07-20 20:11:46" ["is_new"]=> string(1) "0" }

    The actual Post ID in question is 756.


    creativesinside
    Participant

    @creativesinside

    Is this what you were looking for?
    object(BP_Notifications_Notification)#394 (8) { ["id"]=> string(26) "bp_get_the_notification_id" ["item_id"]=> NULL ["secondary_item_id"]=> NULL ["user_id"]=> NULL ["component_name"]=> NULL ["component_action"]=> NULL ["date_notified"]=> NULL ["is_new"]=> NULL }


    creativesinside
    Participant

    @creativesinside

    After reverting the file … it’s still just displaying the “notification id.”


    creativesinside
    Participant

    @creativesinside

    Ack my bad! I’m fairly new to php and super new to Buddypress.

    Ok soooo … in the file notifications-loop.php inside the loop I’ve added:

    				$notificationid7 = bp_get_the_notification_id();
    				$obj = bp_notifications_get_notification( $notificationid7 );

    And where I need to display the link (also in notifications-loop.php):

    <a href="/pins/<?php echo $obj->item_id; ?>">view</a>

    Lastly, where I passed the item ID in bp-notifications-functions.php:

    function bp_notifications_add_notification( $args = array() ) {
    
    	$r = wp_parse_args( $args, array(
    		'user_id'           => 0,
    		'item_id'           => $post_id,
    		'secondary_item_id' => 0,

    However it’s echoing the notification number … not the post ID.


    creativesinside
    Participant

    @creativesinside

    What’d you do to fix your code? I’m still stuck! 😀


    creativesinside
    Participant

    @creativesinside

    function allofdalights(){
    $obj = bp_notifications_get_notification( $id );
    echo $obj->item_id; }

    creativesinside
    Participant

    @creativesinside

    This is my code:

    <?php while ( bp_the_notifications() ) : bp_the_notification();
    
    $user_id = $bp->notifications->query_loop->notification->secondary_item_id;
    //bp_notifications_mark_notification(bp_get_the_notification_id(),false);
     ?>
    <?php 
                                $messageId = buddypress()->notifications->query_loop->notification->item_id;
                                $message = messages_get_message($messageId);
                                $image = null;
                                if ($message) {
                                    $title = apply_filters( 'bp_get_message_thread_from', bp_core_get_userlink( $message->sender_id ) );
                                    if ($message->subject == "comment on your post") {
                                       $title .= " commented on your post";
                                    } elseif ($message->subject == "like your post") {
                                       $title .= " liked your post";
                                    } else {
                                       $title = null;
                                    }
                                    
                                    $image = bp_messages_get_meta($messageId, 'images');
    				$obj = bp_notifications_get_notification( $id ); 
                                }
                             ?>

    And the echo:

    <div><a href="/pins/<?php echo $obj->item_id; ?>">VIEW</a></div>


    creativesinside
    Participant

    @creativesinside

    I also don’t know what to do with:

    $obj = bp_notifications_get_notification( $id );
    echo $obj->item_id;

    Do I make a function of it?


    creativesinside
    Participant

    @creativesinside

    Is this the proper way to have it setup at the function?

    function bp_notifications_add_notification( $args = array() ) {
    
    	$r = wp_parse_args( $args, array(
    		'user_id'           => 0,
    		'item_id'           => $post_id,
    		'secondary_item_id' => ,

    creativesinside
    Participant

    @creativesinside

    $notificationpostid = bp_notifications_get_notification(secondary_item_id);


    creativesinside
    Participant

    @creativesinside

    Wicked awesome! Going to check it out now.


    creativesinside
    Participant

    @creativesinside

    Didn’t mean to post this.


    creativesinside
    Participant

    @creativesinside

    Can I simply add post_id into this?

    function bp_notifications_add_notification( $args = array() ) {
    
    	$r = wp_parse_args( $args, array(
    		'user_id'           => 0,
    		'item_id'           => 0,
    		'secondary_item_id' => 0,
    		'component_name'    => '',
    		'component_action'  => '',
    		'date_notified'     => bp_core_current_time(),
    		'is_new'            => 1,
    		'allow_duplicate'   => false,
    	) );
    
    	// Check for existing duplicate notifications
    	if ( ! $r['allow_duplicate'] ) {
    		// date_notified, allow_duplicate don't count toward
    		// duplicate status
    		$existing = BP_Notifications_Notification::get( array(
    			'user_id'           => $r['user_id'],
    			'item_id'           => $r['item_id'],
    			'secondary_item_id' => $r['secondary_item_id'],
    			'component_name'    => $r['component_name'],
    			'component_action'  => $r['component_action'],
    			'is_new'            => $r['is_new'],
    		) );
    
    		if ( ! empty( $existing ) ) {
    			return false;
    		}
    	}
    
    	// Setup the new notification
    	$notification                    = new BP_Notifications_Notification;
    	$notification->user_id           = $r['user_id'];
    	$notification->item_id           = $r['item_id'];
    	$notification->secondary_item_id = $r['secondary_item_id'];
    	$notification->component_name    = $r['component_name'];
    	$notification->component_action  = $r['component_action'];
    	$notification->date_notified     = $r['date_notified'];
    	$notification->is_new            = $r['is_new'];
    
    	// Save the new notification
    	return $notification->save();
    }

    creativesinside
    Participant

    @creativesinside

    We hooked into a liking plugin and wp-comments to include notifications for activity on those two actions.

    Then the notifications are coming in Ajax to a flyout window. 😀


    creativesinside
    Participant

    @creativesinside

    I have tried about 100 different things and I thought this would work:

    get_post_meta($post->ID,'thread_id');


    creativesinside
    Participant

    @creativesinside

    Or how can I add a column in the database table bp_notifications for post_id?

    Thanks!


    creativesinside
    Participant

    @creativesinside

    The goal being … I want to make a clickable link in the notification to go to the post corresponding to the notification.


    creativesinside
    Participant

    @creativesinside

    You my friend are beautiful! 😀 😀

    Worked like a charm. Thanks!


    creativesinside
    Participant

    @creativesinside

    Trying to clean up the mess that the other developer created basically. We came up with a different solution.

    Basically we changed What’s New to “About Me” but we wanted to allow for an empty “About Me.”

    We also moved the Activity Stream to a, “My Profile” page and did something very hacky by calling the Activity Stream and hiding everything except for “Delete” and naming that “Clear my About Me.”

    BTW .. I am very new to development. Thanks for helping out.


    creativesinside
    Participant

    @creativesinside

    Ack! My bad … new to the forum!!!

    add_filter('pre_post_title', 'wpse28021_mask_empty');
    add_filter('pre_post_content', 'wpse28021_mask_empty');
    function wpse28021_mask_empty($value)
    {
        if ( empty($value) ) {
            return ' ';
        }
        return $value;
    }
    
    add_filter('wp_insert_post_data', 'wpse28021_unmask_empty');
    function wpse28021_unmask_empty($data)
    {
        if ( ' ' == $data['post_title'] ) {
            $data['post_title'] = '';
        }
        if ( ' ' == $data['post_content'] ) {
            $data['post_content'] = '';
        }
        return $data;
    }
Viewing 21 replies - 1 through 21 (of 21 total)
Skip to toolbar