вопрос
Привет всем. Друзья, у меня такой вопрос. Как можно реализовать количество материалов определенной категории в профиле пользователя, вместо общего количества?
functions.php
profile.php
userinfo.tpl
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}