Плагин "Комментарии без регистрации" для 0.5.1

Обновил плагин OpenComments для 0.5.1. Не совместим с предыдущими версиями LS.

В новой версии 1.3 появились след. возможности:
— вывод имени гостя в прямом эфире, на странице «весь эфир» и RSS (раньше выводилось guest);
— возможность отключать ввод email для посетителей;
— если установлена aceAdminPanel, плагин проверяет IP адрес в бане (защита от спаммеров).

Отдельная благодарность пользователю netlanc за частично проделанную работу по обновлению плагина и за идею с защитой от спаммеров.

Перед инсталляцией на всякий случай лучше сделать дамп базы.

Темы

Плагин проверялся со всеми стандартными темами (new, developer, new-jquery, developer-jquery).
Если у вас установлена другая тема, необходимо внести доп. изменения в файлы:
comment_tree.tpl, comment.tpl, block.stream_comment.tpl, comment_list.tpl

Изменения можно найти с помощью WinMerge сравнив два файла, например:
файл 1 — /plugins/opencomments/templates/skin/default/comment.tpl и
файл 2 — /templates/skin/new-jquery/comment.tpl

Что делать, если плагин не заработал?

1. Проверить базу:
— добавлены ли в таблицу prefix_comment поля guest_name и guest_email;
— в таблице prefix_user проверить есть ли пользователь с user_id = 0.
В случае необходимости добавить/создать.

2. Если возникает ошибка «Error Please try again later» при добавлении комментария, открываем firefox, устанавливаем плагин firebug. Открываем firebug->консоль и смотрим на каком месте возникает ошибка.
И только тогда, можно задавать вопрос почему не работает плагин, с описанием ошибки из firebug и установленной темой.

Пример, когда все корректно работает:
firebug

Доп. ссылки:
старая версия для 0.4
последняя девелоперская версия

24 комментария

avatar
и за идею с защитой от спаммеров
еще бы предложил сделть сразу кнопочку «забанить» для админа около IP
avatar
Классный плагин! Все работает!
avatar
спасибо за плугин, отличная тема.
всем вопрос, нет ни у кого темы для social на 0.5, а то уже пар из ушей идет. Сравнить эти файлы не так уж и просто, особенно когда видишь код в первый раз, да еще и понимаешь его в общих чертах.
avatar
flexbyte ,
оставил тут свою переделку под шаблон social, если надо проверь все ли так — мож включишь в плугин.
спс еще раз =)
avatar
После нажатия на «добавить» появляется крутящееся колесико и дальше ничего не происходит.
avatar
В firefox все работает, в IE и хроме происходит то, что написал выше
avatar
Прошу прощения, все работает и в остальных браузерах. Я просто не правильно очистил кеш.
avatar
После установки плагина возникают проблемы при добавлении комментариев в личке — после нажатия кнопки «оправить» происходит зависание, после обновления страницы коммент добавляется.

Файербаг выдает следующее:
<!--error--><br />
<b>Notice</b>:  Undefined index: guest_name in <b>Z:\home\qwerty\www\plugins\opencomments\classes\modules\comment\entity\Comment.entity.class.php</b> on line <b>13</b><br />
<script language=JavaScript src='/denwer/errors/phperror_js.php'></script><!--error--><br />
<b>Notice</b>:  Undefined index: guest_email in <b>Z:\home\qwerty\www\plugins\opencomments\classes\modules\comment\entity\Comment.entity.class.php</b> on line <b>16</b><br />
<script language=JavaScript src='/denwer/errors/phperror_js.php'></script>{"sCommentId":4,"sMsgTitle":"","sMsg":"","bStateError":false}


Подскажите, пожалуйста, как поправить.
avatar
в \plugins\opencomments\classes\actions\ActionBlog.class.php после
$oCommentNew->setDate(date("Y-m-d H:i:s"));
	$oCommentNew->setUserIp(func_getIp());
	$oCommentNew->setPid($sParentId);
	$oCommentNew->setTextHash(md5($sText));
есть строчки
$oCommentNew->setGuestName(null);
	$oCommentNew->setGuestEmail(null);

??? или вобще в евенте protected function SubmitComment() есть 2 эти строчки? не путать с
$oCommentNew->setGuestName(getRequest("guest_name"));
	    $oCommentNew->setGuestEmail($sEmail);
avatar
1. Не было, добавил
2. Это в этом же файле? То же не было. Добавил так:
protected function SubmitComment() {
$oCommentNew->setGuestName(null);
$oCommentNew->setGuestEmail(null);

Кеши очистил. Не работает. Ошибка прежняя.
avatar
1. а вообще-то ниже, в условии, эти строчки есть:
if ($guest) { 
$oCommentNew->setGuestName(getRequest("guest_name"));           
$oCommentNew->setGuestEmail(getRequest("guest_email"));         
unset($_SESSION['captcha_keystring']);
} else {
$oCommentNew->setGuestName(null);                           
$oCommentNew->setGuestEmail(null);
}
avatar
тогда смотреть нужно
avatar
нет, нужно добавить после
$oCommentNew->setDate(date("Y-m-d H:i:s"));
        $oCommentNew->setUserIp(func_getIp());
        $oCommentNew->setPid($sParentId);
        $oCommentNew->setTextHash(md5($sText));
ну или хотябы после инициализации отекта $oCommentNew
avatar
Так?
/**
		* Создаём коммент
		*/
		$oCommentNew=Engine::GetEntity('Comment');
		$oCommentNew->setTargetId($oTopic->getId());
		$oCommentNew->setTargetType('topic');
		$oCommentNew->setTargetParentId($oTopic->getBlog()->getId());
		$oCommentNew->setUserId($this->oUserCurrent->getId());
		$oCommentNew->setText($sText);
		$oCommentNew->setDate(date("Y-m-d H:i:s"));
		$oCommentNew->setUserIp(func_getIp());
		$oCommentNew->setPid($sParentId);
		$oCommentNew->setTextHash(md5($sText));
		$oCommentNew->setPublish($oTopic->getPublish());
		$oCommentNew->setGuestName(null);
		$oCommentNew->setGuestEmail(null);
		
		if ($guest) { 
            $oCommentNew->setGuestName(getRequest("guest_name"));                           
            $oCommentNew->setGuestEmail(getRequest("guest_email"));                                
            unset($_SESSION['captcha_keystring']);
        } else {
		    $oCommentNew->setGuestName(null);                           
            $oCommentNew->setGuestEmail(null);
		}


Из protected function SubmitComment() убрал, то что ставил. Не работает.
avatar
нет это просто дубль получился нужно еще смотреть где ведется обращение к этим сущностям
avatar
ок, попробую поковыряться
avatar
Посмотрел остальные файлы, ничего больше такого не нашел.

Подумал: может для личных сообщений нужно экшен добавлять, где это и прописывать, ActionBlog.class.php, как я понимаю, касается только топиков, а проблема именно в личке, в топиках все работает.
avatar
Проблему так и не смог решить. Может кто поможет?
avatar
Warning: Class 'PluginEc_ModuleComment_EntityComment' not found in Z:\home\atheist.me\www\plugins\aceadminpanel\include\adm_helper.php on line 752
Call Stack


Конфликтует с админ панелью. Активируется нормально, а уже на сайте вместо топиков выдает ошибку.
avatar
обновите админку и сбросьте кеш для надежности, разрабатывалась и тестироваось с версией админки v.1.5.271, конфликта нет
avatar
плюс Вы топиком ошиблись
avatar
У меня последняя версия админки, с ней проблем нету.

Почему я ошибся топиком, если ошибка с вашим плагином?
avatar
зато топик и плагин! не мой
avatar
как в шаблоне comment_tree.tpl определить автора топика?
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.