URLs in module not pointing the correct category from index page - joomla

I have 2 modules on my home page. One lists most popular, one lists most recent k2 items from 2 different categories, video and blog. The links to the blog entires go to /blog/item/, so the side bar modules are being displayed correctly. But for some reason the video entries are linking to /component/k2/item/, and on that page the modules that are supposed to on the right do not show up at all. The content area takes up the entire width of the site.
What is further confusing about this situation is that i have duplicates of those modules running on certain interior pages, with the same settings, that link to the items correctly. The only reason i have 2 of the same module is because i need that same module to display below the content on index page, and in the side bar on select interior pages.
I do not have a menu item that links to the video category. The main category is Education, and there are 3 sub categories. blog, video, article. There are only menu items for Blog, and for Education. I already have that same module in the some of the interior pages, and it works fine.
what am i doing wrong?

The solution is pretty simple, the explanation is rather complicated. Here is the solution -
Create a new menu, call it hidden links or something. Doesn't matter what is it called, you will not display this menu on the site.
Create a new menu item for the video category.
Assign your modules to that hidden menu item.
If you don't care about what is happening, just know that you can always create hidden menu items to control layout on pages.
If you do care, get a cold drink and get comfortable...
Menu items in Joomla server several different purposes other than providing links for users to get to content. If you are using the core SEF URLs, this is the first place Joomla looks to create those URLs. In general a URL is built like this - joomla install/parent menu item alias/sub menu item alias/content item/article alias.html. Since your video category does not have a corresponding menu item to use for building URLs, it uses the default URL scheme.
The menu item is also the source for the itemID that every page uses. If a particular page does not have a related menu item, it will inherit the itemID from the previous page usually or in the case of k2 items/joomla article it will inherit the itemID from the menu item that links to the parent category of the content. The itemID is used to determine module menu assignment. This is why getting to a particular page that does not have a menu item 2 different ways will often give you pages that look different, different itemIDs were inherited resulting in different modules being displayed.
Since Joomla really counts on the itemID, you should always specify a menu item for any content you are diplaying, even if you do not want to display a link in the menu. By creating a menu that does not appear in a module, you still get the itemID you need for the content, but the menu never appears anywhere. Usually, a link to a category will be enough since child content will pick up that itemID, but in some cases it makes sense to create menu items to specific content items/articles. You would do this any time you want a specific URL for an item. For example, if you wanted to create a URL like your-site.com/special-offer, you could create the content item for the special offer, then make a menu item with the alias special-offer to get the correct URL.
Joomla also uses the menu item for browser titles and page titles. Your question is not related to that so I'll stop here, but as you can tell it is pretty important to know when to create a menu item for your content.

Related

Joomla category list issue

This is difficult to explain but I'll do my best.
I have a site with a number of articles grouped into different menus, which allows me to present relevant content to the visitor depending on what they are interested in. Each article may be in a number of menus.
I have also categorised each article based on the menu that it is most relevant to. I have done this in order to create a landing page using the category list component.
The issue I have is that the urls in the category list output do not relate to the active menu, when the article is in a number of menus. When you click on the article it takes you to the different menu. This issue is fixed if I unpublish the article from all other menus. I understand this is because Single article menu id takes precedence over category menu id's.
I need a fix that selects the active menu id rather than the default.
Any help appreciated.
Joomla cannot do what you want to do by default. In short, you have multiple URLs for each article and you want Joomla to automatically know which context that article is displayed in in order to display the right URL. Joomla can't do this.
What you need to do is that you want to override the layout module for that category and create a code that will get the right URL based on the context you are in. Not a very easy thing to do but this is how it should be done.
Note that there are some extensions, such as flexicontent, that allow articles to be listed in multiple categories, and that will handle such URLs correctly depending on the context.

how to make the front page of joomla consist of only one article, or one section?

Currently, the joomla front page consists of latest news and several articles and list, basiclly i want to change the layout of this to just one specific article.
Changing the home button properties on the menu page doesnt do the trick as thats not the same as the front page.
Go to the menu manager and find the default menu item. It is marked with a star. Edit that item. If it is using a frontpage/featured layout you can tell it exactly how many featured articles do display by changing the parameters. OR you can change the menu item o a single article or a category or whatever you want.

Make a new page in joomla 2.5

i have done the home page with 8 custom html module . Now i have to make new pages like contact us, about, services ect. but it different from the home page. i need to use only two module other are not useful for other pages.
I am new in joomla would like to how could i make new pages in joomla.
Create a new page in the article manager and a menu item to that page. Then go into the module manager and enable those two modules for that menu item. You'll now have the new page and those 2 modules will appear.
Depending on what template you are using they may need to be in a different "position", e.g, below the content, to the side, etc. In that case use the duplicate function in the module manager to make a clone of those modules and place in the appropriate positions.
Note: If you want the modules to appear in the actual content area you can use the loadposition plugin, e.g. if you create a blank article you can then enter {loadposition mynewmoduleposition} to place the module in the page. Just remember to select that page in the module manager and put set the module to that position.
Just a note that joomla is "menu related" site where pages mean menu itemID, when you say "pages" i believe you have experience in wordpress...
All "pages" in a Joomla website are created with the single index.php file in the template you are using. In order to alter what displays from one page to another there are a few things to consider.
First, Joomla uses menu items to determine what a page is. When you create a menu item, it is assigned an itemID. In the case of menu items that have child items (an article within a category menu), then the child items inherit the parent itemID. You can then select to display modules on that menu item. In the module parameters there are options to display a module on all menu items, no menu items, selected menu items, and exclude menu items. You would change these selections to fit what you want displayed.
The second thing to consider is the template itself. It sounds like you have created a custom template so you will likely need to alter that. The index.php file should contain all of the possible module positions that you would may want to use. In order to hide the positions that are not being used on a particular page, you need to make those positions collapsible. You do this by not displaying any module position that is not populated on a particular page using this code:
<?php if ($this->countModules('top')) : ?><jdoc:include type="modules" name="top" style="xhtml" /><?php endif; ?>
You would want to use similar code for each module position on the page. This allows you to have a sidebar position that is not displayed on the home page, but is displayed on other interior pages that include a module in that position.
Ideally, if you plan the template properly, you will have many module positions that will allow you to add content in many different positions without having to touch the template once it is coded.

How to create a hierarchical Joomla! menu structure

I need an advice ...
I'm using joomla 1.7.2.
I want to plan a site, the site should be very hierarchical.
Actually it will contain categories and sub categories and sub categories and ... And finally all relevant articles that will be under the sub-sub ... Category that was selected.
My ambition from Joomla is to create a main categories menu that looks something like that (never mind the graphics at the moment):
menu example here
Clicking a category will lead to the same look a like menu with his sub-categories.
I guess you could create an article for each category that will contain a menu that will display the relevant sub-categories. but it seems incorrect.
Is there a more correct way to build the hierarchical structure of the site menus?
Sorry about the long text.
I would appreciate any response.
Yoni.
Seems like you are going to make your users click a lot of links to get to the content. How deep do you plan to go? You might want to look in to one of the many mega menus to make it a little easier to get to what they are looking for.
In any case, the basic functionality you are looking for is built in to the core Joomla menu. First, you would need to create a single menu with the structure you described. Link the parent menus to the Joomla category. The trick is in the parameters of the menu module. You will need one menu module for each level of categories you have in your hierarchy. Each module will need to be assigned to every menu item on the corresponding level and the start and end level parameters will need to be set to one level below the current level (0 being the root or top level). You will also want to have sub menu display turned off.
when you click through the links the menu will only display the child menus of the current menu item you are on.
If you want to create an hierarchical menu in Joomla you have to "split" the menu in different parts. Please follow these tutorials:
TODO: Creating a split menu in Jooma
Video TODO: Joomla's
Split Menu System

Setting ItemID of a page based on categoryID of articles

Here is the situation
I am adding some articles within a category that are not linked by a menu item ... when I use JCE to link to these articles from another article, the menu ID of the page displayed is set to the one I am linking from ... This is perfect, the breadcrumbs are working as expected and everything is fine ...
The problem is when I perform a search... when the results return, those linked articles which has no menu item comes back with no itemID
I was wondering if there's a way to modify Joomla Router to set an ItemID for the pages which has no ItemID if they match certain catID ...
I know I will be modifying the core files ... I cannot create hidden menu items because this will disturb the breadcrumbs navigation... The site has huge number of categories so creating menu item for each will be painful!
Thanks a lot for your help.
You could certainly modify the router to look up the catID for a particular article, but it would not accomplish anything unless that category has a corresponding menu item. itemID specifically comes from the itemID so there must be a menu item related to it in order for it to be a valid itemID.
You could modify your search form to pass along the current itemID, but if your search shows up on every page, it would vary depending on where the search was initiated.
If all of your content items can use the same itemID, you might want to simply use an override for your search results and add that particular itemID to all your search results.
I am afraid that there is no simple answer if you do not want to create menu items.

Resources