joomla如何覆盖2个不同的mod_menu实例

时间:2013-09-07 08:46:37

标签: joomla

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

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

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

感谢您的回答。

2 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:0)

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

安装你的模块,这将在模块管理器中给出params,首先设置menu1。

From模块管理器创建新模块 - >从列表中选择您的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');

希望它有意义......