В Joomla 1.7 у модулей появился достаточно удобный функционал — возможность выбора layout’а в параметрах модуля из выпадающего списка (причем, если в каком-то из шаблонов сайта данный layout переопределен или добавлен альтернативный — он тоже будет присутствовать в списке). А вот в Joomla 1.5 этого сильно не хватало. Недавно я нашел на форуме неплохое решение от пользователя danik.html и немного его доработал.
Решение довольно простое — добавляем аналогичный элемент в дистрибутив модуля, добавляем XML-манифесте модуля ссылку на папку с элементом и добавляем новый параметр к существующим параметрам модуля. В качестве имени условного модуля (для примера) выбрано mod_latestnews. Естественно, вам его нужно будет заменить на название вашего модуля.
Создаем файл modulelayout.php следующего содержания:
Необходимо заменить mod_latestnews на название вашего модуля. В Joomla 1.7 такой атрибут не требуется, потому, что из наследника JElement можно получить информацию о модуле, а в Joomla 1.5, к сожалению, нет.
Так как в стандартном дистрибутиве Joomla такого элемента как modulelayout нет, то нам необходимо «рассказать» Joomla об этом. Поэтому добавляем в XML-манифесте к элементу params атрибут addpath:
Все, после этого в параметрах нашего модуля можно будет выбирать layout.
Если вы хотите добавить описанный функционал в какой-то из существующих на сайте модулей, то достаточно в папке с модулем создать директорию elements, скопировать в нее файл modulelayout.php и внести в XML-манифест модуля изменения описанные в данной статье.