在两个位置加载两个相同模块的模板文件

时间:2011-05-12 12:51:03

标签: joomla1.5

我正在开发一个新项目,我正在使用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或刷新,页面将加载所需的输出。

为什么会这样?任何解决方案

1 个答案:

答案 0 :(得分:0)

问题是你在事后改变了立场。当您更改位置时,Joomla已将模块分配到某个位置。这是一个操作顺序。

相反,为什么不只使用模块的2个实例?只需在模块中添加一个允许您选择水平或垂直的参数,然后将一个参数分配给主页菜单项,将另一个参数分配给其余页面,而不是解决这个问题。这也可以将模块放在其他位置,而不是将其硬编码到模块中。