С помощью этого хака можно добавить количество комментариев каждого зарегестрированного пользователя.
Пример смотрите на сайте почти в каждой статье. Тестировалось на Datalife Engine 5.1-5.3
Автор: Лысак Владимир(dle.net.ua)
Приступим!
1. Правим шаблон comments.tpl.
Нужно добавить два кода. Это код для количества комментариев и сама картинка(полоса) рейтинга.
К примеру так:
<img src="{foto}" border="0" /><br />
{rank_txt}<br />
<img src=/templates/rus/images/comments.gif border="0" alt="Комментариев" />{comm_num}<br />
<img src="{image_rating}" border="0" alt="Рейтинг" />
Я добавил эти поля под фото.
2. Файл show.full.php
Заменить
$sql_result = $db->query("SELECT " . PREFIX . "_comments.id, post_id, " . PREFIX . "_comments.user_id, date, autor as gast_name, " . PREFIX . "_comments.email as gast_email, text, ip, is_register, name, " . PREFIX . "_users.email, reg_date, signature, foto, fullname, land, icq, xfields FROM " . PREFIX . "_comments LEFT JOIN " . PREFIX . "_users ON " . PREFIX . "_comments.user_id=" . PREFIX . "_users.user_id WHERE " . PREFIX . "_comments.post_id = '$news_id' order by date ".$config['comm_msort']." LIMIT ".$cstart.",".$config['comm_nummers']);
на (для 5.1, а может и 5.2)
$sql_result = $db->query("SELECT " . PREFIX . "_comments.id, post_id, " . PREFIX . "_comments.user_id, date, autor as gast_name, " . PREFIX . "_comments.email as gast_email, text, ip, is_register, name, " . PREFIX . "_users.email, user_group, reg_date, signature, foto, fullname, land, icq,comm_num, xfields FROM " . PREFIX . "_comments LEFT JOIN " . PREFIX . "_users ON " . PREFIX . "_comments.user_id=" . PREFIX . "_users.user_id WHERE " . PREFIX . "_comments.post_id = '$news_id' order by date ".$config['comm_msort']." LIMIT ".$cstart.",".$config['comm_nummers']);
на (для 5.3)
$sql_result = $db->query("SELECT " . PREFIX . "_comments.id, post_id, " . PREFIX . "_comments.user_id, date, autor as gast_name, " . PREFIX . "_comments.email as gast_email, text, ip, user_group, comm_num, is_register, name, " . PREFIX . "_users.email, user_group, reg_date, signature, foto, fullname, land, icq, xfields FROM " . PREFIX . "_comments LEFT JOIN " . PREFIX . "_users ON " . PREFIX . "_comments.user_id=" . PREFIX . "_users.user_id WHERE " . PREFIX . "_comments.post_id = '$news_id' order by date ".$config['comm_msort']." LIMIT ".$cstart.",".$config['comm_nummers']);
Далее после
if ($row['is_register'] AND $row['signature']) {
$tpl->set_block("'\\[signature\\](.*?)\\[/signature\\]'si","\\1");
$tpl->set('{signature}', stripslashes($row['signature']));
} else {
$tpl->set_block("'\\[signature\\](.*?)\\[/signature\\]'si","");
}
дописываем
$no_rating = " Гости не учавствуют в рейтинге";
$arr_ratings = array(
0=> array(
'image_rating'=>'http://www.dle.net.ua/templates/rus/images/rank_00.png',
'rank_txt'=>'Прохожий',
'count_comm'=>'0'
),
1=> array(
'image_rating'=>'http://www.dle.net.ua/templates/rus/images/rank_01.png',
'rank_txt'=>'Гость',
'count_comm'=>'1'
),
2=> array(
'image_rating'=>'http://www.dle.net.ua/templates/rus/images/rank_02.png',
'rank_txt'=>'Новичок',
'count_comm'=>'10'
),
3=> array(
'image_rating'=>'http://www.dle.net.ua/templates/rus/images/rank_03.png',
'rank_txt'=>'Опытный',
'count_comm'=>'20'
),
4=> array(
'image_rating'=>'http://www.dle.net.ua/templates/rus/images/rank_04png',
'rank_txt'=>'Шаман',
'count_comm'=>'30'
),
5=> array(
'image_rating'=>'http://www.dle.net.ua/templates/rus/images/rank_05.png',
'rank_txt'=>'Гуру',
'count_comm'=>'40'
),
);
if ($row['comm_num']==""){$row[comm_num]=0;}
for($j=0;$j<=count($arr_ratings)-1;$j++)
{
if ($row['comm_num']>=$arr_ratings[$j]['count_comm'])
{
$image_rating = $arr_ratings[$j]['image_rating'];
$rank_txt = $arr_ratings[$j]['rank_txt'];
$remain_comm = "До следующего звания Вам ".($arr_ratings[$j+1]['count_comm']-$row['comm_num'])." комментариев";
if ($row['comm_num']==0){$remain_comm = $no_rating;}
}
}
if ($row['user_group']==1)
{
$rank_txt = "<b>Администратор</b>";
$remain_comm = "";
}
$tpl->set('{image_rating}',$image_rating);
$tpl->set('{rank_txt}',$rank_txt);
$rank_txt = "";
$image_rating = "";
if ($row['comm_num']>0){
$tpl->set('{comm_num}',$row['comm_num']);
}
else
$tpl->set('{comm_num}','-');
$tpl->set('{img_rating_alt}',$remain_comm);
Аналогичные действия проводим с файлом ajax/addcomments.php
Не забудьте изменить пути к картинкам ну и загрузить, конечно, их на сервер!
3. Проверяем работу!