Вы не зашли.
А постраничку комментариев я так и непоставил, на форуме ненашел
Тогда откуда она у тебя в коде в посту #17?
И чего ее искать? Первая же тема в FAQ
но наверно с 2z по идее должна подходить
Для 2z разве была постраничка комментариев?
Посмотрел твой код, ни одного шага из предложенных мною ты не выполнил.
Просто u.reg нельзя использовать, ибо там уже есть c.reg
В общем попробуй вот это: http://www.mediafire.com/?djny5mw5td0
Взял свой "чистый" файл с постраничкой, немного изменил запрос к БД и добавил {com} и {reg}
Тебе осталось лишь плагин user_ranks установить
Не в сети
Класс! Большое спасибо за постраничку, да я делал и как ты писал, и потом еше по всякому пока хоть как то незаработало и перестало выдавать ошибки.
Единственная шас проблема что в этом варианте что ты дал незарегеным гостям ставится дата регистрации 1 января 1970, я в старом варианте это фиксил так:
if ($config['use_avatars']) {
$sql = "select c.*, u.avatar, u.com, u.news, u.reg as regdate from ".prefix."_comments c left join ".uprefix."_users u on c.author_id = u.id where c.post=".db_squote($newsID).($commID?(" and c.id=".db_squote($commID)):'')." order by c.id".($config['reverse_comments']?' desc':'').($commID?'':" limit ".$limit_start.",".$limit_count);
} else {
$sql = "select c.*, u.com, u.news, u.reg as regdate from ".prefix."_comments c left join ".uprefix."_users u on c.author_id = u.id WHERE c.post=".db_squote($newsID).($commID?(" and c.id=".db_squote($commID)):'')." order by c.id".($config['reverse_comments']?' desc':'').($commID?'':" limit ".$limit_start.",".$limit_count);
}
$comnum = 0;
foreach ($mysql->select($sql) as $row) {
$comnum++;
$tvars['vars']['id'] = $row['postdate'];
$tvars['vars']['author'] = $row['author'];
$tvars['vars']['mail'] = $row['mail'];
$tvars['vars']['date'] = LangDate(ctimestamp, $row['postdate']);
$tvars['vars']['com'] = $row['com'];
$tvars['vars']['reg'] = langdate("j Q Y", $row['regdate']);
if ($row['reg']) {
$tvars['vars']['profile_link'] = GetLink('user', $row);
$tvars['regx']["'\[profile\](.*?)\[/profile\]'si"] = '$1';
} else {
$tvars['vars']['profile_link'] = '';
$tvars['regx']["'\[profile\](.*?)\[/profile\]'si"] = '';
///------->>> $tvars['vars']['reg'] ='';
}
Скажи пожалуйста так будет корректно работать или както по другому нада?
Указал строку стрелкой а то внутри кода выделить цветом то нельзя.
Изменено SkineR (2009-07-09 04:43:15)
Не в сети
Обновился до 0.9.1 Release поставил данный плагин, всё работает нормально кроме одного, у всех кто зарегистрировался до обновления всё работает нормально, у тех кто после обновления возникает странная проблема. Регистрируюсь на сайте, пишу комментарий, вижу:
Рейтинг: {plugins_user_ranks}
обновляю страничку
вижу:
Рейтинг: Новичок
Может кто знает как это можно поправить ?
Не в сети
Не в сети
Извеняюсь за беспокойство, сам ступил. У первого ранга стояло значение 10, поэтому все у кого меньше 10 постов не получали ранг, и оставалась надпись {plugins_user_ranks}
Ps. Все гениальное просто.
Для человеческих возможностей нет границ, есть лишь преграды...
Не в сети
StronG, код маленько изменился, вот адаптировал под новый двиг 0.9.1 Release, у меня всё работает
в \engine\plugins\comments\comments.show.php
#1. найти
$sql = "select c.*, u.avatar from ".prefix."_comments c left join ".uprefix."_users u on c.author_id = u.id where c.post=".db_squote($newsID).($commID?(" and c.id=".db_squote($commID)):'');
#1. заменить на
$sql = "select c.*, u.avatar, u.com, u.news, u.status from ".prefix."_comments c left join ".uprefix."_users u on c.author_id = u.id where c.post=".db_squote($newsID).($commID?(" and c.id=".db_squote($commID)):'');
#2. найти
$sql = "select c.* from ".prefix."_comments c WHERE c.post=".db_squote($newsID).($commID?(" and c.id=".db_squote($commID)):'');
#2. заменить на
$sql = "select c.*, u.com, u.news from ".prefix."_comments c WHERE c.post=".db_squote($newsID).($commID?(" and c.id=".db_squote($commID)):'');
#3. найти
exec_acts('comments', $row);
#3. заменить на
exec_acts('comments', $row, &$tvars);
в в \plugins\user_ranks\version
#4. найти
Acts: index
заменить на
#4.
Acts: core
Изменено zheka (2009-11-19 09:28:58)
Не в сети
Не в сети
Это является хаком, а не плагином, поэтому полезность у него на порядок меньше...
Не в сети
zheka, в плагине comments предусмотрен фильтр FilterComments (курить файл \engine\plugins\comments\inc\comments.lib.php). Наследуя этот класс ты можешь изменять отображение комментариев по своему усмотрению. Например в функцию showComments передается указатель на переменную $tvars, которая хранит список переменных отображаемых в шаблонах, ты можешь добавить туда свои переменные и прописать их после этого в шаблонах. И при этом не нужно будет делать какие либо хаки движка или его плагинов.
Всегда ищу разработчиков в Киеве!
Ищешь работу программистом, пиши мне на ArnitUA@gmail.com
Не в сети
Amarelius, спасибо буду знать
StronG, у меня вот такой хак
\engine\plugins\comments\inc\comments.show.php
#1. Найди
from ".prefix."_comments c
#1. Замени на (два раза), посмотри код я вчера случайно в посте выше указал лишний параметр u.status так что тебе надо добавить только один раз если я не ошибаюсь, код выше поправил.
, u.status from ".prefix."_comments c
#2. Найти
$output = '';
foreach ($mysql->select($sql) as $row) {
$comnum++;
$tvars['vars']['id'] = $row['id'];
$tvars['vars']['author'] = $row['author'];
$tvars['vars']['mail'] = $row['mail'];
$tvars['vars']['date'] = LangDate($timestamp, $row['postdate']);
#2. Добавь после
$status = 'Гость';
switch ($row['status']) {
case 1: $status = $lang['administrator']; break;
case 2: $status = $lang['editor']; break;
case 3: $status = $lang['journalist']; break;
case 4: $status = $lang['commenter']; break;
}
$tvars['vars']['status'] = $status;
Вот мой пример comments.ini переделай цвета по своему усмотрению.
/engine/lang/russian/site/comments.ini
Добавь в конец
status = "Status:"
commenter = "<font color="#008000">Комментатор</font>"
journalist = "Журналист"
editor = "<font color="#FF2400">Модератор</font>"
administrator = "<font color="#FF2400">Администратор</font>"
/engine/lang/english/site/comments.ini
Добавь в конец
status = "Status:"
commenter = "Commentator"
journalist = "Journalist"
editor = "Editor"
administrator = "Administrator"
И в comments.show.tpl вставляешь {status}
Не в сети
zheka, в плагине comments предусмотрен фильтр FilterComments (курить файл \engine\plugins\comments\inc\comments.lib.php). Наследуя этот класс ты можешь изменять отображение комментариев по своему усмотрению. Например в функцию showComments передается указатель на переменную $tvars, которая хранит список переменных отображаемых в шаблонах, ты можешь добавить туда свои переменные и прописать их после этого в шаблонах. И при этом не нужно будет делать какие либо хаки движка или его плагинов.
Решил сделать. Но возникли вопросы:
1. Чтобы использовать фильтр FilterComments обязательно ли инклудить comments.lib.php?
2. Там ещё есть функции addCommentsNotify и addComments, можно о них узнать по подробнее? Насколько я понял они нужны, чтобы отобразать данные в момент когда комментарий только что добавили (что впринцепе мне и надо).
3. "в функцию showComments передается указатель на переменную $tvars" - так и не понял как это сделать, реализовал через доп. запрос, но всё же хотелось бы увидеть.
Собственно код во вложении - выводит кол. новостей, кол. комментариев, дату регистрации и группу пользователя. Статусы ещё не запилил, ибо не допёр почему они не работают. xD
Не в сети
1. Лучше не include_once делать, а loadPluginLibrary('comments', 'lib');
2. addComments - вызывается после сабмита кнопки отправки, но до фактического добавления комментария в базу.
addCommentsNotify - вызывается после успешного добавления комментария в БД
3.
class myFilterComments extends FilterComments {
function showComments($newsID, $commRec, $comnum, &$tvars){
// твоя обработка, например $tvars['vars']['fuck_them_all'] = "TEXT"; и юзаешь {fuck_them_all}
}
Изменено Wolverine (2010-08-20 21:46:12)
Не в сети
3.
class myFilterComments extends FilterComments { function showComments($newsID, $commRec, $comnum, &$tvars){ // твоя обработка, например $tvars['vars']['fuck_them_all'] = "TEXT"; и юзаешь {fuck_them_all} }
Так и делаю.
Я думал, что это позволит сразу же без всяких запросов написать:
$template['vars']['news'] = $row['news'];
Кстати, не до конца понял как работает addCommentsNotify, написал функцию, а проблему она так и не решила.
Изменено infinity237 (2010-08-20 23:22:45)
Не в сети
Я думал, что это позволит сразу же без всяких запросов написать:
$template['vars']['news'] = $row['news'];
Что за $row['news']? Заполнять нужно локальный массив $tvars. $template служит для заполнения переменных main.tpl
Кстати, не до конца понял как работает addCommentsNotify, написал функцию, а проблему она так и не решила.
Значит криво написал Показывай код
Изменено Wolverine (2010-08-21 00:31:11)
Не в сети
Может кто подскажет,
1. Как можно реализовать вывод в комментариях под рангом любого изображения (например звёздочек) ? вставлял html код изображения прямо в админке в поле с названием ранга, даже всё работает, но понимаю что это не есть гуд.
2. Сделал вывод в комментариях даты регистрации пользователя, но у гостей отображается дата регистрации 1 января 1970 у остальных всё нормально. Что-то не могу понять откуда эта дата вообще берётся ?
Не в сети