Загрузка двух файлов шаблонов одного модуля в двух позициях

#joomla1.5

#joomla1.5

Вопрос:

Я работаю над новым проектом и использую Joomla версии 1.5.22. Мне нужно отобразить одну горизонтальную форму поиска в середине домашней страницы и такую же форму поиска в вертикальном стиле на всех остальных страницах, но в левом положении.

Итак, что я сделал, я создал два файла шаблонов, один для горизонтального поиска (horizontal.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:

Проблема в том, что вы меняете позицию постфактум. К тому времени, когда вы меняете позицию, Joomla уже присвоила модулю определенную позицию. Это вопрос порядка действий.

Вместо этого, почему бы просто не использовать 2 экземпляра модуля? Вместо того чтобы испытывать эту проблему, просто добавьте в модуль параметр, который позволяет вам выбирать горизонтальную или вертикальную, затем назначьте один пункт меню домашней страницы, а другой — остальным страницам. Это также позволило бы поместить модуль в другие позиции вместо жесткого кодирования его в модуле.