Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы по PHP Как организовать вывод добавленных новостей определенной категории, в профиле пользователя?

Как организовать вывод добавленных новостей определенной категории, в профиле пользователя?


     28.07.2015    Общие вопросы по PHP    784

вопрос
Привет всем. Друзья, у меня такой вопрос. Как можно реализовать количество материалов определенной категории в профиле пользователя, вместо общего количества?

Ответил: vitnet


functions.php
function cat_count($id, $user = false) {
    global $db, $config;
    
    $id = intval($id);
    if( !$id ) return;
    
    if( isset($user) ) {
        $user = $db->safesql($user);
    }
    
    $cat_conf['sub_cats'] = true; // [true / false]
    
    $cat = unserialize(dle_cache('cat_count_' . $id . ($user ? '_' . $user : ''), $config['skin']));
    
    if( empty($cat[$id]) ) {
        $where = array();
        $ids   = $cat_conf['sub_cats'] ? get_sub_cats($id) : $id;
        $where[] = "category regexp '[[:<:]]({$ids})[[:>:]]'";
        if( $user ) $where[] = "autor = '{$user}'";
        $where[] = "approve";
        $where   = implode(" AND ", $where);
        
        $row = $db->super_query( "SELECT COUNT(*) AS count FROM " . PREFIX . "_post WHERE {$where}" );
        
        $cat[$id]['count'] = intval($row['count']);

        unset($row, $where, $ids);
        create_cache('cat_count_' . $id . ($user ? '_' . $user : ''), serialize($cat), $config['skin']);
    }

    return $cat[$id]['count'];
}

profile.php
    // cat count
    if( strpos( $tpl->copy_template, "{news=" ) !== false ) {
        $tpl->copy_template = preg_replace( "#\{news=(.+?)\}#ie", "cat_count('\\1', '{$row['name']}')", $tpl->copy_template );
    }
    // cat count

    if( !$row['allow_mail'] ) $mailbox = "checked";
    else $mailbox = "";
    ......

userinfo.tpl
{news=1}

Комментарии пользователей (2)

vitnet
218

2172 | 930

vitnet - 28 июля 2015 23:31 - Эксперт

***Комментарий удален***

KmB
1

KmB - 29 июля 2015 17:04 - Юзер

Он мне так и выдает {news=1}

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы