Есть модуль http://drupal.org/project/usercomment, но с последними версиями Дрюпала не пашет и слишком навороченный... Написал схожий модуль, но более короткий, правда и с особенностями...
Принцип работы
Модуль на лету правит права юзера. Т. е., если юзер находится на странице своей ноды, то ему автоматом назначается роль (в пределах выполнения текущего запроса) с правами доступа administer comments. Поэтому он видит скрытые комменты и все ссылки для администрирования комментариев. Также, если юзер перешел на страницу редактирования или удаления - ему опять даются права administer comments с помощью назначения роли.
Из-за кэширования меню (и прав на них) этого было недостаточно для работы удаления... Пришлось добавить хук menu, где объявлен некэшируемый пункт меню с адресом comment/delete/$cid.
Особенности
Допустим кэш в таблице cache_menu чистый, юзер заходит на свою ноду, получается права administer comments, после этого выполняется построение меню и сохранение его в кэш и получается, что у него доступ есть к административным страницам комментариев (admin/content/comment). И пока меню не перестроится, у него будет полный доступ к этой админке комментариев!
Поэтому пришлось делать слегка некрасивый финт ушами: при визите любой страницы admin/content/comment* кэш меню очищается. Делается это из хука init.
Вложение | Размер |
---|---|
administer_comments.zip | 1.57 КБ |
Комментарии
на заметку в
У меня usercomment с версией 5.3 пашет - загляденье, без финтов ушами.
В 5.6 уже не пашет.
спасибо, заюзал
"Эта версия несовместима с версией 6.4 ядра Drupal."
насколько сложно будет написать нечто подобное под 6ю версию?
всегда считал, что друпэл лучше всего подходит для блогинг сервиса, поэтому очень странно и неприятно видеть такую кривотень в отношении управления комментами своего блога... даже не знаю, возвращаться к вордпрессу очень очень и очень не хочется.
Здрасте. Меня зовут Орхан. Яживу в Азербайджане. У меня такая проблема что я не могу изменить заголовки комментарии. Я хотел поименовать по латынью. Но не мог. Все испробовал. Но не получился. Помогите пожалуйста.