0

我有一个模板需要在某些页面的标题中包含一个部分。我可以为此使用一个模块。但 in 仅显示在某些页面上,这需要在文章级别确定。所以“文章a”会有额外的内容,而“文章b”没有。我不喜欢隐藏菜单的想法,因为可能有数千篇这样的文章,而且作者需要额外的步骤。似乎最好的解决方案可能是替代布局,可以在创建或编辑文章时选择。那么问题来了,如何根据备用布局打开和关闭模块?我可以获取备用布局的值并对其进行处理(例如调用具有相同名称的文件)吗?

编辑:此时我只是想确定是否正在使用备用布局,如果是,它的名称是什么。我正在尝试在模板覆盖中访问它(templates/mytemplate/index.php)

4

2 回答 2

0

您可以调整所有页面的模块(调整某个位置),并在模板中添加一些规则以从模板中隐藏此位置,例如:

<?php if($articleID == 1){?><jdoc:include type="modules" name="menu" /><?php}?>
于 2013-02-28T21:59:25.350 回答
0

这就是我结束的地方。

要获得备用布局,我这样做:

    $article =& JTable::getInstance("content");
    $article->load(JRequest::getInt("id"));
    $attribs=new JParameter($article->attribs);
    $layout=$attribs->get("article_layout");

现在我可以引用一个文件,其中包含我想为此布局执行的任何特殊操作,如下所示:

        if($layout != ''){
            $layoutname=str_replace($this->template . ':', '', $layout);
            $path=JPATH_ROOT .'/templates/'. $this->template .'/html/com_content/article/' . $layoutname . '_include.php';      
            require_once $path;
        }

任何需要附加部分的布局只需要在文件夹中包含另一个名为alternate_layout_name_include.php 的文件以及其他备用布局文件。

我不擅长 Joomla 或 php,所以任何提示、代码修改、输入总是受欢迎的。

于 2013-03-01T23:28:40.587 回答