#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 экземпляра модуля? Вместо того чтобы испытывать эту проблему, просто добавьте в модуль параметр, который позволяет вам выбирать горизонтальную или вертикальную, затем назначьте один пункт меню домашней страницы, а другой — остальным страницам. Это также позволило бы поместить модуль в другие позиции вместо жесткого кодирования его в модуле.