Хочу сделать прямой эфир, а-ля Хабр, вернее он есть, но хочу немного доработать.
Так как швабр.ру не работает и здесь в поиске не нашел похожего, прошу помощи, самому не получилось.
есть код вывода :
$items = array ();
while ($comment = db_fetch_object($result)) {
$items[] = l($comment->subject.$comment->nid, "node/$comment->nid", NULL, NULL, "comment-$comment->cid");
$res = db_query("SELECT u.name, u.uid FROM {users} u WHERE u.uid = %d", $comment->creator);
$user = db_fetch_object($res);
$group_content=l($user->name, "user/$comment->creator", array('title' => $comment->name, 'class' => 'lastcomments_section_nick'));
if($comment->group_nid) {
$sql = "SELECT node.title FROM node WHERE node.status = 1 AND nid = $comment->group_nid";
$res = db_query($sql);
$group = db_fetch_object($res);
$group_content=l($group->title, "group/$comment->group_nid", array('title' => $group->title, 'class' => 'lastcomments_section_nick'));
}
$block_content.='<div class="lastcomments_section">
'.$image.'
'.l($comment->name, "user/$comment->uid", array('title' => $comment->name, 'class' => 'lastcomments_section_nick')).' →
'.$group_content.' /
'.l($comment->title, "node/$comment->nid", array('title' => $comment->title, 'class' => 'lastcomments_section_subj'), NULL, "comment-$comment->cid").'
</div>';
что в него добавить, чтобы показывалось:
1. количество комментариев к ноде
2. если комментарий оставил гость, чтобы вместо имени пользователя писалось "Гость"
Комментарии
1. $comment_count
2. if ($comment->uid == 0) {$username = t('Guest');}
эмм.. тогда подскажите где посмотреть как правильно в код вписать
ну вы же написали целый код, там легко встроить.
В этом то и проблема, это кусок кода из модуля.
Только начинаю разбираться.
В этом то и проблема, это кусок кода из модуля.
Только начинаю разбираться.
О том, "как правильно в код вписать" см. api.drupal.ru
угу, советую до конца разобраться, а то будете выпрашивать весь код
Смотрите строчку с $block_content в конце, вот туда нужно приставить,
и еще
$result = db_query_range($query, 0, $max);
надо посмотреть что там за query, так как uid в этом запросе может и не быть.
Хорошо, попробую разобраться, спасибо за советы.
такой вот query
c.cid,
c.subject,
n.title,
n.vid,
n.type,
n.uid as creator,
u.name,
u.uid,
oga.group_nid
FROM comments c, users u, node n LEFT JOIN og_ancestry oga ON n.nid = oga.nid
WHERE c.nid = n.nid
AND u.uid = c.uid
ORDER BY c.timestamp desc ';
нет, сдаюсь
слабоват я еще сам, хотя дальше буду искать
плиз, для моего развития, разберите на примере
странный селект
яб так сделал:
u.uid, oga.group_nid
FROM comments c
inner join users u on u.uid=c.uid
inner join node n on c.nid=n.nid
LEFT JOIN og_ancestry oga ON n.nid = oga.nid
ORDER BY c.timestamp desc ';
ну да ладно.
а по твоему где $block_content в конце:
$block_content.='<div class="lastcomments_section"> . t('Comment count').':'.$comment_count
'.$image.'
'.l($commentuser, "user/$comment->uid", array('title' => $commentuser, 'class' => 'lastcomments_section_nick')).' →
'.$group_content.' /
'.l($comment->title, "node/$comment->nid", array('title' => $comment->title, 'class' => 'lastcomments_section_subj'), NULL, "comment-$comment->cid").'
ну там покрасивее сам сделай.
Никит, спасибо большое.
С гостем все заработало, а вот
ничего не выводит, Comment count: (пусто)
попробуй поменять на $node->comment_count
Нет, тоже пусто. Я уже вертел так и сяк, я в этом плохо понимаю, но может запрос к базе какой нужен?
что нибудь типа
угу, вы сами подошли к решению проблемы, осталось заменить только title на кол-во комментов
да, только у меня все как у собаки: Все понимаю, только сказать не могу
Вот и тут понимаю, но реализовать не могу, правильно написать код
$sql = "SELECT comment as comment_count FROM node WHERE nid = %n";
потом к нему пустить $comment->nid через db_result и db_query
Всё это читай в api.drupal.org.
нет, своими силами мне не осилить, надо учить азы сначала
user warning: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%n' at line 1 query: SELECT comment as comment_count FROM node WHERE n.nid = %n in /includes/database.mysql.inc on line 172.
придется выпрашивать весь код, если не сложно, добейте меня
Никит, подскажи как в оконцовке должно быть
$commentcount = db_result(db_query($sql, $comment->nid));
вот такое выдал
а ну да, ошибся, смени %n на %d
ну вобщем то пора заниматься, или просто дайте разработку фрилансеру.
заработало, только везде двойки выводит, вместо реального количества комментариев.
еще раз извиняюсь, просто "лень" мне разбираться и вспоминать, вы бы могли поставить какойнить mysql клиент, и просмотреть базу, вот тут ок-ся статистика: node_comment_statistics
следовательно запрос такой:
$commentcount = db_result(db_query($sql, $comment->nid));
Никит, большое спасибо. Сам пока слабоват в этом, не справился бы.
Пошел покупать книгу по php.
Никит, большое спасибо. Сам пока слабоват в этом, не справился бы.
Пошел покупать книгу по php.