Joomla 将模块添加到组件,但不是组件的每个页面

Joomla 将模块添加到组件,但不是组件的每个页面,joomla,menu,module,components,joomla1.5,Joomla,Menu,Module,Components,Joomla1.5,我正在为一个大学项目开发Joomla1.5(当它启动时2.5还没有出来:D)。我想做的是给我的自定义组件分配一个模块,但不是每个页面。 我的组件的两个不同页面是一个显示每个产品的页面,但另一个需要id才能工作。为了将模块分配给一个页面,我想我需要将我的组件拥有的每个页面分配给一个菜单项。 但我的问题是,我不知道如何为显示特定产品的页面分配变量id以使其工作。一种方法是使用CSS将模块设置为隐藏在该页面上 转到views/view\u name/tmpl/default.php并在顶部的标记中添加

我正在为一个大学项目开发Joomla1.5(当它启动时2.5还没有出来:D)。我想做的是给我的自定义组件分配一个模块,但不是每个页面。 我的组件的两个不同页面是一个显示每个产品的页面,但另一个需要id才能工作。为了将模块分配给一个页面,我想我需要将我的组件拥有的每个页面分配给一个菜单项。
但我的问题是,我不知道如何为显示特定产品的页面分配变量id以使其工作。

一种方法是使用CSS将模块设置为隐藏在该页面上

转到
views/view\u name/tmpl/default.php
并在顶部的标记中添加以下代码:

$doc = JFactory::getDocument();
$doc->addStyleDeclaration(" #element_id { display: none; } ");
您需要使用诸如Firebug、Chrome Dev Tools或其他工具(取决于您使用的浏览器)来检查模块,并将元素id更改为适合您需要的任何内容


希望这有帮助

我想,最常用的方法是从管理员页面中的模块管理器控制模块可用性,您可以将其仅分配给某些页面/菜单项。 因此,为该页面创建菜单项类型并将其分配给菜单项,该菜单项将成为该页面的模块控制开关


另一种方法是直接控制joomla模块渲染器。这里可以找到一个例子:

只需通过URL使用和分配您的模块,而不仅仅是通过菜单链接,我可以在同一组件的不同页面中隐藏和显示模块,因为这是一个大学项目,我正在尝试以“正确”的方式完成。所以我更喜欢一个解决方案,它不隐藏它,使它甚至不加载。谢谢你的努力!您可以将模块封装在php if语句中,该语句检查如下内容:
if(JRequest::getVar('option')=='your_component'&&JRequest::getVar('view')!='view_without_module'){then display module;}
但是我如何使该菜单项与id一起工作呢?您不必,您的模块或组件可以将链接分配给页面,并将其分配给适当的html元素。该菜单项仅由模块管理器用于查看哪个视图对应于该链接以及是否要启用该链接。菜单项甚至可以保持未发布状态。我已经启用了seo链接,我想这就是把我搞砸的原因。“未发布”菜单项也不会显示在模块页面选择中。我认为“未发布”可以,因为它在2.5版上运行,对不起。无论如何,这不是我们的主要问题。尝试为该视图创建一个菜单项类型,在组件视图的tmpl文件夹中创建一个default.xml,可以在这里找到一个示例,并尝试将其分配给一个新的菜单项。但这不会为单个产品id创建一个菜单项吗?我正在尝试实现一个链接作为组件的子菜单,以阻止我不想添加单个产品的模块(但仍在产品列表中启用).我在视图列表中使用了.xml来添加一个参数,单个显示为菜单项。但是当我选择单个菜单项时,它当然不会显示任何内容,因为它没有id,但它也会阻止站点显示每个产品,即使显示的链接是正确的。这就是为什么我认为我的seo正在运行的原因到那边去。