2011-05-12 66 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个实例?与其解决这个问题,只需在模块中添加一个参数,让您选择水平或垂直,然后将一个参数分配给主页菜单项,另一个分配给其余页面。这也可以将模块放置在其他位置,而不是硬编码到模块中。