开发者

URLs in module not pointing the correct category from index page

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 -

  1. 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.
  2. Create a new menu item for the video category.
  3. 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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜