Плагин «Удаление комментариев»

Описание

Плагин позволяет пользователям удалять и восстанавливать любые комментарии в своих топиках.
Поддерживается ограничение по рейтингу и времени.

Совместим с шаблонами:
— Synio;
— Mobile;
— Vintage;
— Inspiration.

GitHub: github.com/wasja1982/livestreet_deletecomment

Настройка

Настройка плагина осуществляется редактированием файла "/plugins/deletecomment/config/config.php".

Поддерживаемые директивы:
1) $config['use_limit_rating'] — Использовать ограничение рейтинга для удаления/восстановления комментариев. По умолчанию влючено (true).

2) $config['limit_rating'] — Порог рейтинга при котором юзер может удалять/восстанавливать комментарии (используется при $config['use_limit_rating'] = true). По умолчанию 0.

3) $config['use_limit_time'] — Использовать ограничение времени, в течении которого возможно удаление/восстановление комментариев (от даты создания комментария). По умолчанию влючено (true).

4) $config['limit_time'] — Период времени (в секундах), в течении которого возможно удаление/восстановление комментариев (используется при $config['use_limit_time'] = true). По умолчанию 7 суток.

Установка

1. Скопировать плагин в каталог /plugins/ (папка должна называться «deletecomment», а не «livestreet_deletecomment»)
2. Через панель управления плагинами (/admin/plugins/) запустить его активацию.

55 комментариев

avatar
Один вопрос — зачем?
avatar
Разве не очевидно? Модерация контента. Иногда пользователи позволяют себе ругательства. Администрация не всегда оперативно успевает пресекать такого рода комментарии.
avatar
Пользователям виднее, какие комментарии им не хочется видеть в своих топиках.
Вас же не удивляет возможность удалить комментарии на своей стене вконтакте?
avatar
Вконтакте нет дерева комментариев. У нас же, если комментарий выпадает, то часто нарушается логика переписки и многие ответы на удаленный комментарий выпадут из контекста.
avatar
А когда администратор по жалобам подписчиков удаляет комментарий — это не вызывает нарушения контекста?
avatar
Там наверно фишка в том что комментарий остается, но для других он закрыт ( типо удален)
avatar
Здесь тоже задействован стандартный функционал. Никто данные из БД не удаляет.
avatar
Я так понял вы подключили функцию администратора, для каждого пользователя. И когда пользователь удаляет комментарий, на самом деле удаляет его админ, так?
avatar
Комментарий помечается в БД как удаленный и всё.
avatar
А это не вызовит дыру для взлома, через перехват запроса в БД, чтобы удалять остальные комментарии от имени других пользователей?
avatar
Попробуйте, мне расскажете. :)
avatar
Кнопки удаления нету, в стандартном шаблоне livestreet, только что установил шаблон и запустил плагин, он не работает.
Кнопка удалить есть только у администратора.
avatar
Точно свои топики смотрите? На двух сайтах проверялось…
avatar
Администраторам создал топик, написал комментарий обычным пользователем, кнопки удалить нету.
avatar
Наоборот сделайте — топик от пользователя, комментарий от администратора. Удалять от имени пользователя.
avatar
Все понял как это работает.
avatar
Безусловно вызывает. Поэтому мы удаляем комментарии только в крайнем случае.
А если кто-то намеренно начнет вызывать провокации, а потом по тихому удалит свои коменты и будет злорадно наблюдать за батлом со стороны?

кроме того, коменты — уникальный некопируемый контент, его беречь надо))
avatar
А если кто-то намеренно начнет вызывать провокации, а потом по тихому удалит свои коменты и будет злорадно наблюдать за батлом со стороны?
Только в своем топике — его право. Но это функционал для тех сайтов, где сообщество саморегулируется, не всем нужно, согласен.
avatar
И еще важно, если пользователь удалит комментарий, администратор может его восстановить?
avatar
Да, администратор может восстановит при необходимости. Планирую еще и возможность восстановления и для пользователя сделать, но не хочу делегировать шаблон.
avatar
пользователь уже может удалять и восстановления комментарий
avatar
А вот когда страницу обновишь, уже нельзя.
avatar
Так может рейтинг ограничить для разрешения удаления?
avatar
на мобильном плагине работает?
  • evil
  • 0
avatar
Не проверял.
avatar
щяс проверю
avatar
Не не работает.
avatar
В мобильном плагине тоже работает, только там звездочка в конце стоит, и когда кнопка удалить появляется, идет вначале звездочка а потом удалить.
А должно быть:
ответить удалить ссылка звездочка

Надо чтобы кнопка удалить, шла после кнопки ответить.

На взлом проверил, шифрует security_ls_key, а в исходнике выдает Hacking attemp! так что все норм.
  • evil
  • 0
avatar
Где в шаблоне расположен вызов хука «comment_action», там и добавляет ссылки.
avatar
Надо сделать, чтобы плагин забирал вот эти строки под себя
{if !$oComment->getDelete() and $oUserCurrent and $oUserCurrent->isAdministrator()}
					<li><a href="#" class="comment-delete link-dotted" onclick="ls.comments.toggle(this,{$oComment->getId()}); return false;">{$aLang.comment_delete}</a></li>
				{/if}
				
				{if $oComment->getDelete() and $oUserCurrent and $oUserCurrent->isAdministrator()}   										
					<li><a href="#" class="comment-repair link-dotted" onclick="ls.comments.toggle(this,{$oComment->getId()}); return false;">{$aLang.comment_repair}</a></li>
				{/if}

этот код используется только у администратор, у пользователя они не используются.
avatar
Плагин может это сделать, только делегировав файлы шаблона. А это плохая практика для сохранения совместимости с другими плагинами (только один плагин может делегировать конкретный файл шаблона). Поэтому правильно решение — перенести строчку вызова хука «comment_action» в нужное место шаблона mobile (перед ссылкой и звездочкой).
avatar
Переделать легко я не спорю, но не всем, плюс в других шаблонах может быть по-другому.
Можно попробовать в инструкции написать, чтобы пользователь добавил код в файлик comment.tpl
Я бы хотел подсказать другое решение для совместимости плагина со всеми шаблонами, но в голову больше не чего не приходит.
avatar
Придумал Wasja можно 2 версии плагина сделать, 1-вый для проблемных шаблонов, где нужно код вставлять в файл а 2-рой стандартный, где сразу запустил и работает.
avatar
Что с ручками плохо? Не можешь хук переопределить?
Ты заодно тем кто шаблон верстал напиши — вдруг оперативно поправят ради тебя…
У них-то руки прямые.
Тебе же автор плагина описал в чем техническая проблема. Не понимаешь — лучше не продолжай…
avatar
Читай выше я понимаю и знаю как поправить, я помогаю просто.
Если вы думаете только о себе удачи.
avatar
На самом деле предложенный вариант имеет право на жизнь. Конечно не в виде двух отдельных плагинов, а просто в виде 2 вариантов работы, выбираемых с помощью конфига.
avatar
Зачетная штука!
avatar
Есть предложение:
в конфиге задавать рейтинг юзера, выше которого он может удалять каменты. Желательно отдельно для коллективных и персональных блогов.

А восстанавливать камменты юзер может?
avatar
Рейтинг будет.
Восстанавливать — на данный момент может до перезагрузки страницы. После перезагрузки — не может.
avatar
Можно дерево администрации сделать, например тот кто создал блог, может удалять все комментарии в топиках, а тот кто создал топик может удалять комментарии, только в топиках(ну как сейчас)
avatar
— Добавлена поддержка восстановления удаленных комментариев.
— Добавлена поддержка шаблонов Synio, Mobile, Vintage.
avatar
Добавлены параметры конфигурации:
— $config['use_limit'] — Использовать ограничение рейтинга для удаления/восстановления комментариев. По умолчанию влючено (true).
— $config['limit_rating'] — Порог рейтинга при котором юзер может удалять/восстанавливать комментарии (используется при $config['use_limit'] = true). По умолчанию 0.
avatar
Было бы классно разнести эти параметры на 2 части: в персональном блоге юзера и в коллективном блоге.
Т.е. если запостил в персональный блог — делай что хочешь (при рейтинге например выше 0).
А если запостил в коллективный — рейтинг должен быть выше, например 5-ти

Еще лезет куча недообдуманного:
— привязка к рейтингу каммента
— привязка к сроку каммента
— привязка к рейтингу топика

Эх, как не хватает этого
avatar
Кстати Wasja можешь сделать так чтобы это можно было добавить в комментарий.
Что бы пользователь мог добавлять свой файл прям в коммент если у него есть рейтинг, не знаю нафига это нужно, но идея кул.
А еще можно сделать что бы пользователь который опубликовал свой топик, также мог добавлять файл в комментарий, а тот кто ведет этот блок и так сможет добавлять свой файл ибо рейтинг для блога, должен быть большой.
avatar
Проверил сейчас плагин, на мобильном шаблоне, кнопка все равно не правильно стоит(после звездочки)+ еще плагин изменяет CSS, при удалении.

{if !$oComment->getDelete() and $oUserCurrent and $oUserCurrent->isAdministrator()}
					<li><a href="#" class="comment-delete link-dotted" onclick="ls.comments.toggle(this,{$oComment->getId()}); return false;">{$aLang.comment_delete}</a></li>
				{/if}
				
				{if $oComment->getDelete() and $oUserCurrent and $oUserCurrent->isAdministrator()}   										
					<li><a href="#" class="comment-repair link-dotted" onclick="ls.comments.toggle(this,{$oComment->getId()}); return false;">{$aLang.comment_repair}</a></li>
				{/if}

Wasja почему не хочешь создать отдельный файл для 2-го плагина?
это же легче и меньше кода будет, тупо создать новую функцию которая будет работать внутри файла comment.tpl
можно даже этот код взять который сверху, и сделать 2-рой, почти такой же чуть ниже. А плагин который будет подключен, будет взаимодействовать с этим кодом, вот и все. ну и соответственно 2-рой плагин, который был, без гемора.

Например если это админ работает только код который сверху, если это пользователь, код админа отключается, причем по стандарту а код пользователя включается.
  • evil
  • 0
avatar
1) Я не делегирую файлы шаблонов, если этого можно избежать.
2) Меня устраивает то, как получилось.
avatar
Кстати забыл написать, плагин не должен исправлять СSS шаблона, если шаблон недоработанный и в нем не правильный CSS при удалении комментария, это нужно исправлять в самом шаблоне, я эту ошибку еще давно описывал и думаю большинство людей уже ее исправили у себя в шаблоне.
Ну или на кройняк можно описать где нужно изменить css в шаблоне.
  • evil
  • 0
avatar
Плагин не затрагивает CSS.
avatar
1
2
и там и там CSS был изменен.
avatar
Это стили, а не CSS файлы. Необходимо для корректной работы удаления (без съезжания блоков). Вызвано спецификой стилей для пользователей не администраторов.
avatar
Это изменяет стандартный стиль, удаленного комментария.
avatar
Это преобразует стандартный стиль удаленного пользователем комментария к стилю удаленного админом комментария. Совместимые шаблоны перечислены, все остальные — допиливайте как угодно. :)
avatar
Ну так вот у меня они допилены, и этот плагин изменяет допиленный стиль и выглядит, убого:)
Я конечно могу удалить файл плагина, и убрать изменение в плагине, это не трудно.)
avatar
Добавлены параметры конфигурации:
— $config['use_limit_time'] — Использовать ограничение времени, в течении которого возможно удаление/восстановление комментариев (от даты создания комментария). По умолчанию влючено (true).
— $config['limit_time'] — Период времени (в секундах), в течении которого возможно удаление/восстановление комментариев (используется при $config['use_limit_time'] = true). По умолчанию 7 суток.
avatar
Добавлена поддержка шаблона Inspiration (спасибо a_sultanoff ).
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.