2011-05-12 36 views
0

我正在開發一個新項目,並且使用Joomla版本1.5.22。 我需要在主頁中間顯示一個水平搜索表單,並且在所有其他頁面中以垂直樣式顯示相同的搜索表單,但是在左側位置。在兩個位置加載兩個相同模塊的模板文件

所以我做的是,我創建了兩個模板文件一個用於水平搜索(horizo​​ntal.php)和其他垂直搜索(vertical.php)和在mod_modulename.php我試圖加載各自的模塊基於一定條件,並根據它改變了左邊或中間的位置。數據庫中的職位更改將在管理面板中生效。

if(condition) { 
    modModulenameHelper::changeToVertical($position);//to change position in database to left 
    require(JModuleHelper::getLayoutPath('mod_modulename', 'vertical')); 
    } 
else { 
    modModulenameHelper::changeToHorizontal($position);//to change position in database to middle 
    require(JModuleHelper::getLayoutPath('mod_modulename', 'horizontal')); 

但我沒有得到正確的輸出。它根據條件加載相應的模塊。但是這個職位一開始並沒有分配。如果我按Ctrl + F5或刷新,頁面將加載所需的輸出。

這是怎麼發生的?任何解決方案

回答

0

問題是你在事後改變立場。當你改變職位時,Joomla已經將模塊分配到了一個位置。這是一個操作順序。

相反,爲什麼不使用模塊的2個實例?與其解決這個問題,只需在模塊中添加一個參數,讓您選擇水平或垂直,然後將一個參數分配給主頁菜單項,另一個分配給其餘頁面。這也可以將模塊放置在其他位置,而不是硬編碼到模塊中。