Поиск модуля.

Главные вкладки

Аватар пользователя Alex_R Alex_R 25 января 2010 в 7:17

Предполагаю, что придется писать самому, но на всякий случай спрошу, вдруг кто какую идею подкинет.
Задача стоит следующим образом:

Зарегистрированный пользователь создает материал определенного типа, материал публикуется и вместо ника (логина) автора там написано "Автор", далее народ имеющий соответствующие права этот материал обсуждает и вместо их ников пишется "Обсуждающий №1", "Обсуждающий №2" и т.д (нумерация по времени вступления в беседу). Желательно, чтобы участник обсуждения вместо своего "синонима" видел свой ник. Обязательно, чтобы модераторы, которые могут редактировать чужие сообщения не могли докопаться кто есть кто (Ну с суперюзером ничего не поделать - это понятно).

Далее по какому то событию (например, по отсутствию комментариев в течение 48 часов)возможность писать комментарии автоматически закрывается, а синонимы участников автоматически заменяются их никами.

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

Комментарии

Аватар пользователя Alex_R Alex_R 25 января 2010 в 8:55

Спасибо за подсказку.
Как я понимаю без своей таблицы со структурой ( Номер ноды, номер пользователя, синоним) в БД не обойтись. Обращение к ней для получения данных из соответствующего .tpl.php в принципе механизм понятен, а вот как в нее записывать данные при сохранении ноды или комментария (в комментарии еще и проверка что пользователь пишет в первый раз в этой ноде) пока не совсем понял куда этот текст должен быть вписан по правилам Друпала. Чистка этой таблицы от неактуальной уже информации тоже понятна - с помощью hook_cron(), одновременно с закрытием комментов.
Еще раз СПАСИБО!

Аватар пользователя Виктор Степаньков ака RxB Виктор Степаньк... 25 января 2010 в 9:03

"Alex_R" wrote:
Зарегистрированный пользователь создает материал определенного типа, материал публикуется и вместо ника (логина) автора там написано "Автор"

Тут node.tpl.php мучаем, а именно $submitted
"Alex_R" wrote:
далее народ имеющий соответствующие права этот материал обсуждает и вместо их ников пишется "Обсуждающий №1", "Обсуждающий №2" и т.д (нумерация по времени вступления в беседу)

Тут куча вариантов, можно и через табличку, можно и массив авторов хранить, но тогда надо думать что с пейджером делать.
"Alex_R" wrote:
Желательно, чтобы участник обсуждения вместо своего "синонима" видел свой ник

comment.tpl.php
т.е. в нём делаем проверку, чего показывать, ник или псевдоним
"Alex_R" wrote:
бязательно, чтобы модераторы, которые могут редактировать чужие сообщения не могли докопаться кто есть кто (Ну с суперюзером ничего не поделать - это понятно).

Если они не будут иметь доступ в админский раздел, где аппрув\удаление комментов, то ничего и не узнают. В крайнем случае добавить в свой модуль ещё хук hook_menu_alter() и там добавить дополнительные пермишены для страницы управления комментариями
"Alex_R" wrote:
Далее по какому то событию (например, по отсутствию комментариев в течение 48 часов)возможность писать комментарии автоматически закрывается

Тут чистый крон
"Alex_R" wrote:
а синонимы участников автоматически заменяются их никами.

Можно добавить в тот же comment.tpl.php ещё одно условие в вывод ника, т.е. если прошло 48 часов или автор отправленного коммента == текущему юзеру, то выводим по любому

Аватар пользователя Alex_R Alex_R 25 января 2010 в 9:52

RxB wrote:

"Alex_R" wrote:
далее народ имеющий соответствующие права этот материал обсуждает и вместо их ников пишется "Обсуждающий №1", "Обсуждающий №2" и т.д (нумерация по времени вступления в беседу)

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

Вариант с таблицей мне больше нравится. В принципе мне пока осталось непонятным как ее заполнять:
Alex_R wrote:

.... а вот как в нее записывать данные при сохранении ноды или комментария (в комментарии еще и проверка что пользователь пишет в первый раз в этой ноде) пока не совсем понял куда этот текст должен быть вписан по правилам Друпала.