1

我在一个网站上使用了 2 个不同的 mod_menu 实例:menu1 和 menu2。

根据图形设计,这 2 个菜单具有不同的外观和感觉。

我在问你是否可以在 mod_menu 模块上进行 2 种不同的模板覆盖。或者解决这个问题的最佳方法是什么?

感谢您的回答。

4

2 回答 2

4

简短的回答是肯定的。将要覆盖的模块的 tmpl 文件夹中的所有 php 文件复制到模板中,就像覆盖一样。(所以你现在应该有 default、default_component、default_heading、default_separator 和 default_url templates/your_template/mod_menu/)那是覆盖一个。

然后复制所有这些文件并将default名称更改为与您的描述相匹配的另一个名称(尽管如果记忆对我有用,请不要使用任何数字,否则会破坏它,所以也许alternate)。那就是你应该有alternate、alternate_component、alternate_heading、alternate_separator、alternate_url。在这组中,您还需要打开文件并搜索“default_”并替换为“alternate_”,以便正确连接。

最后,在您要使用替代布局的模块中,切换到选项选项卡,单击高级并从模块布局选项中选择“替代”以使用模板中定义的替代布局!

于 2013-09-08T06:36:17.113 回答
0

在您的情况下,最好的选择是在模块 xml 文件中设置模块参数选项。并有一个下拉选项,其中包含一些值,例如 menu1 、menu2 等。

安装您的模块,这将在模块管理器中提供参数,首先设置 menu1。

From module manager create new module -> 从列表中选择您的 mod_menu 并设置新位置或相同位置。并为此选择菜单参数作为menu2。

然后在您的模块 default.php 检查模块参数并根据您的要求加载不同的 css 甚至 html。

用于加载 css 你可以使用。

$doc = JFactory::getDocument();
$doc->addStyleSheet("full path");

用于在 xml 中设置模块参数

<fields name="params">

    <fieldset name="basic">



        <field

            name="menutype"

            type="list"

            default="menu1"

            label="Menu Type"

            description="Choose Menu Type"

        >

            <option value="menu1">menu 1</option>

            <option value="menu2">menu 2</option>

            <option value="menu3">menu 3</option>

            <option value="menu4">menu 4</option>

        </field>


    </fieldset>

</fields>

要在您的模块 default.php 中获取此值,请使用类似

$menutype       =  $params->get('menutype');

希望有意义..

于 2013-09-07T10:15:52.523 回答