Модуль настройки сообщений для авторов

13 мая 2012 в 17:58

Нет-нет, да всплывает то тут то там вопрос о замене текста сообщения, выводимого пользователю после создания/изменения содержимого. ИМХО, такое сообщение как часть UI должно быть более дружественным к пользователю. Да хотя бы обращение по имени вставить – эффект, несомненно, будет положительным.

Обычно предлагается (и применяется, насколько я понимаю) изменение перевода выводимой строки. Достаточно негибкое решение: нельзя настроить текст по своему желанию, в частности, использовать токены (а значит, и обратиться персонально к пользователю). Кроме того, перевод получается не перевод, а некая отсебятина. Это конечно, не страшно, но как-то не кошерно. Равноценна по гибкости и способу замена строки модулем String Overrides

Иногда советуют применять правило Rules. Этот совет и вовсе далек от решения: текст можно добавить но не заменить. Такой же эффект будет при добавлении своей функции в массив обработчиков формы добавления/изменения ноды. В последнем варианте в комментарии к статье Alli Price Overwriting the node has been created/updated drupal set messages JoFabian предлагает в своём обработчике перелопатить массив сообщений, удалить все статусные и добавить вместо них своё. Это не всегда допустимо: а если у меня там нужные сообщения? К примеру, User Points позволяет выводить сообщение о добавлении points. Если добавление points настроено в том числе и за публикацию материала, и я хочу, чтобы пользователь своевременно уведомлялся об этом, то чистить очередь как-то совсем не к месту.

Здесь предлагают сразу несколько способов решения, которые по большей части сводятся всё к тому же добавлению своей submit и использованию в ней очереди сообщений либо через drupal_set_message, либо непосредственно через $_SESSION[‘messages’]

Таким образом, самое адекватное задаче, на мой взгляд, всё-таки замена обработчика формы добавления/изменения своим (как вариант предложил googletorp на stackoverflow и Alli Price в http://deeson-online.co.uk/labs/overwriting-node-has-been-createdupdated...). Обработка уже подготовленной очереди сообщений (опять же googletorp на stackoverflow) с целью поиска и замены сообщения мне кажется не очень удобной, если учесть, что искать придется фактически неизвестный текст (строки на этом этапе будут уже переведенные, а кто знает, какой перевод используется на конкретном сайте?)

Итак, для замены выводимого после создания/изменения ноды/комментария (я как-то втихаря решил и к комментариям прицепиться) сообщения необходимо заменить обработчик формы на свой. Естественно, с сохранением функциональности штатных node_form_submit и comment_form_submit. Вывод сообщений намертво встроен в код функций и просто перехватить его не получится – придется использовать копипаст, как у Alli Price. Некоторую неприязнь может вызвать отрыв своего кода от системного (и дублирование же!) однако, полагаю, всё не так страшно: код обработки формы добавления/изменения ноды/комментария навряд ли подвержен частым изменениям или каким-нибудь страшным issue.

На основании всего вышеизложенного предлагаю модуль для настройки сообщений (изначально это была часть своего модуля модерации, но уж очень легко она выделялась в отдельный)

Настройки сообщений для авторов материалов:
Настройки сообщений для авторов материалов
Настройки сообщений для авторов комментариев:
Настройки сообщений для авторов комментариев
Обратите внимание:

  • используются вложенные в вертикальные вкладки наборы полей. До версии Drupal 7.14 использование такой конструкции было возможно только после применения патча из issue. В 7.14 с этим наконец-то порядок.
  • поле выбора токенов доступно при установленном модуле Token

Страница

UPD (04.12.2012): Сообщения настраиваются отдельно по типам материалов.

Комментарии

UPDATED!

Чето в процессе выделения в отдельный модуль улетело примечание об умолчальных сообщениях. Прикрепил дополненный архив.

Если свой текст для отдельного сообщения не указывать, то для этого случая будет выводиться стандартное сообщение.

10 ноября 2015 в 11:48

Модуль был бы прикольным если бы для каждого типа материала в его настройках такое можно было бы делать!

13 сентября 2012 в 15:31

"iNFerNo" wrote:
для каждого типа материала в его настройках такое можно было бы делать!

А для чего? Токены позволяют вытащить всё что можно, в том числе и тип материала, разве нет?

13 сентября 2012 в 18:46

Ну называется у меня тип материала Опросы. И что теперь.

Спасибо, вы создали Опросы (по токену типа материала)

А на самом деле нужно выводить

Спасибо вы создали опрос.

2 косяка заглавная буква и окончание. И можно еще парочку найти причин зачем этот функционал нужен для каждого типа материала.

Для 6ки такой модуль был, но он нифига не работал. Вот думал может у вас как надо. Но тоже не без нюансов.

14 сентября 2012 в 9:44

"Василий Сергеевич" wrote:
вот кстати такой же модуль status_message

Не заметил, чем он «такой же» Smile

Про типы надо подумать, раз не одному iNFerNo нужно Smile

3 декабря 2012 в 1:12

Можно обойтись без доп. модуля и переписывания node_submit, достаточно перевести сообщение по умолчанию в один пробел например, а в теме сделать очистку пустых переводов messages через hook (не нужен лишний модуль), своё сообщение на создание можно писать через rules по типам ( благо все равно почти везде используется ). Но автору все равно "респект" - не все могут пользоваться API (богат и велик Drupal Smile )

3 декабря 2012 в 1:51

<a href="mailto:sas@drupal.org">sas@drupal.org</a> wrote:
Можно обойтись без доп. модуля и переписывания node_submit, достаточно перевести сообщение по умолчанию в один пробел например, а в теме сделать очистку пустых переводов messages через hook (не нужен лишний модуль), своё сообщение на создание можно писать через rules по типам ( благо все равно почти везде используется ). Но автору все равно "респект" - не все могут пользоваться API (богат и велик Drupal Smile )

Спасибо за оригинальное решение )))
Присоединяюсь к респекту автору.

3 декабря 2012 в 10:44

"<a href="mailto:sas@drupal.org">sas@drupal.org</a>" wrote:
Можно обойтись без доп. модуля и переписывания node_submit, достаточно перевести сообщение по умолчанию в один пробел например, а в теме сделать очистку пустых переводов messages через hook (не нужен лишний модуль), своё сообщение на создание можно писать через rules по типам ( благо все равно почти везде используется )

Жёстко Smile Даже я не сразу сообразил после прочтения, что уж говорить о начинающих Lol

3 декабря 2012 в 1:58

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

нет желания добавить еще и этот функционал.

Чтобы вместо Создать Анкета, Редактировать ---заголовок---

админ сам прописывл бы фразы... Создать Анкету... и тд

5 декабря 2012 в 13:08

Пожалуйста, iNFerNo, пользуйтесь на здоровье Smile

Если же Вам нужен какой-то дополнительный функционал, будьте добры, изъясняйтесь более вразумительно. Очень желателен нормальный литературный язык. Это, простите, в Ваших интересах.

5 декабря 2012 в 13:11

и белый экран по ссылке

admin/config/content/msg-for-authors

точнее только это

Вы здесь
Главная » Администрирование » Конфигурация » Работа с содержимым
Настройки пользовательских сообщений для авторов
Главные вкладки

Содержание(активная вкладка)
Комментарии

-----------

с комментариями строится страница.

5 декабря 2012 в 13:24

Кеш чиститься после каждой установки модуля. И после каждого удаления. Уважаемый. В данном случае... проблема не в этом.

5 декабря 2012 в 13:45

Кем чистится? Вы чистите руками или уповаете на cache_clear_all?

Поясню. В этой версии 2 формы, что на одну больше, чем было в предыдущей. Поэтому надо: отключить и удалить модуль старой версии. Удалить файлы модуля. Залить новую версию, включить.

Если файлы просто заливались поверх старой, возможны глюки, это же очевидно.

5 декабря 2012 в 13:49

Ещё один момент. Версия Друпал какая?

Форма с настройками для содержимого тяжеловата по количеству филдсетов. В README и в описании я упоминаю о версии Друпал и связанных с ней нюансах именно для вложенных наборов полей.

5 декабря 2012 в 13:53

Тогда у меня последнее предположение. При разработке на одном сайте (достаточно тяжелом) форма грузилась с трудом (вложенные филдсеты, видимо), но на другом, более легком — нормально.

Если это из-за того, что Ваш сайт тяжелый, то это mea pulpa: я не могу придумать удобную админку без таких сложностей в её работе.

5 декабря 2012 в 14:11

"ser_house" wrote:
Если файлы просто заливались поверх старой, возможны глюки, это же очевидно.

старая версия удалена за долго до установки новой. Может удалить новую версию?

5 декабря 2012 в 14:12

Думаю тяжеловатый...

может убрать загрузку токенов? Грузить их список после клика по ссылке (видел такое в одном модуле, токены в окне открывались... кажется модуль menu token) или вы про другое???

5 декабря 2012 в 14:14

"iNFerNo" wrote:
тарая версия удалена за долго до установки новой. Может удалить новую версию?

Попробуйте. Удалите, очистите кэш на всякий случай, поставьте.

5 декабря 2012 в 14:19

"iNFerNo" wrote:
может убрать загрузку токенов? Грузить их список после клика по ссылке (видел такое в одном модуле, токены в окне открывались... кажется модуль menu token) или вы про другое???

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

5 декабря 2012 в 14:21

"iNFerNo" wrote:
На странице комментариев то все нормально, грузиться

Единственная разница между ними — вложенность наборов полей.

5 декабря 2012 в 14:27

"iNFerNo" wrote:
Создать Анкета - Создать Анкету

Вот теперь понятно Smile

Это можно обдумать, хотя я ничего не обещаю. Просто это действительно было бы удобно: настраивать тексты, относящиеся к добавлению/редактированию в одном месте. А заголовок страницы добавления/редактирования ноды действительно не очень...

5 декабря 2012 в 14:48

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

5 декабря 2012 в 14:50

Я вот для одного модуля токены смотрю в другом месте (так как там не реализовано еще подгрузку всех токенов). Может сделать загрузку токенов опцией? Отключить загрузку токенов... и пользователь черпает их из другого места...

5 декабря 2012 в 14:53

Браузер другой попробуйте...

У меня такого вида, как у Вас на скриншоте, не было ни разу. Загружалась долго это — да. В конце концов я решил, что настраивать сообщения не каждый день, можно и потерпеть тормоза.

Про токены я, пожалуй, посмотрю всё-таки, что можно сделать.

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

5 декабря 2012 в 14:56

Можно еще не на одной странице настройки, а для каждого типа материала свои настройки... а сообщения про комменты вынести там, где вкл. комменты, тип комментов выбирается...

5 декабря 2012 в 15:08

Да, я как-то думал об этом. Потом решил, что из одного места удобнее.

С другой стороны, дополнительная вкладка для редактирования типа материала — тоже ничего.

Комментарии так не пойдет — настройки-то для них не зависят от типа материала.

В общем, я над этим ещё поработаю и здесь напишу (ну и у себя тоже, конечно).

5 декабря 2012 в 15:13

Ну комменты можно так и оставить тогда Lol или закинуть на страницу комментариев (ну там где неопубликованные) в содержание.

5 декабря 2012 в 15:19

"iNFerNo" wrote:
закинуть на страницу комментариев (ну там где неопубликованные) в содержание.

Верно, полностью согласен с Вами.

5 декабря 2012 в 15:43

iNFerNo, вынес настройки для материалов на страницы редактирования типов содержимого (v1.2). Пробуйте.

Настройки комментариев остались там же — подумалось мне вдруг, что им место именно в «Конфигурации».

6 декабря 2012 в 9:07

Завелось, правда ровно 1 минуту грузится страница.

Может токены вынести. Будут на все типы сообщений общие. А то наверное 3 раза грузятся в три вкладки? Или не важно сколько вкладок?

6 декабря 2012 в 12:19

Да еще тут подумалось к выше написанным дополнениям.
Было бы неплохо при редактирование ноды - заголовок РЕДАКТИРОВАТЬ ___заголовок____ (тип материала) причесать аналогично.

И с удалением сообщение из заголовка - вы точно хотите удалить убрать в тело страницы... а там заголовок оставить ну или можно в скобочках еще (Удаление), ну и тоже самим выбирать какой заголовок нужен...

6 декабря 2012 в 12:38

"iNFerNo" wrote:
правда ровно 1 минуту грузится страница

Ну iNFerNo, ну хостинг же, однозначно Smile
"iNFerNo" wrote:
Было бы неплохо

Ранее высказался по этому поводу.

6 декабря 2012 в 13:53

"iNFerNo" wrote:
хостинг хороший

С этим не поспоришь Biggrin

Токены кэшируются, потому причина не в них.

Да в общем-то, я уже и не знаю, в чём у Вас причина — у меня как-то всё быстро, без тормозов (теперь-то), что на локалке, что на хостинге. А без «своими глазами» понять, что не так у меня квалификации не хватает Smile

Вы бы логи посмотрели (для v1.1, она должна логи давать) и журнал. Может там что полезное для нас обоих есть.

6 декабря 2012 в 14:35

да у меня и сам сайт тормозит. нагруженный он. но когда на странице токены... сразу тормозит... и виснит даже барузер на 15-30 сек.

6 декабря 2012 в 16:03

Ну, Вы же дерево токенов не каждый день используете, верно? Настроили один раз (помучавшись, согласен) и всё.

6 декабря 2012 в 16:11

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

7 декабря 2012 в 9:25