Хак «Редактирование комментариев»

Возможность редактирования комментариев пользователей(для админов) + возможность редактирования комментариев пользователем в течении определенного времени, а то сильно раздражает когда ошибку допустил или что-то глуппое ляпнул — а изменить уже никак :(
В общем пользуемся на здоровье :)
Как обычно пример можете посмотреть на: ecovoice.ru (просьба не флудить и писать осмысленно)
Линк на модуль: livestreet.ru/addons/105/ (пока на модерации)

Ф-ционал:
1) юзер имеет право редактировать комментарий, только в течении заданного времени после его добавления(по умолчанию 15мин., правится в конфиге)
2) админы имеют право редактировать комментарии всегда и чьи-угодно
3) весь яваскрипт адаптирован под скин 'new' (не претендую на идеальность, так что по поводу ошибок отписывайтесь)
4) в БД добавилось новое поле для таблицы комментов, которое содержит дату изменения коммента(потом думаю еще держать кто редактировал, посмотрим короче...)
5) редактирование протестировано со вставкой картинок и видео(так что в архиве уже добавлена возможность в комментарии вставлять картинки + видео)

Установка:
1) для начала, импортируем в БД alter_field.sql — проверьте правильность своего prefix'a
2) если не было никаких изменения в файлах, то просто обновляем файлы, в других случаях ручками смотрим разницу
3) не забываем удалить кэш темплейтов и кэш браузера
5) заходим под админом, возле каждого коммента есть линк «редактировать» — пробуем

п.с. пока бета-тестирование, могут быть глюки — хотя старался избавиться от всех :)

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

avatar
редактирование доступно если уже есть ответ на комент?
avatar
редактирование доступно в течении 15 минут после опубликования комментария
для админов редактирование доступно — всегда
avatar
Лучше сделать как говорит Fanta — иначе будет неразбериха… не говоря уже о всяких троллях…
avatar
И не надо будет тогда даже лишнего в бд добавлять )
avatar
Основная цель данного хака — правка «очипяток», а не борьба с троллями. Тролли есть у любого большого проекта, считаю с ними нужно «работать» иначе ,)

Почему-то в голове есть мысль, что любое более менее адекватное сообщество, выведет тролля на чистую воду. Ошибаюсь?

p.s. Если в проекте очень активно комментируют — уменьшаем время.
p.s.s. Боятся троллей в инет не ходить))

avatar
Я троллей просто так подметил, как вторая маловажная причина. А вы на них всё внимание заострили.
avatar
пытаясь изменить комментарий, вылазит Error: Please try again later
avatar
это у вас почему-то аякс-запрос не отрабатывается, вы файл inclue/ajax/commentEdit.php точно загрузили?
avatar
конечно не аякс был не загружен, а другой файл. Но спасибо за идею о незагрузке, помогло :))
avatar
Написал коммент. Отправил. Появилась кнопка «редактировать» рядом с комментом опубликованным. Не перезагружая страницу, написал ещё один коммент, ответ на этот. Отправил. Кнопки «редактировать» рядом с новым комментом не появилось.
avatar
А каким способом можно выводить, сколько времени осталось для редактирования комментария. Например осталось «15 минут», потом «14 минуты» и т.д.
avatar
У меня не под админом нету возможно редактировать коммент. В чем прикол?
avatar
юзер имеет право редактировать комментарий, только в течении заданного времени после его добавления(по умолчанию 15мин., правится в конфиге)

может истекло время?
avatar
Нет, я захожу из под неадминской учетки, оставляю коммент и ничего. Просто не появляется кнопочка «Редактировать»
avatar
Танцы с бубном и 5!!! раз перезалил файлы и вуаля, все работает. Фантастика
avatar
скорее всего забыли удалить кэш /templates/compiled
avatar
У меня почему-то глюк. У пользователей, пока не обновишь страницу кнопочка «Редактировать» не появляется. Подскажите, в чем проблема?
avatar
кэш браузера скорее всего
avatar
и как ето преодолевать?
avatar
Проблемы есть и на ecovoice.ru/
Например при редактирования сообщения сначала оно высвечываетса отредактированым, но при перезагрузке страницы возвращает свое значения. Заметил — другими пользователями текст отображетса отредактированым, и только через некоторое время тоже начинаеш видить ево отредактированым. Насколько я понял, ето также проблема кешырования страницы.
avatar
Может, старый кэш удалить или шаблон (tpl) перекомпилить?
avatar
я обнулил папки /templates/compiled/ и templates/cache/ картина не изменилась. фишка в том, что етот баг (несвоевременное отображения коментария для пользователя зделавшего коментарий) наблюдаетса и на ecovoice.ru/. Отредактированое сообщения после обновления страницы осталось прежним, но только для пользователя, зделавшего коментарий. С другово компютера ета страница загружаетса уже с новым коментарием.
avatar
После замены comments.js не вставляются комментарии в личной почте. Жму на «комментировать», а форма не открывается. На старом файле все гут. Подскажите плз что поправить и на что обратить внимание?
avatar
Если это поможет — я пользуюсь старой, 0.3.1 версией модуля talk.
avatar
Ошибку мы эту нашли, на след неделе будет фикс.
avatar
Ок.

Если у кого появилась такая же — вот простое средство от нее. Не удаляйте старый (до установки данного мода) comments.js, а переименуйте его скажем в comments_old.js. Вверху файла read.tpl модуля talk вместо comments.js пропишите comment_old.js (заблаговременно залив сие файло на фтп в соответствующую папку). В итоге комменты модуля talk будут жить под предводительством старой версии comments.js

Буду ждать доработки, спасибо :)
avatar
обновил, там надо будет перезалить один файлик — в архиве он есть:
/templates/skin/new/actions/ActionTalk/read.tpl
avatar
то что сейчас лежит по предвиденной ссылке livestreet.ru/addons/105/
не имеет этого бага?
avatar
кстати плохо то что нет пошаговой инструкции где именно нужно внести изменения…
например в том же файле ActionBlog.class.php напрягает искать где автор кода чего изменил…
avatar
все увидел пометочки «hack»
но все таки лучше когда всё от комментировано))

Кстати такая же проблема как и у Judge
пользователи не могут комментарии редактировать (((
что делать?
avatar
я этот хак решил проверить на локальной машиме, прежде чем лить на сервер, но вылезли вот такие заморочки: все установил запрос к базе сделал, захожу под админом и вуаля — все работает, но рано обрадовался, если заити под обычным юзером то при добавлении коммента вылетает ошибка «Error: Please try again later», но при этом сам коммент добавляется, только не обновляется страница. Сделал как написано со старым скриптом, но косяк остался.
У кого все работает без проблем? Скажите что делали.
avatar
Так ни кто и не решил эту проблему?
avatar
Sys, спасибо за хак, но есть два вопроса:
после нажатия изменить комент становится зеленым, но при этом он не закрывается, т.е форма редактирования не исчезает.
Второй вопрос — у меня включено кэширование, т.е пока я не удалю кэш, не вижу изменений после перезагрузки страницы
  • pskk
  • 0
avatar
есть баг, при редактировании коммента появляется кнопка «изменить», которая не прописана ни в каком ленгпаке ни в основном ни в том что идет с модулем, как это можно заменить если у меня английский ленгпак
avatar
Так все-таки. При добавлении новго коментария ссылка «редактировать» не появляется. Она появляеться только после перезагрузки страницы.

Как я вижу, на демонстрационном сайте эта проблема отсутствует.
  • lay
  • 0
avatar
в /temlpate/skin/new/comment.tpl меняем строки 35-37

{if $oComment->edit or ($oUserCurrent and $oUserCurrent->isAdministrator())}
<li><a href="javascript:lsCmtTree.commentEdit({$oComment->getId()});" class="reply-link">{$aLang.comment_edit}</a></li>
{if $oComment->edit or ($oUserCurrent and $oUserCurrent->isAdministrator())}
{/if}

на

<li><a href="javascript:lsCmtTree.commentEdit({$oComment->getId()});" class="reply-link">{$aLang.comment_edit}</a></li>
avatar
если убрать условие то кто угодно сможет редактировать комментарии…
avatar
да, кто угодно, но только свой коммент и только в течение 15 минут
avatar
После установки хака не работает возможность оставлять комментарии в модуле «Афиша». Подскажите как можно это исправить?
avatar
Ага, с помощью comment_old.js получилось. Ладно, пока хотя бы так.
avatar
ужасно не удобно искать обрывок кода в предлагаемых файлах, так как до этого редактировал их :( к сожалению не осилил, буду искать свободное время чтоб убить его на сравнивание исходного и предложенного кода.
avatar
установил Хак как у многих можно редактировать но нажимаешь сохранить и появляется надпись: Error: Please try again later
попробовал все варианты описаные выше не помогает…
кэш чистил, проверил все ли файлы загрузились и так далее… не помогает… движок 0.3.1
что еще может быть?
avatar
вот жеж… упустил… не проверил в базе SQL…
Спасибо нашел ошибку, отсутствовал нужный столбец.
avatar
в этом хаке неправильно чистится кэш в comment.class.php в функции EditTopicComent (последняя функция в классе).

Если добавить не просто

##### [hack] editcomment #####
	public function EditTopicComment(CommentEntity_TopicComment $oTopicComment) {		
		if ($this->oMapperTopicComment->EditTopicComment($oTopicComment)) {		
			$this->Cache_Clean(Zend_Cache::CLEANING_MODE_MATCHING_TAG,array('comment_edit',"comment_edit_{$oTopicComment->getId()}","comment_edit_topic_{$oTopicComment->getTopicId()}"));
			return true;
		}
		return false;
	}
	##### [hack] editcomment #####


а всё сразу

##### [hack] editcomment #####
	public function EditTopicComment(CommentEntity_TopicComment $oTopicComment) {		
		if ($this->oMapperTopicComment->EditTopicComment($oTopicComment)) {		
			$this->Cache_Clean(Zend_Cache::CLEANING_MODE_MATCHING_TAG,array('comment_edit',"comment_edit_{$oTopicComment->getId()}","comment_edit_topic_{$oTopicComment->getTopicId()}"));
      $this->Cache_Clean(Zend_Cache::CLEANING_MODE_MATCHING_TAG,array('comment_new',"comment_new_user_{$oTopicComment->getUserId()}","comment_new_topic_{$oTopicComment->getTopicId()}"));
			$this->Cache_Clean(Zend_Cache::CLEANING_MODE_MATCHING_TAG,array('comment_update',"comment_update_{$oTopicComment->getId()}","comment_update_topic_{$oTopicComment->getTopicId()}"));				
			return true;
		}
		return false;
	}
	##### [hack] editcomment #####


то обновляется у автора после редактирования нормально.

Спасибо за хак! Скорей бы 0.4 с единой системой комментариев — а то вносить правки в пяти местах для пяти модулей с комментариями это сущий ад.
avatar
Невозмоно отредактировать комментарий, пишет: Error: Please try again later в чем проблема?
  • 2hd
  • 0
avatar
вопрос решен — забыл испорт БД сделать)
avatar
А не подскажите как этот хак прикрутить на версию 0.4?
avatar
Да, меня тоже интересует этот вопрос,
avatar
Аналогично. Как прикрутить к четвертой версии?
avatar
Как прикрутить к 0.4.1?
avatar
Присоединяюсь. Острая необходимость для 0.4.1
avatar
Дружно просим инструкций под 0.4.1 и ждем!
avatar
Извините за неумность
но всетаки
1. Эта версия уже работает под 0.4.2? Ибо написано # Обновлено: 11 июля 2010 тока не понятно что обновлено)
вроде коммент последний 1 июля.
2. Ещё глупее вопрос. для начала, импортируем в БД alter_field.sql — проверьте правильность своего prefix'a У меня стоит SQL Manager Lite for MySQL. В нем открыл свои БД /таблицы/ и? Еще что в префиксе может быть не так? Их там много.
Я сам в шоки что пишу это. Просто нужен это хак очень)
avatar
*едит… как правильно имортировать в БД alter_field.sql
avatar
Открой файл блокнотом и исправь префикс БД `prefix_topic_comment`!!!
avatar
У кого завелось на 0.4.2?
З.Ы. У меня на главной вместо левой колонки
Fatal error: Class 'ModuleComment' not found in /mojsajt.ru/engine/classes/Engine.class.php on line 162

При открытии любого топика:
Notice: Use of undefined constant DIR_WEB_ROOT — assumed 'DIR_WEB_ROOT' in /mojsajt.ru/classes/actions/ActionBlog.class.php on line 94 Notice: Use of undefined constant ROUTE_PAGE_BLOG — assumed 'ROUTE_PAGE_BLOG' in /mojsajt.ru/classes/actions/ActionBlog.class.php on line 94

Поковырял еще его, так и не завелось!

У кого получилось запустить на 0.4.2 — опишитесь каким макаром!
avatar
как решить проблему работы комментариев в афише после того как установил хак редактирования комментов? LS 0.3
  • 2hd
  • 0
avatar
Хочется такое однозначно рабочее и протестированное под 0.4.2
avatar
ЕСть такой хак для о.4.2
avatar
где?
avatar
Сорри ) Я не успел поставить вопросительный знак. Сам ищу ))
avatar
Да, было бы здорово!
avatar
Присоединяюсь… тоже хочется…
avatar
Для 0.4.2 нет варианта? Очень нужная фича.
  • zauer
  • 0
avatar
Присоединяюсь к вышенаписанному. Очень нужна возможность редктирования комментариев в LS 0.4.2. Некоторые комментарии удалять нецелесообразно, хотя они, бывает, и несут в себе информацию, несоответствующую правилам сайта. В таком случае хорошо-бы было не удалять весь комментарий, а удалить только негативную строку, или вместо нелицеприятной фразы написать вместо нее «удалено модератором», например.
avatar
Автор, я готов заплатить (WMR) за доработку данного модуля под 0.4.2. Если готовы помочь с этим — пишите плз в личку.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.