RTMediaNav::refresh_counts PHP Method

refresh_counts() public method

public refresh_counts ( $user_id, $where )
    function refresh_counts($user_id, $where)
    {
        $model = new RTMediaModel();
        $counts = $model->get_counts($user_id, $where);
        $media_count = array();
        foreach ($counts as $count) {
            if (!isset($count->privacy)) {
                $count->privacy = 0;
            }
            if (isset($media_count[strval($count->privacy)])) {
                foreach ($media_count[strval($count->privacy)] as $key => $val) {
                    $media_count[strval($count->privacy)]->{$key} = intval($count->{$key}) + intval($val);
                }
            } else {
                $media_count[strval($count->privacy)] = $count;
            }
            unset($media_count[strval($count->privacy)]->privacy);
        }
        if (isset($where['context'])) {
            if ('profile' === $where['context']) {
                //todo user attr
                update_user_meta($user_id, 'rtmedia_counts_' . get_current_blog_id(), $media_count);
            } else {
                if ('group' === $where['context'] && function_exists('groups_update_groupmeta')) {
                    groups_update_groupmeta($user_id, 'rtmedia_counts_' . get_current_blog_id(), $media_count);
                }
            }
        }
        return $media_count;
    }

Usage Example

Beispiel #1
0
 function create_album()
 {
     $nonce = filter_input(INPUT_POST, 'create_album_nonce', FILTER_SANITIZE_STRING);
     $_name = filter_input(INPUT_POST, 'name', FILTER_SANITIZE_STRING);
     $return['error'] = false;
     if (wp_verify_nonce($nonce, 'rtmedia_create_album_nonce') && isset($_name) && $_name && is_rtmedia_album_enable()) {
         $_context = filter_input(INPUT_POST, 'context', FILTER_SANITIZE_STRING);
         $_context_id = filter_input(INPUT_POST, 'context_id', FILTER_SANITIZE_NUMBER_INT);
         if (!empty($_context) && 'group' === $_context) {
             $group_id = !empty($_context_id) ? $_context_id : '';
             if (false === can_user_create_album_in_group($group_id)) {
                 $return['error'] = esc_html__('You can not create album in this group.', 'buddypress-media');
             }
         }
         $create_album = apply_filters('rtm_is_album_create_enable', true);
         if (!$create_album) {
             $return['error'] = esc_html__('You can not create album.', 'buddypress-media');
         }
         $create_album = apply_filters('rtm_display_create_album_button', true, $_context_id);
         if (!$create_album) {
             $return['error'] = esc_html__('You can not create more albums, you exceed your album limit.', 'buddypress-media');
         }
         if (false !== $return['error']) {
             wp_send_json($return);
         }
         $album = new RTMediaAlbum();
         // setup context values
         $context = $_context;
         if ('profile' === $context) {
             $context_id = get_current_user_id();
         } else {
             $context_id = !empty($_context_id) ? $_context_id : 0;
         }
         // setup new album data
         $album_data = apply_filters('rtmedia_create_album_data', array('title' => $_name, 'author' => get_current_user_id(), 'new' => true, 'post_id' => false, 'context' => $context, 'context_id' => $context_id));
         $rtmedia_id = $album->add($album_data['title'], $album_data['author'], $album_data['new'], $album_data['post_id'], $album_data['context'], $album_data['context_id']);
         $rtmedia_nav = new RTMediaNav();
         if ('group' === $_context) {
             $rtmedia_nav->refresh_counts($_context_id, array('context' => $_context, 'context_id' => $_context_id));
         } else {
             $rtmedia_nav->refresh_counts(get_current_user_id(), array('context' => 'profile', 'media_author' => get_current_user_id()));
         }
         if ($rtmedia_id) {
             $return['album'] = apply_filters('rtmedia_create_album_response', $rtmedia_id);
             wp_send_json($return);
         } else {
             echo false;
         }
     } else {
         $return['error'] = esc_html__('Data mismatch, Please insert data properly.', 'buddypress-media');
         wp_send_json($return);
     }
     wp_die();
 }
All Usage Examples Of RTMediaNav::refresh_counts