вопрос
Здравствуйте! Есть простенький код из ≈ 5-ти строчек, которым выводиться легенький рейтинг активности пользователя. Как добавить в него подсчет баллов за выставление рейтинга к комментариям и новостям. Например, за один лайк коммента - 2 балла, за лайк самой новости - 3. Буду благодарен за помощь!
Собственно сам код:
Собственно сам код:
$conf_points = array();
$conf_points['regtime'] = round( ( ( $_TIME-$row['reg_date'])/86400 ), 0 ); // 1 за день с момента регистрации
$conf_points['foto'] = ($member_id['foto'] and (file_exists( ROOT_DIR . "/uploads/fotos/" . $member_id['foto'] ))) ? 0 : 30; // 30 за загрузку авы
$conf_points['land'] = $row['land'] == '' ? 0 : 20; // 20 за зполнение места жительства
$conf_points['name'] = $row['fullname'] == '' ? 0 : 20; // 20 за зполнение имени
$conf_points['comments'] = ( $row['comm_num']* 5 ); // 5 за каждый комментарий
$tpl->set('{confidence_level}', array_sum($conf_points));
if( $row['is_register'] ) $tpl->set_block( "'\\[show_confidence\\](.*?)\\[/show_confidence\\]'si", "\\1" );
else $tpl->set_block( "'\\[show_confidence\\](.*?)\\[/show_confidence\\]'si", "" );
Наверное так:
Запросы лучше кешировать скорее всего ключом основанном на значении $row['name'] для обеспечения их уникальности для каждого пользователя.
$row_news = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_logs WHERE member = '{$row['name']}' ");
$count_news = $row_news['count'];
$result_news = $count_news * 3; // по 3 единицы за лайк каждой новости
$row_comm = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_comment_rating_log WHERE member = '{$row['name']}' ");
$count_comm = $row_comm['count'];
$result_comm = $count_comm * 2; // по 2 единицы за лайк каждого комментария
$conf_points = array();
$conf_points['result_news'] = $result_news;
$conf_points['result_comm'] = $result_comm;
$conf_points['regtime'] = round( ( ( $_TIME-$row['reg_date'])/86400 ), 0 ); // 1 за день с момента регистрации
$conf_points['foto'] = ($member_id['foto'] and (file_exists( ROOT_DIR . "/uploads/fotos/" . $member_id['foto'] ))) ? 0 : 30; // 30 за загрузку авы
$conf_points['land'] = $row['land'] == '' ? 0 : 20; // 20 за заполнение места жительства
$conf_points['name'] = $row['fullname'] == '' ? 0 : 20; // 20 за заполнение имени
$conf_points['comments'] = ( $row['comm_num']* 5 ); // 5 за каждый комментарий
$tpl->set('{confidence_level}', array_sum($conf_points));
if( $row['is_register'] ) $tpl->set_block( "'\\[show_confidence\\](.*?)\\[/show_confidence\\]'si", "\\1" );
else $tpl->set_block( "'\\[show_confidence\\](.*?)\\[/show_confidence\\]'si", "" );
Запросы лучше кешировать скорее всего ключом основанном на значении $row['name'] для обеспечения их уникальности для каждого пользователя.