【问题标题】:How to override Joomla System Messages - message.php template如何覆盖 Joomla 系统消息 - message.php 模板
【发布时间】:2012-05-18 09:26:12
【问题描述】:

Joomla 默认在

中呈现其系统消息(错误、通知等)

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

对于我自己的模板,我想自定义这些消息的显示方式。但是,使用模板覆盖似乎无法以传统方式实现。

这里有人知道完成这样的事情的方法吗?

【问题讨论】:

    标签: joomla joomla2.5 joomla3.1


    【解决方案1】:

    模板覆盖仅适用于 the MVC - i.e. views and module chrome

    在不破解核心的情况下,您所能做的就是控制模板中的 <jdoc:include type="message" /> 标记周围的 HTML 标记以及为 message 块的元素定义的 CSS。

    【讨论】:

      【解决方案2】:

      为 Joomla! 1.7 - 2.5

      您需要将libraries/joomla/document/html/renderer/message.php 复制到templates/YOUR_TEMPLATE/html/message.php

      然后在 YOUR_TEMPLATE 的 index.php 中,您需要包含该文件(因为它不像其他覆盖那样自动包含):

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

      现在您可以安全地覆盖那里的JDocumentRendererMessage::render() 函数;)

      为 Joomla! 3.x

      您只需要在 YOUR_TEMPLATE 中创建 html/message.php 文件。该文件应包含函数 renderMessage()。检查 isis 默认模板,例如。

      【讨论】:

      • 这在不破坏核心的情况下非常有效,并且完全覆盖了默认值。
      • 在 J3.x 中:将 "message.php" 放在 "{my_template}/html/layouts/joomla/system" 并从 $displayData['msgList'] 中提取消息(检查 Beez3 模板)
      【解决方案3】:

      在模板目录中包含覆盖的更优雅的方法是将文件包含在系统插件中:

      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;
      }
      

      【讨论】:

      • 不,不是。如果只是要覆盖模板,只需将适当的文件放在它们应该在的位置......无需编写插件代码来完成已经是 MVC 的一部分。
      【解决方案4】:

      【讨论】:

      • 尝试解释答案而不是提供链接......因为这些链接将来可能不可用
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-27
      • 1970-01-01
      • 2012-12-23
      • 2012-06-14
      • 2014-01-28
      • 2014-12-09
      • 2014-11-01
      相关资源
      最近更新 更多