Перейти к публикации

Рекомендованные сообщения

Очень хочется сделать такие же каменты,т.е со счётчиком напишите пожалуйста как это можно сделать!

Если это реально,то напишите пожалуйста:)

Ссылка на сообщение
Поделиться на других сайтах

для того чтобы выводилось кол-во ком-ев, юзай поиск, а рейтинг как сделать никто не знает.. или не хочет..

Ссылка на сообщение
Поделиться на других сайтах

С помощью этого хака можно добавить количество комментариев каждого зарегестрированного пользователя.

Пример смотрите на сайте почти в каждой статье.

Приступим!

1. Правим шаблон comments.tpl.

Нужно добавить два кода. Это код для количества комментариев и сама картинка(полоса) рейтинга.

К примеру так:

<img src="{foto}" border="0" /><br />

<img src={THEME}/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']);
на
	$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,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']);
Далее после
	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","");

	}
дописываем
$arr_ratings = array(

'{THEME}/images/rank_00.png'=>'0',// Здесь первая это картинка-рейтинг, а второе число это количество комментариев. 

'{THEME}/images/rank_01.png'=>'2',

'{THEME}/images/rank_02.png'=>'4',

'{THEME}/images/rank_03.png'=>'6',

'{THEME}/images/rank_04.png'=>'8',

'{THEME}/images/rank_05.png'=>'10',

);

$image_rating = $arr_rating[0];

foreach($arr_ratings as $key=>$value)

{

  if ($row['comm_num']>=$value){$image_rating = $key;}

}

if (!isset($image_rating)){$image_rating = $arr_ratings[0];}

$tpl->set('{image_rating}',$image_rating);

if ($row['comm_num']>0){

$tpl->set('{comm_num}',$row['comm_num']);

}

else

$tpl->set('{comm_num}','-');

Не забудьте изменить пути к картинкам ну и загрузить, конечно, их на сервер! :smile:

3. Проверяем работу!

Результат работы вы можете видеть например тут счётчик комментариев

Удачи! :wink:

Изменено пользователем vovik_sumy
Ссылка на сообщение
Поделиться на других сайтах

это он написал для версий дле до 52 включительно, на 53 надо изменять запрос в шоу.фул, я не знаю как, но точно знаю что надо копать именно там =)

но все-равноvovik_sumy огромное спасибо :)

Ссылка на сообщение
Поделиться на других сайтах

для версии 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, is_register, name, " . PREFIX . "_users.email, 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']);
вставляем вот этот
	$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, 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']);

Ссылка на сообщение
Поделиться на других сайтах

ViRUS,

пасибки, работает :D

забыл, что 04 и 05 не связны, т.е. перепрыгивают через один кубик, сча дорисую =)

Ссылка на сообщение
Поделиться на других сайтах

Да,в последних комментаиях данная фича не работает,это не есть гуд <_<

+ еще,у гостей вобще не отображются картинки,хотя на capa.ru они автоматом убираются,если отвечаешь как гость

2-ое - при ответе в комментах с аяксом,счетчик комментов не обновляется,а просто сбивается,т.е отображения ни рейтинга,ни кол-ва комментов,только после обновления все становится нормально...Хорошо бы это доработать конечно,если возможно :unsure:

Ссылка на сообщение
Поделиться на других сайтах

Вобщем, я сделал, открываем файлик ласткомментс

ищем

	if ($userid) {

	$sql_comm = "SELECT " . PREFIX . "_comments.id, post_id, " . PREFIX . "_comments.date, " . PREFIX . "_comments.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, " . PREFIX . "_users.xfields as xprofile, " . PREFIX . "_post.title, " . PREFIX . "_post.date as newsdate, " . PREFIX . "_post.alt_name FROM " . PREFIX . "_comments LEFT JOIN " . PREFIX . "_post ON " . PREFIX . "_comments.post_id=" . PREFIX . "_post.id LEFT JOIN " . PREFIX . "_users ON " . PREFIX . "_comments.user_id=" . PREFIX . "_users.user_id WHERE {$stop_list}" . PREFIX . "_comments.is_register = '1' AND " . PREFIX . "_comments.user_id='$userid' ORDER BY date desc LIMIT ".$cstart.",".$number;

	$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_comments LEFT JOIN " . PREFIX . "_post ON " . PREFIX . "_comments.post_id=" . PREFIX . "_post.id WHERE {$stop_list}" . PREFIX . "_comments.is_register = '1' AND " . PREFIX . "_comments.user_id='$userid'";

	}

	else {

	$sql_comm = "SELECT " . PREFIX . "_comments.id, post_id, " . PREFIX . "_comments.date, " . PREFIX . "_comments.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, " . PREFIX . "_users.xfields as xprofile, " . PREFIX . "_post.title, " . PREFIX . "_post.date as newsdate, " . PREFIX . "_post.alt_name FROM " . PREFIX . "_comments LEFT JOIN " . PREFIX . "_post ON " . PREFIX . "_comments.post_id=" . PREFIX . "_post.id LEFT JOIN " . PREFIX . "_users ON " . PREFIX . "_comments.user_id=" . PREFIX . "_users.user_id {$stop_list}ORDER BY date desc LIMIT ".$cstart.",".$number;

	$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_comments LEFT JOIN " . PREFIX . "_post ON " . PREFIX . "_comments.post_id=" . PREFIX . "_post.id {$stop_list}";

	}
меняем на
	if ($userid) {

		$sql_comm = "SELECT " . PREFIX . "_comments.id, post_id, " . PREFIX . "_comments.date, " . PREFIX . "_comments.autor as gast_name, " . PREFIX . "_comments.email as gast_email, text, ip, is_register, name, " . PREFIX . "_users.email, news_num, " . PREFIX . "_users.comm_num, reg_date, signature, foto, fullname, land, icq, " . PREFIX . "_users.xfields as xprofile, " . PREFIX . "_post.title, " . PREFIX . "_post.date as newsdate, " . PREFIX . "_post.alt_name FROM " . PREFIX . "_comments LEFT JOIN " . PREFIX . "_post ON " . PREFIX . "_comments.post_id=" . PREFIX . "_post.id LEFT JOIN " . PREFIX . "_users ON " . PREFIX . "_comments.user_id=" . PREFIX . "_users.user_id WHERE {$stop_list}" . PREFIX . "_comments.is_register = '1' AND " . PREFIX . "_comments.user_id='$userid' ORDER BY date desc LIMIT ".$cstart.",".$number;

	$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_comments LEFT JOIN " . PREFIX . "_post ON " . PREFIX . "_comments.post_id=" . PREFIX . "_post.id WHERE {$stop_list}" . PREFIX . "_comments.is_register = '1' AND " . PREFIX . "_comments.user_id='$userid'";

	}

	else {

		$sql_comm = "SELECT " . PREFIX . "_comments.id, post_id, " . PREFIX . "_comments.date, " . PREFIX . "_comments.autor as gast_name, " . PREFIX . "_comments.email as gast_email, text, ip, is_register, name, " . PREFIX . "_users.email, news_num, " . PREFIX . "_users.comm_num, reg_date, signature, foto, fullname, land, icq, " . PREFIX . "_users.xfields as xprofile, " . PREFIX . "_post.title, " . PREFIX . "_post.date as newsdate, " . PREFIX . "_post.alt_name FROM " . PREFIX . "_comments LEFT JOIN " . PREFIX . "_post ON " . PREFIX . "_comments.post_id=" . PREFIX . "_post.id LEFT JOIN " . PREFIX . "_users ON " . PREFIX . "_comments.user_id=" . PREFIX . "_users.user_id {$stop_list}ORDER BY date desc LIMIT ".$cstart.",".$number;

		$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_comments LEFT JOIN " . PREFIX . "_post ON " . PREFIX . "_comments.post_id=" . PREFIX . "_post.id {$stop_list}";

	}
после
	if ($row['is_register']) $tpl->set('{registration}', langdate("d.m.Y", $row['reg_date']));

	else $tpl->set('{registration}', '--');
пишем
	$tpl->set('{comm_num}', intval($row['comm_num']));
после
   $tpl->set_block("'\\[signature\\](.*?)\\[/signature\\]'si","");

	}
пишем
$arr_ratings = array(

'{THEME}/images/rank_00.png'=>'0',// Здесь первая это картинка-рейтинг, а второе число это количество комментариев.

'{THEME}/images/rank_01.png'=>'2',

'{THEME}/images/rank_02.png'=>'4',

'{THEME}/images/rank_03.png'=>'6',

'{THEME}/images/rank_04.png'=>'8',

'{THEME}/images/rank_05.png'=>'10',

);

$image_rating = $arr_rating[0];

foreach($arr_ratings as $key=>$value)

{

  if ($row['comm_num']>=$value){$image_rating = $key;}

}

if (!isset($image_rating)){$image_rating = $arr_ratings[0];}

$tpl->set('{image_rating}',$image_rating);

if ($row['comm_num']>0){

$tpl->set('{comm_num}',$row['comm_num']);

}

else

$tpl->set('{comm_num}','-');

использованы методы и коды товарищей Akela и vovik_sumy, за что им огромное спасибо

Ссылка на сообщение
Поделиться на других сайтах

NoBoddy, спасибо,это действительно работает.Но остались еще 2-е проблемы:

1-ая - при ответе счетчик не обновляется как я уже написал выше и получается вот такая байда

e5d831a1fa04.jpg

2-ая - проблема когда отвечает гость,получается вот так 354936430d65.jpg,хотя на capa.ru у гостей просто появляется черточка(-)

Для 2-ой проблемы есть конечно же решение - это отрубить гостям право постить комменты.А для 1-ой?Без аякса уже никак :mellow:

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...