客户端网站使用左栏中包含大量模块的Joomla模板,但对于我正在设计的自定义组件,这些模块必须由垂直菜单替换。我想出的 hack 解决方案是使用CSS隐藏这些模块:
div#leftpad > div {
display:none;
}
然后使用javascript在<div id='compmenu'>
中插入<div id='leftpad'>
并设置display:block
。使用jQuery,我可以做到
jQuery('#compmenu').appendTo('#leftpad').show();
该组件显示谷歌地图,因此无论如何都需要javascript。这里的任何Joomla专家都知道一种更优雅或直接的方法来获得相同的结果吗?
答案 0 :(得分:1)
为什么不在模块或组件显示时使用Menu-Bind for Modules中的构建来隐藏它们,这将是一种干净的方式。我认为你的Module / Comp绑定了一个菜单项。
编辑: 确保您的客户必须以正确的方式实施您的Module / Comp。是非常糟糕用黑客做这样的事情。
Joomla API拥有一系列关于构建组件的好教程。我过去经历过它们但是我看到它们已经改进了它们。据我所知,您的组件相对简单,因此默认菜单应该是您想要的。它在安装XML
中描述 <administration>
<!-- Administration Menu Section -->
<menu>MyMenuLink</menu>
<!-- some other stuff -->
</administration>
将在Joomla上市!在客户端安装组件后,menumanager。所以我认为对你来说并不难。
答案 1 :(得分:1)
在Joomla中,菜单类型由已安装组件指定的各种视图决定。如果您的组件已正确编码为Joomla MVC标准,则您应该至少有一个View,它将为您提供至少一种菜单类型供您选择。正如sra所提到的,即使您不需要菜单链接,也应该创建一个隐藏菜单,这样您就可以创建一个链接,这样您就可以使用itemID来分配模块。
有一些扩展和网站可以帮助为组件创建必要的文件,所以您只需添加一些代码即可。一旦你理解了Joomla MVC,它真的不太难。
http://docs.joomla.org/Developing_a_Model-View-Controller_Component_-_Part_1
如果最终用户必须弄清楚如何使用您的组件,那么这样做会在以后节省很多麻烦。