Закрыть Авторизация

     

Файл шаблона index.php

Файл состоит из разметки (x)HTML и программного кода РHP.

Первая строка файла закрывает к нему прямой доступ:

// 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('sitename');

Почта администратора: $mainframe->getCfg('mailfrom');

Шаблон: $this->template;

URL: JURI::base();

 

Вставляем модуль в шаблон

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

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

 

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

 

table - модули отображаются в виде таблицы с одной колонкой

horz - модули выводятся горизонтально каждый в отдельной ячейке таблицы

xhtml - каждый модуль помещается в отдельном элементе div

rounded - модули выводятся в формате, который позволяет выводить рамку с скругленными углами. 4 элемента div, расположенные друг в друге.

none - содержимое модуля выводится без контейнеров и заголовка

 

Скрытие кода разметки делаем, вставляя код PHP:

 <?php if($this->countModules('left')) : ?>

<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 модулей