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

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

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

Скачайте архив шаблона Likom. Откройте файл index.php в программе Dreamweaver. Файл находится в папке C:\JoomlaServer\home\localhost\www\название вашего сайта\templates\Likom.

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

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

<?php

// no direct access

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

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Следующий фрагмент извлекает установленный язык из глобальной конфигурации.

<html xmlns="https://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" />

Следующий фрагмент кода позволяет нам «выключать» колонку автоматически или «свертывать» ее, если она не содержит контента. Если в позициях «left» и « right» не расположено ни одного модуля, то они сворачиваются и колонка контента занимает  100% ширины страницы.  Если включена только одна колонка, то контент занимает 80%. При дух включенных колонках на контент приходится 60% ширины страницы.

<?php

if($this->countModules('left and right') == 0) $contentwidth = "100";

if($this->countModules('left or right') == 1) $contentwidth = "80";

if($this->countModules('left and right') == 1) $contentwidth = "60";

?>

Заключительная часть заголовка подключает файл favicon.ico , который является  идентификационным значоком сайта. Его можно увидеть в адресной строке браузера, слева от URL сайта, а также при выдаче сайтов в поиске Яндекса.

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

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

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

<body>

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

<div id="page">

Блок "pathway"  находится в самом верху страницы и содержит в себе два блока "breadcrumbs " и "user1".

<div id="pathway">
<div id="breadcrumbs">
<jdoc:include type="module" name="breadcrumbs" />
</div>
<div id="user1">
<jdoc:include type="modules" name="user1" />
</div>
</div><!-- конец блока pathway-->

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

<div id="header">

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

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

</div>

Вывод модуля горизонтального меню в блоке «user2».

<?php if($this->countModules('user2')) : ?>
<div id="topmenu ">
<jdoc:include type="modules" name="user2" style="xhtml" />
</div>
<?php endif; ?>

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

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

Открывается самый важный блок контента, который может занимать 100% ширины страницы,  80% и 60%, в зависимости от количества включенных колонок.

<div id="content<?php echo $contentwidth; ?>">

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

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

В блоке контента заключен блок «user3» для нижней навигации.

<?php if($this->countModules('user3')) : ?>
<div id="user3">
<jdoc:include type="modules" name="user3" style="xhtml" />
</div>
<?php endif; ?>

Закрывается блок контента content

</div>

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

<?php if($this->countModules('right')) : ?>
<div id="rigth">
<jdoc:include type="modules" name="right" style="xhtml" />
</div>
<?php endif; ?>

Вывод блока «bottom».

<?php if($this->countModules('bottom')) : ?>
<div id="bottom">
<div id="bottombox">
<div id="bottomboxin">
<jdoc:include type="modules" name="bottom" style="xhtml" />
</div> </div></div>
<?php endif; ?>

Вывод блока «bottommenu» для нижнего меню сайта.

<?php if($this->countModules('bottommenu')) : ?>
<div id="bottommenu">
<jdoc:include type="modules" name="bottommenu" style="xhtml" />
</div>
<?php endif; ?>

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

<?php if($this->countModules('footer')) : ?>
<div id="footer">
<jdoc:include type="modules" name="footer" style="xhtml" />
</div>
<?php endif; ?>

Закрываются блок страницы сайта «page», body и весь код.

</div>

</body>

</html>

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

Оформление каждого блока прописано в файлах template.css и menu.css с которыми вы познакомитесь на следующем уроке.

 

Комментарии 

 
# Елизавета 13.03.2011 20:01
Здравствуйте. Вот и приступила к урокам. И возник вопрос -можно ли сюда добавить еще один блок? И правильно ли я поняла,что блок добавляется вставкой новой таблицы?
Ответить | Ответить с цитатой | Цитировать
 
 
# Administrator 17.03.2011 21:01
Блоков можно добавлять сколько угодно, и где угодно. Вывод любых позиций в шаблоне определяется DIVами. Форматирование, которых в CSS и определяет, как будет выводиться контент в той или иной позиции шаблона. Таблиц в шаблоне нет - в этом то его основное достоинство. Советую немного почитать про использование DIVов в учебниках по CSS. Все очень просто до безобразия.
Ответить | Ответить с цитатой | Цитировать
 
 
# Ирина 21.03.2012 18:27
Здравствуйте! Отличный сайт! Вы помогли решить большую проблему, спасибо!! Попутно вопрос: а если добавлять в шаблон новые блоки, как их следует называть? Как называть соответствующий модуль и какой выбирать суффикс? Я переместила блок pathway и на его место хочу блок для размещения баннера.
Ответить | Ответить с цитатой | Цитировать
 
 
# Юрий 02.11.2013 13:06
Здравствуйте.
А боковое меню (блоки) изначально есть в Вашем шаблоне или их надо каким то образом прописывать в CSS. Просто я создал меню привязал к нему категории, материалы, но движок не отображает бокового меню для навигации. Если Вас не затруднит, объясните мне что я делаю не так.
Заранее спасибо за ответ.
Ответить | Ответить с цитатой | Цитировать
 
 
# Кирилл 14.01.2015 19:13
Светлана, здравствуйте. А вы планируете написать кратенькую заметку на тему "Чем отличаются шаблоны разных версий Joomla?" Я сейчас задаюсь этим вопросом поскольку планирую переводить сайт с версии 1.5 на 2.5 или 3.0. И конечно ломаю голову над шаблоном, делать ли новый или подогнать старый под требования последних версий ЦМС.

В чем основные отличия?
Ответить | Ответить с цитатой | Цитировать