2012-07-25 71 views
0

我開發了一個joomla 2.5模塊,它工作得很好,事情是我不希望它顯示組件的某個視圖時顯示,但該視圖不是一個菜單鏈接,所以我不能告訴我的模塊在我不想要的時候不渲染。joomla +不渲染模塊

回答

0

兩種可能性:

  1. 分配是查看到菜單項中是永遠不會顯示一個菜單。你可以照常隱藏模塊。

  2. 由於您有自定義模塊,因此您可以修改模塊以檢查組件和視圖,並且在某些情況下不會呈現它自己。你可能有「檢查組件和視圖,而不是渲染本身在某些情況下」

+0

我要去你的第二個解決方案。我會找出如何檢查視圖。 – Armando 2012-07-25 23:19:02

+0

您可以通過JRequest或JInput獲取該信息。通過獲得'option'你可以通過'view'得到組件名稱,你可以得到,你猜對了,查看名稱。 PS:如果對你有幫助,請接受答案。 – 2012-07-26 09:39:50

+0

感謝您的幫助,我已經接受了您的回答,我是新的堆棧溢出。再次感謝。 – Armando 2012-07-26 15:32:44

0

的一個問題是,如果模塊在一個模塊的立場,即應該「崩潰」的時候有沒有模塊(例如右列或左列),它不會崩潰,因爲模塊仍然被分配(即使它沒有渲染任何東西)。

問題在於決定顯示模塊的位置。這是模塊本身決定何時呈現的問題,還是邏輯應該在其他地方,這決定了「在此頁面上,是否應該顯示某個特定的模塊?」。我建議後者。

對此的一個好的解決方案是MetaMod Pro,它允許您在確定其他模塊是否應出現在頁面上的條件下構建。然後你放入一小段PHP來做檢測。

所以片斷可能是:

if (! ($option == 'com_mycomponent' and $view == 'myview')) return XXX; 
// replace XXX with the module id of the module you want to disappear. 

即「如果我們不和myComponent的MyView的,顯示模塊XXX頁上的」。

提示:Pro版本將允許模塊完全消失,如果它不包括在內。免費版本可能會留下一些HTML。