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

Аватар пользователя ser_house ser_house 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): Сообщения настраиваются отдельно по типам материалов.

Комментарии

Аватар пользователя ser_house ser_house 10 ноября 2015 в 11:48

UPDATED!

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

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

Аватар пользователя iNFerNo iNFerNo 13 сентября 2012 в 15:31

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

Аватар пользователя ser_house ser_house 13 сентября 2012 в 18:46

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

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

Аватар пользователя iNFerNo iNFerNo 14 сентября 2012 в 9:44

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

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

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

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

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

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

Аватар пользователя vlucas vlucas 3 декабря 2012 в 0:35

даа, очень было бы полезно если бы для каждого типа материала раздельно было!

Аватар пользователя ser_house ser_house 3 декабря 2012 в 1:12

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

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

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

Аватар пользователя sas@drupal.org sas@drupal.org 3 декабря 2012 в 1:51

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

Аватар пользователя vlucas vlucas 3 декабря 2012 в 10:44

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

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

Аватар пользователя ser_house ser_house 3 декабря 2012 в 1:58

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

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

Аватар пользователя sas@drupal.org sas@drupal.org 3 декабря 2012 в 11:23

"ser_house" wrote:
Жёстко

Ну я же не хотел затемнять твое удобное решение :), а тому кому адресовано, всё поняли.

Аватар пользователя vlucas vlucas 4 декабря 2012 в 22:56

ser_house wrote:
Разделил по типам материалов.

Думаю не только я скажу Вам спасибо!

Аватар пользователя iNFerNo iNFerNo 5 декабря 2012 в 13:08

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

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

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

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

Аватар пользователя ser_house ser_house 5 декабря 2012 в 13:11

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

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

Аватар пользователя iNFerNo iNFerNo 5 декабря 2012 в 13:23

Вроде все и так предельно ясно из примера, вместо Создать Анкета - Создать Анкету

Аватар пользователя iNFerNo iNFerNo 5 декабря 2012 в 13:24

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

admin/config/content/msg-for-authors

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

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

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

-----------

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

Аватар пользователя iNFerNo iNFerNo 5 декабря 2012 в 13:41

Может быть и пользовался.

Ну, если Вам за 40 есть могу и на Вы, хотя как изволите сударь.

Аватар пользователя iNFerNo iNFerNo 5 декабря 2012 в 13:45

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

Аватар пользователя ser_house ser_house 5 декабря 2012 в 13:49

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

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

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

Аватар пользователя ser_house ser_house 5 декабря 2012 в 13:53

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

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

Аватар пользователя iNFerNo iNFerNo 5 декабря 2012 в 14:05

я по этой ссылке, admin/config/development/performance
и в базе все таблицы где кеш написано чищу...

версия 7.17

Аватар пользователя ser_house ser_house 5 декабря 2012 в 14:11

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

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

Аватар пользователя iNFerNo iNFerNo 5 декабря 2012 в 14:12

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

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

Аватар пользователя iNFerNo iNFerNo 5 декабря 2012 в 14:14

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

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

Аватар пользователя ser_house ser_house 5 декабря 2012 в 14:19

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

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

Аватар пользователя ser_house ser_house 5 декабря 2012 в 14:21

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

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

Аватар пользователя ser_house ser_house 5 декабря 2012 в 14:27

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

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

Аватар пользователя ser_house ser_house 5 декабря 2012 в 14:48

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

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

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

Аватар пользователя iNFerNo iNFerNo 5 декабря 2012 в 14:50

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

Аватар пользователя iNFerNo iNFerNo 5 декабря 2012 в 14:53

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

Аватар пользователя ser_house ser_house 5 декабря 2012 в 14:56

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

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

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

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

Аватар пользователя iNFerNo iNFerNo 5 декабря 2012 в 15:08

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

Аватар пользователя ser_house ser_house 5 декабря 2012 в 15:13

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

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

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

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

Аватар пользователя iNFerNo iNFerNo 5 декабря 2012 в 15:19

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

Аватар пользователя ser_house ser_house 5 декабря 2012 в 15:43

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

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

Аватар пользователя ser_house ser_house 6 декабря 2012 в 9:07

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

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

Аватар пользователя iNFerNo iNFerNo 6 декабря 2012 в 12:19

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

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

Аватар пользователя iNFerNo iNFerNo 6 декабря 2012 в 12:38

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

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

Аватар пользователя ser_house ser_house 6 декабря 2012 в 13:53

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

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

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

Аватар пользователя iNFerNo iNFerNo 6 декабря 2012 в 14:17

"ser_house" wrote:
Ну iNFerNo, ну хостинг же, однозначно :)

хостинг хороший. ит_патруль

Аватар пользователя ser_house ser_house 6 декабря 2012 в 14:35

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

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

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

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

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

Аватар пользователя iNFerNo iNFerNo 6 декабря 2012 в 16:03

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

Аватар пользователя ser_house ser_house 6 декабря 2012 в 16:11

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

Аватар пользователя iNFerNo iNFerNo 7 декабря 2012 в 9:25

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