Есть ли модуль или способ управления сообщением Drupal. То есть Это сообщение, которое вы видите после создания контента, например. «Была создана автомобильная листинг под названием bla». Я хочу центральную точку для управления этими сообщениями. Большинство из них я не хочу отображать.Управление сообщениями Drupal?
ответ
Если вы создали сообщение об ошибке, и вы сразу же знаете, что вы не хотите, чтобы отобразить его, вы можете удалить его из массива ошибок Drupal следующим образом:
array_pop($_SESSION['messages']['error']);
Это удалит последний созданный сообщение об ошибке, но оставит форму в состоянии ошибки. Это немного хакерский способ сделать это, но это избавляет вас от необходимости погружаться в кодирование ядра Drupal.
Вы также можете искать определенные записи в массиве и отменить их, но это немного больше.
Я не думаю, что вы можете управлять такими сообщениями. Вы не знаете, какой модуль отправил сообщение или почему, все, что вы получите, это сообщение и его тип, предупреждение, ошибка и т. Д.
Если вы хотите изменить сообщения, вы можете сделать это в preprocess_page
, где у вас есть сообщения , или вы можете сделать это до этого, изменив глобальную переменную $_SESSION
, где хранятся сообщения.
Но, как я уже сказал, нет хорошего способа фильтровать сообщения, поэтому у вас будет очень трудное время, если вы хотите удалить сообщение X из модуля Y. Если вы действительно этого хотите, вы можете использовать RegEx, но он быстро станет неуправляемым.
Я готовился в блоге об этом, но я могу сказать вам несколько советов уже:
- Используйте String Overrides модуль для замены сообщения (через пользовательский интерфейс). Если вы хотите скрыть его, оставьте его пустым. Эти замены хранятся в глобальных переменных (не нужно обращаться к базе данных, поэтому нет штрафа за производительность), но поскольку по той же причине не рекомендуется использовать ее для сотен строк, только немногие из них.
- http://www.michaelbarton.name/2010/07/09/drupal-module-status-messages-alter/ Этот модуль очень новый, но выглядит перспективным. Это может быть более мощным решением для разработчиков, , поскольку позволяет включать переменные в строках, регулярных выражениях и т.д.
Надеется, что это помогает, я оставить комментарий здесь, когда я пишу эту статью во время этого неделю.
Завершена ваша статья? ;) –
(3 года спустя) Я даже не помню, чтобы написал это http://goo.gl/ESjKw6 – corbacho
Вы можете удалить
печать $ сообщений
Фромм page.tpl.php вашей темы, если вы не хотите, чтобы отобразить на всех.
Однако, как правило, для удобства пользователей лучше обращать внимание на действия пользователей.
Вы также можете попробовать модуль Disable Messages, чтобы отключить определенные сообщения от показа конечным пользователям.Вот цитата со страницы его проекта:
Предоставляет параметры владельца сайта, чтобы отключить определенные сообщения, отображаемые конечным пользователям. Основная система сообщений drupal, предлагаемая drupal_set_message, - отличный способ для модулей отправлять сообщения конечным пользователям. Однако не все владельцы сайтов drupal стремятся показать все сообщения, отправленные ядром drupal и всеми модулями для своих пользователей. Этот модуль дает администраторам сайтов достаточно мощный способ фильтрации сообщений, отображаемых конечным пользователям.
Некоторые из его особенностей:
- отфильтровывать сообщения, которые соответствуют полной текстовой строки точно.
- Отфильтровать сообщения, которые соответствуют регулярному выражению.
- Права на скрытие всех сообщений определенного типа от любой роли.
- Отключите всю фильтрацию для определенных пользователей.
- Отключите всю фильтрацию для определенных путей.
- Применить фильтрацию только для определенных путей.
- Отладка системы для получения сообщений в HTML, не показывая ее конечным пользователям.
- 1. Управление отладочными сообщениями Console.log
- 2. Управление сообщениями электронной почты
- 3. Использование Drupal AJAX с сообщениями Drupal
- 4. Управление сообщениями JMS и управление транзакциями потребителей
- 5. Управление входящими сообщениями (в Outlook)
- 6. Rails: Управление прочитанными/непрочитанными сообщениями
- 7. Управление изображениями Drupal
- 8. Управление переопределением Drupal 8
- 9. Drupal Управление модулем контента
- 10. drupal ubercart управление запасами
- 11. Как я могу управлять сообщениями блога Drupal?
- 12. Управление незарегистрированными пользовательскими сообщениями с помощью скрининга
- 13. Хранение и управление сообщениями в ios
- 14. Управление документами в Drupal 8
- 15. Управление документами для Drupal 6?
- 16. Как создать управление баннером в drupal 7
- 17. Drupal 6 - Профиль контента и управление пользователями
- 18. Управление сообщениями окна для клиентской области CEF во всплывающем окне
- 19. Управление сообщениями на главной странице с помощью ASP.NET MVC
- 20. Управление сообщениями cookie после отправки ответа на Plone 4.3
- 21. Ratchet PHP Websockets: личная передача сообщений (управление сообщениями, которые отправляются)
- 22. Пользовательский шаблон с недавними сообщениями
- 23. Зависимости между сообщениями очереди сообщениями
- 24. разница между сообщениями шиной и брокером сообщениями
- 25. Отличие между широковещательными сообщениями и прямыми сообщениями
- 26. Drupal 7, управление содержимым мультисайтов в одной панели администратора
- 27. Управление формой Overwrite в Drupal 7 Forms API
- 28. Управление комментариями показано на основе роли в Drupal
- 29. Модуль печати Drupal: управление расположением в файлах PDF?
- 30. Drupal: Управление отношениями «имеет много» с модулем views
Что было бы для создания сообщения и его удаления еще раз? Если у вас есть собственный модуль, просто не создавайте сообщение в первую очередь. Это не поможет для удаления определенных сообщений. – googletorp
Я видел эту технику, например, в форме, где вы проверяете два поля вместе и хотите, чтобы они оба отображались как ошибки, но только одно сообщение должно отображаться. Кроме того, возможно, вы можете сканировать массив и удалить дублированные сообщения. Такого рода вещи. – Spudley