Действия

Составляющие шаблона Joomla

Материал из База знаний Joomla

Шаблоны Joomla - пожалуй самые загадочные существа в рунете, т.к. по ним очень мало руководств. Вместе с тем, создать шаблон для Joomla! относительно просто. Достаточно знать XHTML и CSS 2 (да-да, выкиньте свои древние руководства по html и css 1, которых в рунете навалом). Да, еще не помешает знание хотя бы основ PHP, чтобы не путаться в условиях, php-дескрипторах и переменных. Даже в самой толстой книжке по PHP все эти вещи занимают не более 100-150 страниц (30 из которых введение и прочая вода).

Итак, ...

Переменные шаблона Joomla!

Вообще-то в шаблоне могут использоваться любые PHP-переменные Joomla! и расширений, но чаще всего используются вот эти:

  • $cur_template - название папки активного шаблона (именно папки, а не то, что написано в теге name файла templateDetails.xml). Вместо этой переменной можно использовать $mainframe->getTemplate();, только непонятен смысл этого, ведь $cur_template и так определена (я так понимаю надо привыкать к ООП, долой глобальные переменные, это плохой стиль (Dead Krolik))
$cur_template = $mainframe->getTemplate();
Использование: в указании пути к файлам шаблона. Вместо "жесткого" указания в пути названия папки шаблона лучше использовать эту перемменную, что обеспечит переносимость кода шаблона для создания других шаблонов.

Примеры использования

<link href="templates/<?php echo $cur_template;?>/css/template_css.css" rel="stylesheet" type="text/css"/>
 
<img src="templates/<?php echo $cur_template;?>/images/logo.png" alt="" title="" border="0" />
  • $mosConfig_sitename - и так понятно - это Название сайта.
Использование: в подвале шаблона, вместо логотипа


  • $mosConfig_absolute_path - абсолютный путь к Joomla


  • $mosConfig_live_site - URL сайта вида http://site.ru (без слэша в конце)
Использование: указание пути к файлам шаблона, в ссылках

Функции шаблона Joomla!

  • initEditor(); - инициализация редактора. Используется для возможности использования на сайте визуального редактора Joomla. Обычно функция используется только для зарегистрированных пользователей, по определенному условию (примеры использования в шаблоне). Функция должна стоять сразу после тега <head>.

Если вам не надо использовать на сайте визуальный редактор, то и эту функцию не используйте - Joomla будет быстрее, а страницы сайта - легче (это по слухам так).

  • mosShowHead(); - Функция для вывода title, мететегов (description, keywords, Generator, robots, author) и ссылки на favicon.ico сайта в заголовке страниц Joomla. Поэтому и место ей - сразу за тегом <head> после initEditor(), ведь первым тегом выводится title, который должен стоять сразу после <head>.


  • mosPathWay(); - Функция для отображения на сайте Pathway - Пути по сайту (Адреса). Где хотите выводить этот путь, туда и вставляете.


  • mosCountModules('название_позиции'); - Функция подсчета количества модулей в передаваемом параметре - названии позиции для модулей. Если название_позиции не указано, то считаются модули в области left. Результат работы функции - число.


  • mosLoadModules('название_позиции', стиль_модуля); - Функция вывода в этом месте (месте вызова функции) модулей Joomla!, в параметрах которых указано название_позиции (параметр Позиция).



Ни одна из перечисленных функций не является обязательной, их можно использовать по своему усмотрению, манипулировать ими. О том, как использовать функции Joomla в личных целях для создания шаблонов, читайте в статье Фишки шаблонов Joomla.


Заголовок шаблона Joomla!

<?php defined( '_VALID_MOS' ) or die( 'Прямой доступ запрещен!' ); ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="<?php echo _LANGUAGE; ?>" xml:lang="<?php echo _LANGUAGE; ?>">
<head>
<?php if ($my->id) { initEditor(); } ?> 
<?php mosShowHead(); ?> 
<meta http-equiv="Content-Type" content="text/html; <?php echo _ISO; ?>" />
<script type="text/javascript"></script>
<link href="templates/<?php echo $cur_template; ?>/css/template_css.css" 
 rel="stylesheet" type="text/css" media="screen" /> 
</head>

Дальше всё просто...


Создание шаблона Joomla! (для знакомых с CSS, HTML, основами PHP)

  1. В index.php шаблона вставьте заголовок шаблона Joomla! (код выше).
  2. Определитесь, где будут выводиться компоненты, модули и как будут названы позиции модулей.
  3. В html-код шаблона вставьте вызовы функций mosPathWay(), mosLoadModules(), mosMainBody().
  4. Настройте CSS Joomla.

Всё, шаблон готов, с чем вас и поздравляем! ;)
Можно запустить сайт, проверить работоспособность шаблона и его отображение.

Если наблюдаете белый лист, то надо включить отображение ошибок PHP, найти их и исправить.

См. также

templateDetails.xml