Выдели фрагмент текста с ошибкой или неточностью и нажми Ctrl+Enter!
Выдели фрагмент текста с ошибкой или неточностью и нажми Ctrl+Enter!
В Joomla 1.5 было введено такое понятие как переопределение шаблонов (разметок) вывода. Версии Joomla начиная с 1.6 расширяют эти возможности, предоставляя Администратору больше контроля над отображением статей, контактов и прочих расширений. Существует 4 альтернативных типов макетов:
Альтернативные типы макетов работают так же как и переопределение шаблонов вывода, но предоставляют больше контроля и обеспечивают больше возможностей. Рассмотрим каждый тип по отдельности.
Создание альтернативного макета очень похоже на создание переопределения шаблона вывода модуля. В обоих случаях нужно создать директорию «[Joomla root]/templates/<ваш шаблон>/html/<имя модуля>». На примере стандартного модуля авторизации и шаблона «Beez_20», директория будет выглядеть так — «[Joomla root]/templates/beez_20/html/mod_login/».
Существует два разных отличия между переопределением шаблона и созданием альтернативного макета. Первое, при переопределении шаблона вы должны были называть файл «default.php», чтобы соответствовать имени шаблона. И могли переопределить его только один раз. Для альтернативных макетов вы можете использовать любое имя, кроме основного файла (default.php). Единственное ограничение — имя файла не должно содержать никаких подчеркиваний. Это позволяет вам создавать сложные макеты, которые могут состоять из нескольких файлов. Исходный (начальный) файл макета не должен иметь подчеркиваний, а остальные файлы, которые могут вызываться из него должны содержать подчеркивание после имени. Например, у вас есть исходный файл «[Joomla root]/templates/beez_20/html/mod_login/xxx.php», остальные шаблоны, которые будут вызываться из него должны называться «[Joomla root]/templates/beez_20/html/mod_login/xxx_1.php» и т. д.
Второе важное отличие в том, что когда вы переопределяли шаблон, он вызывался автоматически, при отображении модуля. В Joomla 1.7 есть дополнительный параметр, который называется альтернативный макет:

Этот параметр содержит список файлов (без подчеркиваний), которые вы поместили в директорию с шаблоном (<ваш шаблон>/html/<имя модуля>/Список этих файлов). Вы также можете перевести название макета при необходимости. Для этого нужно добавить строчку вида:
в файл локализации шаблона «[Joomla root]/language/ru-RU/ru-RU.tpl_beez_20.sys.ini», это действие переведет название макета файл «xxx.php» в «Альтернативный текст»
Важно понимать, что выбранный макет для модуля в Менеджере модулей, будет использоваться независимо от того, какой шаблон используется для страницы. Поэтому Администратор должен следить за тем, где какой макет использовать. Для создания макетов к разным страницам, можно сделать копию модуля, выбрать в нем нужный макет и назначить модули для соответствующих пунктов меню.
Альтернативные макеты компонента работают аналогичным образом как и модули, о которых говорилось выше. Файл также помещается в ту же директорию, как и при переопределении. На примере создания макета для материала и шаблона «Beez_20» это будет файл «[Joomla root]/templates/beez_20/html/com_content/article/xxx.php». Как и у модуля этот файл не должен называться как основной и не должен содержать подчеркиваний. Кроме того в этой директории не должно содержаться XML файлов с таким же именем как и макет (Это будет рассмотрено позже, при рассмотрении макета пункта меню).
Вы можете установить глобальное значение макета для всего компонента. Для этого в «Менеджере материалов» нажмите кнопку «Настройки» и поставьте соответствующее значение.

Это создаст глобальное значение, но отдельные материалы также смогут использовать и любые другие макеты.

Для перевода макета вы также должны добавить в файл локализации шаблона (ru-RU.tpl_beez_20.sys.ini) следующую строчку
Вы можете создавать более одного файла для макета. Исходный файл не должен иметь подчеркивание, а дополнительные файлы должны содержать подчеркивание. Альтернативные макеты могут использоваться только при соблюдении двух правил:
Макеты для категории создаются также как для компонентов, разница будет лишь в директориях. Например, альтернативный макет для категории контактов шаблона «Beez_20» это будет директория «[Joomla root]/templates/beez_20/html/com_contact/category/xxx.php»
Вы также можете установить глобальное значение макета для категории, если это позволяет компонент:

Или выставить для нужной категории альтернативный макет:

Альтернативные макеты для категории, также как и для компонента, будут работать только в двух случаях:
Для материалов используется два основных макета — Блог и Список. Таким образом как и другие параметры теперь можно выбирать макет категории как глобально, так и для разных категорий отдельно.

И вы можете контролировать, какую категорию и как выводить, при условии если не будет пункта меню на эту категорию.
Здесь есть очень важное отличие от других макетов. Для создания альтернативного макета пункта меню вы должны создать XML файл, имя которого будет совпадать с именем исходного макета. Например что бы создать альтернативный макет пункта меню для материала в шаблоне «Beez_20» нужно создать 2 файла в директории «[Joomla root]/templates/beez_20/html/com_content/article» — «myarticle.php» и «myarticle.xml». Если ваш макет будет состоять из нескольких файлов, можно добавить дополнительные файлы с подчеркиванием.
XML файл макета использует тот же формат что и основной XML файл для пункта меню. Это означает что вы можете создавать не только индивидуальные макеты, но изменять или создавать необходимые параметры в пункте меню (в данном случае для материала). Альтернативные пункты меню появляются при выборе типа меню

Альтернативные макеты пунктов меню работают также как и стандартные макеты пунктов меню.
Как было сказано выше альтернативные макеты пунктов меню более приоритетные, чем макеты компонентов и категорий.
XML файл будет следующего вида:
Перевод пунктов меню осуществляется по следующему шаблону: «TPL_<template name>_<component>_<view>_<menu item name>_<tag type>»
Для этого примера
это будет файл «[Joomla root]/language/ru-RU/ru-RU.tpl_beez_20.sys.ini»
Как уже говорилось раньше, с помощью XML файлов можно менять основные и создавать дополнительные параметры. Вы должны учитывать, что если вы добавляете свои параметры, они будут доступны только в ваших макетах. Также вы можете переопределить параметры, которые заданы в шаблоне. Например? добавление в XML файл:
будет переопределять параметр «sitedescription» шаблона beez_20 (см. templateDetails.xml).