Reputation: 2009
A client web site uses a Joomla template with lots of modules in the left column, but for the custom component I'm designing, those modules must be replaced by a vertical menu. The hack solution I came up with is to hide those modules with CSS:
div#leftpad > div {
display:none;
}
and then insert a <div id='compmenu'>
in <div id='leftpad'>
with javascript and set display:block
. With jQuery, I could do
jQuery('#compmenu').appendTo('#leftpad').show();
The component displays a google map, so javascript is required anyway. Any Joomla experts here know of a more elegant or straightforward method to achieve the same result?
Upvotes: 1
Views: 5199
Reputation: 23973
Why don't you use the build in Menu-Bind for Modules to hide them when your Module or Component is displayed, this would be a clean way. I think your Module/Comp is bound to a Menu item.
Edit: For sure your client have to implement your Module/Comp the right way. Is is very bad to do something like this with a hack.
The Joomla API hold a good series of Tutorials about building components. I gone through them in the past but as I see they have improved them. As I understand your component is relatively straight forward so the default menu should be what you want. It is described in the install XML
<administration>
<!-- Administration Menu Section -->
<menu>MyMenuLink</menu>
<!-- some other stuff -->
</administration>
And will be available at the Joomla! menumanager after your client has installed your component. So I think it will be not that hard for you.
Upvotes: 1
Reputation: 10609
In Joomla, menu types are determined by the various Views specified by the installed components. If your component is properly coded to Joomla MVC standards, you should have at least one View, which will give you at least one menu type to choose from. As sra mentioned, even if you do not need a menu link, you should create a hidden menu so you can create a link so you have an itemID to work with and assign modules to.
There are a few extensions and websites that can help create the necessary files for a component so all you have to do is add a little code. Once you understand the Joomla MVC it's really not too difficult.
http://docs.joomla.org/Developing_a_Model-View-Controller_Component_-_Part_1
Doing it this way will save you a lot of headache later when the end user has to figure out how to use your component.
Upvotes: 1