Файл index.php. Урок 4

Файл index.php – самый важный в шаблоне "Myblog". Он определяет визуальное расположение элементов сайта и сообщает CMS Joomla в какой блок поместить различные компоненты и модули. Файл является комбинацией PHP и HTML.

Для работы с файлами шаблона вам понадобится программа Macromedia Dreamweaver .

Заголовок  файла

Заголовок файла состоит из нескольких частей. Первая часть кода PHP заголовка предназначена для того, чтобы убедиться, что к файлу не обращаются напрямую, из соображений безопасности.

<?php

// no direct access

defined( '_JEXEC' ) or die( 'Restricted access' ); ?>

DOCTYPE – это очень важный параметр, на основании которого браузер решает, как ему отображать эту страницу и как интерпретировать CSS.

<!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; ?>" dir="<?php echo $this->direction; ?>" >

Далее идет  фрагмент кода, который включает дополнительную информацию для заголовка, которая задана в глобальной конфигурации. Эту информацию вы можете увидеть, посмотрев исходный код любой веб-страницы. В частности – это мета-теги.

<head>

<jdoc:include type="head" />

Следующие строки в заголовке содержат ссылки на основные CSS стили Joomla.

<link rel="stylesheet" href="/templates/system/css/system.css" type="text/css" />

<link rel="stylesheet" href="/templates/system/css/general.css" type="text/css" />

Далее идут ссылки на все стили шаблона. На каждый файл CSS, имеющийся в шаблоне, обязательно должна стоять ссылка в этой части, иначе файл не будет задействован в оформлении шаблона.

<link rel="stylesheet" href="/templates/<?php echo $this->template ?>/css/template.css" />

<link rel="stylesheet" href="/templates/<?php echo $this->template ?>/css/menu.css" />

<link rel="stylesheet" href="/templates/<?php echo $this->template ?>/css/editor_content.css" />

Код вывода favicon.ico шаблона

<!--вывод favicon.ico шаблона -->

<link rel="icon" href="/templates/blog/favicon.ico" type="image/x-icon" />

<link rel="shortcut icon" href="/templates/blog/favicon.ico" type="image/x-icon" />

Эта строчка позволяет частично спрятать признаки Joomla , чтобы при генерации мета тега  <meta name="generator" content="Joomla! 1.5 - Open Source Content Management" /> не прописывалось название движка.

<?php $this->setGenerator('mysite'); ?>

</head>

Тело страницы

Тегом <body> открывается громадный блок оформления веб-страницы.

<body>

Открываются верхний и нижний блоки оформления заднего плана блога

<div id="art_top">

<div id="art_bot">

Блок «page» содержит  оформление страницы сайта

<div id="page">

Дальше идет блок шапки сайта header. В нем выводится название вашего сайта автоматически, а самостоятельно вы можете занести в код слоган сайта, между тегами <h2></h2>

<div id="header">

<h1><?php echo $mainframe->getCfg('sitename');?></h1>

<h2> <p>Здесь вы можете разместить слоган вашего сайта</p> </h2>

</div>

Блок topmenu, в котором  находится позиция  «topmenu» для вывода модуля верхнего горизонтального меню.

<div id="topmenu">

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

<jdoc:include type="modules"  style="xhtml"  />

<?php endif; ?>

</div>

Открывается блок оформления блокнота на котором будет размещен почти весь контент нашего блога.

<div id="bloknot">

Открывается блок шапки блокнота в котором будет выводится навигация и поиск по сайту

<div id="bloknot_top">

Блок для вывода верхней навигации по сайту в позиции «breadcrumbs».

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

<div id="breadcrumbs">

<jdoc:include type="modules"  style="xhtml"  />

</div>

<?php endif; ?>

Блок для вывода поиска по сайту в позиции «search».

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

<div id="search">

<jdoc:include type="modules" style="xhtml" />

</div>

<?php endif; ?>

</div> <!--конец шапки блокнота        -->

Открывается блок оформления контента сайта

<div id="bloknot_bg">

Открывается блок в котором будет выводиться контент.

<div id="content">

Внутри блока контента открывается пользовательский блок user1 для вывода модулей в позиции «user1».

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

<div id="user1">

<jdoc:include type="modules"  style="xhtml"  />

</div>

<?php endif; ?>

Вывод содержимого контента.

<jdoc:include style="xhtml" />

После вывода компонента контента выводится еще один пользовательский блок user2 для вывода модулей в позиции «user2».

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

<div id="user2">

<jdoc:include type="modules"  style="xhtml"  />

</div>

<?php endif; ?>

</div><!--конец блока content-->

Открывается блок правой колонки, которая не  будет сворачиваться, если в позиции «rigth» не будет ни одного модуля, имейте это ввиду!

<div id="right"><!--начало правой колонки-->

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

<jdoc:include type="modules" style="xhtml" />

<?php endif; ?>

</div>

После вывода правой колонки закрывается блок  bloknot_bg.

</div><!--конец блока с фоном блокнота-->

Открывается блок низа  блокнота, в котором будет размещено нижнее горизонтальное меню блога

<div id="bloknot_bot">

Вывод нижнего горизонтального  меню блога в позиции «botmenu» .

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

<div id="botmenu">

<jdoc:include type="modules"  style="xhtml"  />

</div>

<?php endif; ?>

</div> <!--конец блока низ блокнота   -->

</div><!--конец блока bloknot-->

Вывод блока footer , предназначенного для размещения информации  об авторских правах .

<div id="footer">

Блок copyright для вывода модуля с произвольным HTML в позиции «copyright».

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

<div id="copyright">

<jdoc:include type="modules" style="xhtml" />

</div><!--конец блока copyright -->

<?php endif; ?>

</div><!--конец блока footer -->

</div><!--конец блока page-->

</div><!--конец блока art_bot-->

</div><!--конец блока art_top-->

</body>

</html>

Теперь вы знаете при помощи каких команд,  и в какой последовательности выводятся блоки шаблона.

ВНИМАНИЕ! Если при изучении шаблона Likom я предлагала вам поэкспериментировать с  расположением блоков, меняя их местами или удаляя ненужные блоки,  то с шаблоном Myblog такие эксперименты не пройдут. Любое изменение PHP кода может привести к нарушению дизайна блога.

На пятом уроке мы познакомимся с файлами  template.css и menu.css, которые отвечают за оформление блога и файлом editor_content определяющим оформление статей на этапе редактирования.