Написал вот такую штуку. Выводит список всех новых (непрочтенных) комментариев на материалы текущего юзера, а также новых комментариев-ответов на комментарии юзера.
<?
global $user;
$any = FALSE;
$r = db_query("SELECT * FROM {node} WHERE uid=%s ORDER BY `created` DESC",$user->uid);
while ($node=db_fetch_object($r)) {
$new = comment_num_new($node->nid);
if (!$new) continue;
print("<h2 class='title'>Re: {$node->title}</h2>\n");
$cr = db_query("SELECT * FROM {comments} WHERE nid=%d ORDER BY timestamp",$node->nid);
while ($comment = db_fetch_object($cr)) {
if (node_mark($comment->nid,$comment->timestamp) != MARK_READ) {
print(theme('comment',$comment));
$any = TRUE;
}
}
}
if (!$any) {
?>
<p>Новых комментариев нет.</p>
<?}?>
<h2>Новые ответы на мои комментарии</h2>
<?
function c_replies($cid) {
$comments = array();
$c = db_query("SELECT * FROM {comments} WHERE pid=%d",$cid);
while ($comment = db_fetch_object($c)) {
if (node_mark($comment->nid,$comment->timestamp) != MARK_READ) {
$comments[] = $comment;
if (comment_num_replies($comment->cid) > 0) {
array_push($comments,c_replies($comment->cid));
}
}
}
return $comments;
}
$any = FALSE;
$r = db_query("SELECT * FROM {comments} WHERE uid=%d",$user->uid);
while ($my=db_fetch_object($r)) {
$comments = c_replies($my->cid);
if (count($comments) > 0) {
print("<h2 class='title'>Re: {$my->subject}</h2>\n");
foreach ($comments as $comment) {
if ($comment->timestamp) {
print(theme('comment',$comment));
$any = TRUE;
}
}
}
}
if (!$any) {
?>
<p>Новых ответов нет.</p>
<?}?>
Если убрать проверку на !=MARK_READ, а добавить ограничение по количеству выводимых записей - получатся просто последние N ответов текущему юзеру.
Комментарии
интересно.
и как нагружает?)
хорошо?:)
Ну я ж не предлагаю это на главную выводить
Для меня удобнее трекер.
нет привязки к целям использования. Нет отображения, отвечающего целям использования. Нет механизма постоянного уточнения иерархии контента без переделки. Нет уточнения контента до последнего нижнего уровня. Нет иерархии для нескольких напралений использования всего контента
тяжело