Создание шаблона для CMS Joomla 1.7 Часть 2.

1 звезда2 звезда3 звезда4 звезда5 звезда (2 голос, рейтинг: 4,50 из 5)
Loading ... Loading ...

Хотите оперативно получать новые уроки и статьи блога LAWANS.RU. Просто введите ВАШ e-mail на форме справа >>>

Привет Всем!

Продолжу предыдущую статью. Итак, я надеюсь, предварительные процедуры вы закончили, и теперь стоит перейти к основному, а именно к модификации шаблона под CMS Joomla 1.7

Для начала давайте установим в  CMS Joomla 1.7 наш шаблон. У нас уже есть список всех необходимых файлов для этого. Просто заархивируйте папку myshab со всем содержимым в архив .zip. Да и удалите (скопировав в другое место) пока её из /templates, а то система скажет нам, что папка такая уже есть.

Когда имя шаблона появится в списке шаблонов значит всё прошло удачно и начинаем самый главный и основной этап – кромсание файла index.php (в который мы переименовали index.html) в папке myshab. Не забудьте поставить галку основного шаблона по умолчанию для myshab.

Откроем файл index.php в любом текстовом редакторе я использую PSPad. Вначале файла вставим следующий код:

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

Он предотвращает непосредственный доступ к файлу шаблона из строки браузера. Переменная $templatePath будет содержать путь к текущему шаблону.

Давайте найдём строчку начинающуюся с <html. Я надеюсь в шаблоне она у вас есть.

И сделаем замены в данной строке там где xml:lang , lang и dir таким образом:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>" >

Код

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

берёт из CMS Joomla информацию об используемом на сайте языке и вставляет ее в код шаблона.

Тег <head>

Далее ищем по тексту тег <head>

И после него вставляем

<jdoc:include type="head" />

Код

<jdoc:include type="head" />

добавляет в заголовок страницы нужную для SEO информацию из настроек Joomla.

Обычно в теге <head> располагется подключение файлов css и js. Помните ещё папки создавали для них?

Например css файл:

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

Переделаем его в

<link rel="stylesheet" href="<?php echo $templatePath ?>css/template.css" type="text/css" />

Как видим мы добавили путь до файла в виде переменной, которую определили выше. Далее во всех путях css,js или файлах картинок замените пути на конструкцию вида:

<?php echo $templatePath ?>css(или js или images)/_имя_файла_

Кстати можете параллельно запускать сайт и глядеть, как он преображается.

Внутри тега <head>  можно подключить ещё стили самой CMS Joomla из системного шаблона (помните шаблон system)

<link rel="stylesheet" href="<?php echo $this->baseurl?>/templates/system/css/system.css" type="text/css" />
<link rel="stylesheet" href="<?php echo $this->baseurl?>/templates/system/css/general.css" type="text/css" />

Для оформления отображения системных сообщений об ошибках, предупреждениях, вообщем они содержат общие стили для Joomla.  Можно задать их в своём css файле если вы разбираетесь в этом.

Тег <body>

С верхушкой или разделом заголовка страницы разобрались, переходим непосредственно к телу страницы. Ищем тег <body>. Здесь мы будем подключать необходимые модули для сайта. Помните секцию <positions>  и названия позиций в файле templateDetails.xml  ? Вот они нам тут и потребуются. Допустим так можно подключить меню на сайте. При условии, что мы уже его забили в админке и в модулях оно у нас опубликовано в некоторой позиции.

Подключить в шаблоне любой модуль можно так:

<jdoc:include type="modules" name="position-0" style="xhtml">

Где name должно соответствовать позиции модуля выставленной в админке для него.

менеджер модулей

На скрине она указывается в Менеджере модулей столбец Позиция. Там мы видим и нашу позицию position-0. При этом модуль должен быть активен, т.е. стоять должна белая галочка в зеленом кружке.

При этом данный код выведет все модули в данной позиции.
Заметьте, что ещё есть такой необязательный параметр как style. С помощью него можно вывести стиль отображения модуля.
Его параметры могут быть следующие. Слева параметр, посредине код html, справа стиль оформления:
параметры модуля

параметры модуля 2

Для подключения информации из любого компонента (например, статей) используется код

<jdoc:include type="component" />

Для подключения системных сообщений или например сообщений об отправке письма из стандартного компонента контактов Joomla используется код

<jdoc:include type="message" />

Его можно поставить перед предыдущей конструкцией.
Вот ещё списочек переменных для универсальной вставки в шаблон:

<?php echo JURI::base(); ?> - выведет веб адрес сайта
<jdoc:include type="module" name="breadcrumbs" /> - вставка для путей на сайте (хлебные крошки)
<?php echo JHTML::Date( 'now', 'd.m.Y' ); ?> - вставляет текущую дату

Есть много других конструкций для шаблонов, с ещё большим применением языка php но я дал основные. На этом пока всё.
Как и говорил я выложил только основы. Жду как всегда ваших комментариев!


У ВАС ведь есть ТЕЛЕФОН? Или mp3-player? А может даже планшет, ноутбук или игровая консоль!
Хочется, чтобы он был необычным и уникальным?
Заходите к нам – мы поможем.

  
  
{lang: 'ru'}

Похожие статьи

7 thoughts on “Создание шаблона для CMS Joomla 1.7 Часть 2.

  1. Здравствуйте.
    Есть вопросы.
    Первое: как сделать вывод новостей для Joomla с датой и анонсом?
    Второе: можно ли редактировать секцию ? Там вроде mootols по дефолту идет, а если он не нужен?

    • для редактирования секции head частично придётся лезть в ядро смотря что нужно.
      если конкретно mootols убрать можно в шаблоне
      вставить
      getHeadData();
      $key1 = JURI::base(true). ‘/media/system/js/mootools-core.js’;
      $key2 = JURI::base(true). ‘/media/system/js/caption.js’;
      unset($headerstuff['scripts'][$key1], $headerstuff['scripts'][$key2]);
      $this->setHeadData($headerstuff);
      ?>
      перед

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>