2013-08-06 50 views
0

我正在爲一個大學項目(當它開始2.5沒有出:D)的joomla 1.5。我想要做的是將模塊分配給我的自定義組件,但不是每個頁面。 我的組件的2個不同頁面是顯示每個產品的頁面,但另一個頁面需要一個ID才能工作。爲了將模塊分配給一個頁面,我想我需要將我的組件的每個頁面分配給一個菜單項。 但我的問題是,我不知道如何分配我的頁面,顯示特定產品的變量ID,使其工作。添加模塊到組件,但不是組件的每個頁面

+0

您的不同頁面中的模塊可以將該模塊封裝在一個php if語句中,用於檢查如下內容:if(JRequest :: getVar('option')=='your_component'&& JRequest :: getVar('view')!='view_without_module'){然後顯示模塊; }' –

回答

0

的Joorthodox的方式,我想,是控制從administator頁面模塊管理器,在那裏你可以把它分配給某些頁/菜單隻項目模塊的可用性。 因此總結一下,爲該頁面創建一個菜單項類型,將其分配給一個菜單項,該菜單項又將成爲該頁面的模塊控制開關。

另一種方法可能是直接控制joomla模塊渲染器。一個例子可以在這裏找到:joomla-is-there-a-module-render-plugin-event

+0

但我如何使該菜單項與ID一起工作? – Elatar

+0

你不需要,你的鏈接可以通過你的模塊或組件分配給頁面到合適的html元素。該菜單項只會被模塊管理器用來查看哪個視圖對應於該鏈接,以及是否要啓用它。菜單項甚至可以保持未發佈 –

+0

我已經啓用了seo鏈接,我認爲這就是我搞砸了。 此外,未發佈的菜單項不會顯示在模塊頁面選擇處。 – Elatar

0

一種方法是將模塊設置爲使用CSS隱藏在該頁面上。

$doc = JFactory::getDocument(); 
$doc->addStyleDeclaration(" #element_id { display: none; } "); 

您需要使用的工具(如Firebug),Chrome瀏覽器開發工具或取決於其他工具來檢查模塊:

轉到views/view_name/tmpl/default.php和頂部的標籤內,在添加以下代碼您正在使用哪種瀏覽器,並將element_id更改爲任何適合您需要的內容。

希望這有助於

+0

既然這是一個大學項目,我正試圖做的一切都是'正確'的方式。所以我更喜歡一種不會隱藏它的解決方案,因此它甚至不會加載。感謝您的努力! – Elatar

0

只是通過菜單鏈接只需使用Advanced Module Manager和URL指定的模塊不是,它的工作對我來說,隱藏和顯示相同的組件

相關問題