2012-05-09 7 views
4

Joomla по умолчанию делает его системные сообщения (ошибки, уведомления и т.д.) вКак переопределить Joomla Системные сообщения - шаблон message.php

libraries/joomla/document/html/renderer/message.php.

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

Может кто-нибудь здесь знать, как это сделать?

ответ

0

Шаблоны переопределяют только работу с the MVC - i.e. views and module chrome.

Без взлома ядра все, что вы можете сделать, это контролировать то, что HTML-теги обернуты вокруг <jdoc:include type="message" /> тег в шаблоне и CSS, определенный для элементов сообщения блока.

18

Для Joomla! 1,7 - 2,5

Вам нужно скопировать libraries/joomla/document/html/renderer/message.php, чтобы templates/YOUR_TEMPLATE/html/message.php

Затем в index.php из YOUR_TEMPLATE вам необходимо включить файл (как это не включается автоматически, как и другие переопределения):

// Message overwrite 
require_once JPATH_ROOT .'/templates/'. $this->template .'/html/message.php'; 

Теперь вы можете перезаписать функцию JDocumentRendererMessage::render();)

Для Joomla! 3.x

Вам просто нужно создать файл html/message.php в YOUR_TEMPLATE. Этот файл должен содержать функцию renderMessage(). В качестве примера рассмотрите шаблон isis.

+0

он работал как шарм. Большое вам спасибо ... Я искал это. – amilaishere

+0

Это работает очень хорошо, не взламывая ядро ​​и просто переопределяя значение по умолчанию. –

+2

В J3.x: поместите «message.php» в «{my_template}/html/layouts/joomla/system» и извлеките сообщения из $ displayData ['msgList'] (проверьте шаблон Beez3) –

0

Более изящный способ включить ваше переопределение в каталоге шаблонов, чтобы включить файл в системный плагин:

public function onAfterInitialise() { 
    $app = JFactory::getApplication(); 
    if ($app->isSite()) { 
     $template = $app->getTemplate(); 
     if (!class_exists('JDocumentRendererMessage') && file_exists(JPATH_THEMES . '/' . $template . '/html/message.php')) { 
      require_once JPATH_THEMES . '/' . $template . '/html/message.php'; 
     } 
    } 
    return true; 
} 
+0

Нет, это не так. Если нужно просто переопределить шаблон, просто поместите соответствующие файлы там, где они должны быть ... нет необходимости подключать плагины к тому, что уже входит в состав MVC. –