Этот файл представляет собой комбинацию кода разметки (X)HTML и програмного кода на языке PHP.

Начинается файл шаблона строкой, запрещающей прямой доступ к файлу:

// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );

Наиболее важная часть шаблона в смысле соответствия стандартам - объявление DOCTYPE.

<!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" xml:lang="ru-ru" lang="ru-ru" >

Для xml:lang="" lang="" в шаблоне нужно вставить php-код

<?php echo $this->language; ?>

DOCTYPE сообщает браузеру как нужно интерпретировать страницу. Строгое соответствие (strict) означает, что код HTML будет обрабатываться браузером в точном соответствии со стандартами. Промежуточный (transitional) DOCTYPE означает, что интерпретация страницы будет производится в соответствии с некоторыми соглашениями, несколько отличающихся от стандартов.

В общем виде файл пустого шаблона может имееть вид:

<!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" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>">
 
<head>
<jdoc:include type="head" />
 
<link rel="stylesheet" href="<?php echo $tmpTools->templateurl(); ?>/css/reset.css" type="text/css" />
<link rel="stylesheet" href="<?php echo $tmpTools->baseurl(); ?>templates/system/css/system.css" type="text/css" />
<link rel="stylesheet" href="<?php echo $tmpTools->baseurl(); ?>templates/system/css/general.css" type="text/css" />
<link rel="stylesheet" href="<?php echo $tmpTools->templateurl(); ?>/css/layout.css" type="text/css" />
<link rel="stylesheet" href="<?php echo $tmpTools->templateurl(); ?>/css/modules.css" type="text/css" />
<link rel="stylesheet" href="<?php echo $tmpTools->templateurl(); ?>/css/menus.css" type="text/css" />
<link rel="stylesheet" href="<?php echo $tmpTools->templateurl(); ?>/css/template.css" type="text/css" />
<link rel="stylesheet" href="<?php echo $tmpTools->templateurl(); ?>/css/editor.css" type="text/css" />
<script language="javascript" type="text/javascript" src="<?php echo $tmpTools->templateurl(); ?>/js/script.js"></script>
 
<script type="text/javascript">
</script>
<style type="text/css">
</style>
 
<!--[if lte IE 6]> <link href="<?php echo $tmpTools->templateurl(); ?>/css/ie6only.css" rel="stylesheet" type="text/css" /> 
<![endif]--> 
<!--[if lte IE 7]> <link href="<?php echo $tmpTools->templateurl(); ?>/css/ie7only.css" rel="stylesheet" type="text/css" /> 
<![endif]--> 
</head> 
<body> 
 <jdoc:include type="message" /> 
 <jdoc:include type="module" name="breadcrumbs" />  <jdoc:include type="modules" name="top" />
 <jdoc:include type="modules" name="left" />
 <jdoc:include type="component" />
 <jdoc:include type="modules" name="right" />
 <jdoc:include type="modules" name="debug" />
</body> 
</html>

 

Вывод скриптов, стилей в head область страницы делается с помощью тега head:

<jdoc:include type="head" />

Для совместимости с IE удобно использовать Условные комментарии

<!--[if lte IE 6]>
<link href="ie6only.css" rel="stylesheet" type="text/css" />
<![endif]-->
<!--[if lte IE 7]>
<link href="ie7only.css" rel="stylesheet" type="text/css" />
<![endif]-->

Вставка переменных в шаблон

В файле шаблона пригодятся следующие переменные

Язык: $this->language; 
Сайт: $mainframe->getCfg(&#39;sitename&#39;);
Почта администратора: $mainframe->getCfg(&#39;mailfrom&#39;);
Шаблон: $this->template;
URL: JURI::base();

Вставка модулей в шаблон

Строка <jdoc:include type="modules" name="right" /> вставляет вывод модулей с указаным местоположением right

Полный синтаксис этой инструкции имеет вид:

<jdoc:include type="modules" name="location" style="option" />

Атрибут style

Стиль вывода определен в файле templates/system/html/modules.php

Атрибут style можно не указывать, по умолчанию применяется табличный стиль table

  • table - модули отображаются в виде таблицы с одной колонкой
  • horz - модули выводятся горизонтально каждый в отдельной ячейке таблицы
  • xhtml - каждый модуль помещается в отдельном элементе div
  • rounded - модули выводятся в формате, который позволяет выводить рамку с скругленными углами. 4 элемента div, расположенные друг в друге.
  • none - содержимое модуля выводится без контейнеров и заголовка

Сокрытие кода разметки модуля.

Сокрытие кода разметки модуля осуществляется с помощью вставки кода PHP:

<?php if($this->countModules(&#39;left&#39;)) : ?>
<div id="sidebar">
 <jdoc:include type="modules" name="left" style="xhtml" />
</div>
<?php endif; ?>

Существуют ещё несколько методов подсчета модулей. Допустим в левой колонке имеется 4 модуля и в правой 3, тогда:

  • 'left and right' даст 1, потому что модули есть в обоих колонках
  • 'left or right' - 1, потому что хотя бы в одной колонке модули есть
  • 'left + right' - 7, потому что в двух колонках всего 7 модулей

Чтобы сделать комментарий, нужно авторизоваться на сайте!