我已将一些模块分配到类别页面,但它们也出现在 K2 项目页面上。
我尝试过高级模块管理器,但它说它与我正在使用的模块不兼容,因此“也在子项目上”选项不起作用。
有任何想法吗?
您可以做的是为您尝试显示的模块创建一个覆盖并将整个内容包装在 if 子句中。
首先将文件夹复制/modules/mod_MYMODULE/tmpl
到/templates/MYTEMPLATE/html
并将其重命名为您的模块的名称,例如/templates/MYTEMPLATE/html/mod_MYMODULE
.
然后重命名default.php
为任何内容(例如k2catonly.php
)并将其包装在 if 子句中,例如。
if(JFactory::getApplication()->input->get('view') == 'itemlist') {
// module code
}
然后在模块管理器中打开所述模块并选择新的子模板(通常在高级选项中找到并称为“替代布局”。
现在您的模块将仅显示在类别上。要在所有页面上显示它,但项目页面将其包装在以下内容中:
if(JFactory::getApplication()->input->get('view') !== 'item') {
// module code
}
我有同样的问题,并解决了
为每个 K2 项目创建一个隐藏菜单,在菜单管理器中创建一个新菜单(将其命名为隐藏),它不会出现在任何页面中,然后在该隐藏菜单中,您可以为每个 k2 项目创建一个菜单,并在模块管理器中取消选择菜单分配中的菜单该解决方案对我有用,因为我没有太多 k2 项目