Последние комментарии/активные темы для Drupal
Опубликовано 23 Янв 2011 | Отзывов (3)
Категории: Компьютерное | Теги:
Невероятно но факт, в одной из лидирующих на рынке cms нет стандартного или общепринятого модуля последних комментариев, поэтому каждый выкручивается как может. Я выкрутился следующим образом: нашёл в инете пару сниппетов по теме и доработал напильником под свои нужды. Получилось нечто среднее между последними комментариями и горячими темами: выводится n горячих материалов с текстом последнего комментария, датой и именем автора.
Результат выглядит так:
Заголовок материала в виде ссылки (кол-во камментов)
Текст каммента обрезанный на 60 символе с убранными тэ…
2011-01-23 17:43
от: Ник автора оформленный в ссылку
Код под катом.
<?php
$number=15; //кол-во камментов
$commentlenght=60; //ограничение длины каммента
$endcomment=’…’; //символы добавляемые при обрезании каммента
$result = db_query_range(db_rewrite_sql(
«SELECT n.type,n.title,n.nid,cm.cid,u.uid,u.name,cm.cnt,cc.timestamp,cc.comment
FROM {node_comment_statistics} nc JOIN {node} n ON nc.comment_count > 0 AND n.nid=nc.nid
INNER JOIN (SELECT max(c.cid) as cid ,c.nid,count(c.cid) as cnt FROM {comments} c GROUP by c.nid ) cm
ON cm.nid=n.nid
INNER JOIN {comments} cc ON cc.cid=cm.cid
INNER JOIN {users} u ON u.uid=cc.uid
ORDER BY nc.last_comment_timestamp DESC»),0,$number);
$items=array();
while($comment=db_fetch_object($result)){
$tte=»;
if(strlen(strip_tags($comment->comment))>$commentlenght) { $tte=$endcomment; };
$items[] = ‘<strong>’. l($comment->title, ‘node/’.
$comment->nid, array(‘fragment’ => ‘comment-’. $comment->cid)).’</strong> (‘.$comment->cnt.’)’ .’<br />’.strip_tags(drupal_substr($comment->comment, 0, $commentlenght)).$tte.’<br />’.format_date($comment->timestamp, ‘small’).’<br />от: <em>’.theme(‘username’,user_load($comment->uid)). ‘</em>’;
}
if(count($items)){
print theme(‘item_list’,$items);
}
?>
Для использования создать блок и вставить туда код. Если не работает – значит не включен PHP code в форматах ввода.
P.S. Постить на оф.сайт не буду в виду его фееричной угрёбищности и неюзабельности. Придумать систему хуже пожалуй невозможно.
Поделиться в соц. сетях
Отзывы
Отзывов (3) на «Последние комментарии/активные темы для Drupal»
Ваш отзыв
07 Окт 2011 18:35
Как убрать то, что отображается после поля ввода комментария? (разъяснения о стилях и т.п.)
28 Окт 2011 13:46
Большое вам спасибо, разобрался.
04 Ноя 2011 11:48
Как раз то, что давно искал. Теперь поставлю последние комментарии у себя