В Joomla предусмотрен механизм переопределения шаблонов вывода компонентов и модулей. Сделано все это для того что бы пользователь не лез в код компонента или модуля и не менял ничего внутри! Конечно никто не запретит вам взять и изменить все что вы задумаете, но при первом же обновлении Joomla до актуальной версии вероятность что все ваши изменения исчезнут очень велика, именно по этому можно вынести шаблоны вывода видов любого компонента в ваш шаблон сайта, и выполнять любые изменения не опасаясь что они куда то исчезнут!

Итак как переопределять шаблоны вывода компонента.

Для начала изучим структуру компонента com_content в папке components Структура папок com_content

В приведенной структуре папок нам интересна папка views все папки которые находятся в ней это виды которые содержат шаблоны, эти шаблоны лежат в папке с название_вида/tmpl.

Для того что бы переопределить шаблоны вывода для этого вида нам нужно в папке с нашим шаблоном создать папку html и в ней следующую структуру: имя_компонентя/имя_вида.

Тоесть если мы хотим переопределить шаблоны вывода для вида com_content/view/article/ мы должны в шаблоне нашего сайта создать папки html/com_content/article/, и скопировать все файлы из components/com_content/views/article/tmpl/ в папку html/com_content/article/.
После этих манипуляций система будет брать файлы из папки html/com_content/article/ и выполнять всю логику которую вы допишете или переопределите!
Так же вы можете создать для вашего шаблона несколько вариантов переопределений (например для случая когда на разных страницах необходимо выводить абсолютно разный функционал).

 

Для этого нужно в туже папку html/com_content/article/ снова скопировать файлы .php с новым именем (например test.php) Структура папок переопределенного шаблона и тогда при создании материала в его настроках в поле "Альтернативный макет" появится ваш шаблон: Альтернативный макет

Внимание! Такое переопределение работает только если на материал или прочую сущность не ссылается пункт меню!

 

 

Переопределение шаблона вывода модуля тоже похоже на переопределение компонента! Структура папки модуля следующая:

Структура папок модуля что бы переопределять модуль нужно в папке html вашего шаблона создать папку c названием модуляя и скопировать все файлы из папки modules/имя_модуля/tmpl/ в папку templates/имя_шаблона/имя_модуля/. Так же само как и для шаблона можно создавать альтернативные отображения для модуля для разных отображений одного модуля! Правило точно такое же как и для компонента, вот только альтернативный шаблон модуля будет выводится в любом случае если он выбран!

Так же в папке html можно переопределить выовод постраничной навигации для компонента и вывод обертки модуля.