1

客户网站使用 Joomla 模板,左栏中有很多模块,但对于我正在设计的自定义组件,这些模块必须替换为垂直菜单。我想出的破解解决方案是用 CSS 隐藏这些模块:

div#leftpad > div {
    display:none;
}

然后用 javascript插入一个<div id='compmenu'>in并设置. 使用 jQuery,我可以做到<div id='leftpad'>display:block

jQuery('#compmenu').appendTo('#leftpad').show();

该组件显示谷歌地图,因此无论如何都需要javascript。这里有任何 Joomla 专家知道实现相同结果的更优雅或更直接的方法吗?

4

2 回答 2

1

为什么不使用 Menu-Bind for Modules 在显示模块或组件时隐藏它们,这将是一种干净的方式。我认为您的 Module/Comp 绑定到一个菜单项。

编辑: 确保您的客户必须以正确的方式实施您的模块/组合。用黑客做这样的事情是非常糟糕的。

  • 为您的组件创建菜单项(程序)
  • 创建隐藏菜单
  • 将您的组件添加到该菜单
  • 从此菜单中取消绑定所有模块

Joomla API 拥有一系列关于构建组件的教程。我过去经历过它们,但正如我所见,它们已经改进了它们。据我了解,您的组件相对简单,因此默认菜单应该是您想要的。它在安装 XML 中有描述

 <administration>
  <!-- Administration Menu Section -->
  <menu>MyMenuLink</menu>

  <!-- some other stuff -->

 </administration>

并将在 Joomla! 客户端安装组件后的 menumanager。所以我认为这对你来说并不难。

于 2011-05-16T08:32:55.613 回答
1

在 Joomla 中,菜单类型由已安装组件指定的各种视图确定。如果您的组件被正确编码为 Joomla MVC 标准,您应该至少有一个视图,它将为您提供至少一种菜单类型可供选择。正如 sra 所提到的,即使您不需要菜单链接,您也应该创建一个隐藏菜单,这样您就可以创建一个链接,这样您就可以使用 itemID 并为其分配模块。

有一些扩展程序和网站可以帮助为组件创建必要的文件,因此您所要做的就是添加一些代码。一旦你了解了 Joomla MVC,这真的不是太难。

http://docs.joomla.org/Developing_a_Model-View-Controller_Component_-_Part_1

当最终用户必须弄清楚如何使用您的组件时,这样做会为您省去很多麻烦。

于 2011-05-16T22:22:13.570 回答