RSS
Статті
Налаштування сайту
Безпека сайту
Хостинг для Joomla
Модифікації та хаки
Шаблони та дизайн
CSS
Ajax
SEO
Переклад

Завантажити Joomla

Хостинг для Joomla
Дискламація

Joomla!TM є торговою маркою компанії Open Source Matters inc. в США та інших країнах. Назва Joomla! і його варіації, такі як J, Joom тощо, використовуються в рамках обмеженою ліцензії, певною компанією Open Source Matters. Спільнота Joomla! Україна не відноситься до компанії Open Source Matters або проекту Joomla! Точки зору представлені на даному сайті не є офіційними точками зору Joomla Project або Open Source Matters.

Торгова марка Joomla® і логотип використовуються в рамках обмеженою ліцензії, наданої Open Source Matters.

Sape
Новый телефон samsung gt s8000 в продаже
Это интересно о здоровье и красоте в ресторанах Киева

Головна arrow Шаблони та дизайн arrow Створення шаблону для Joomla! 1.5

Створення шаблону для Joomla! 1.5
Написав Дмитро Смірнов (адаптація та переклад Dutch)   
30.01.2008

Пропонуємо Вашій увазі невеликий мануал-введення по створенню шаблонів для Joomla! 1.5. Стаття описує базовий функціонал розділення логіки та дизайну для тих, хто займається створенням шаблонів.­

­ ­­­

Шаблон

Структура шаблону практично не змінилася. Шаблони лежать у папці /templates. У папці Вашого шаблону обов'язково повинні бути наступні файли: index.php і templateDetails.xml (саме так з D у верхньому регістрі).

Папки для CSS і опис своїх типів відображення модулів (див. нижче) називаються css і html відповідно.

Структура:

  • templates
    • my_template
      • css
      • html
      • index.php
      • templateDetails.xml

Файл templateDetails.xml містить опис шаблону (ім'я автора, дату створення та ін.) і список файлів, які містяться в шаблоні (необхідно для встановлення шаблона через Менеджер Встановлення). Файл index.php - це власне і є шаблон.

Код порожнього index.php:

<?php echo '<?xml version="1.0" encoding="utf-8"?' .'>'; ?>
<!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:  dir="{LANG_DIR}" >
   <head>
      <jdoc:include type="head" />
      <link rel="stylesheet" href="templates/{TEMPLATE}/css/template.css" type="text/css" />
   </head>
 
   <body>
 
   </body>
</html>

Всередині теґів <body>...</body> міститься html-зміст шаблона (можливі включення PHP-коду).

Модулі

В Joomla! 1.0.x модулі виводилися так:

<?php mosLoadModules ( 'left',-1); ?>

де:

  • left - позиція модуля,
  • -1 - тип відображення модуля.

В Joomla! 1.5 відображення модулів здійснюється наступним чином:

<jdoc:include type="modules" name="right" style="-1" />

де:

  • type="modules" - говорить про те, що виводиться модуль;
  • name="right" - вказує на позицію модуля;
  • style="-1" - вказує тип висновку модуля.

Для style="..." з'явилася можливість вказування типу виводу не тільки цифрами, але й ключовими словами.

style="table" - стандартний вивід модуля в таблиці:

<table cellpadding="0" cellspacing="0" class="moduletable">
  <tr>
    <th valign="top">Заголовок Модуля</th>
  </tr>
  <tr>
     <td>Зміст Модуля</td>
  </tr>
</table>

де:

  • style="horz" - горизонтальний відображення.

Не побачив різниці з style="table", хоча в офіційному мануалі сказано, що формується горизонтальне відображення модуля.

style="xhtml" - вивід модуля в одному DIV із заголовком H3:

<div class="moduletable">
   <h3>Заголовок Модуля</h3>
   Зміст Модуля
</div>

style="rounded" - відображення модуля в чотирьох вкладених DIV (використовується для створення закруглених кутів у модулях):

<div class="module">
  <div>
    <div>
      <div>
         <h3>Заголовок Модуля</h3>
     Зміст Модуля
       </div>
     </div>
   </div>
</div>

style="raw" - буде виведений зміст модуля без заголовка, таблиць і DIV'ів:

Зміст Модуля

В Joomla 1.5 додана можливість створювати свої типи відображення модулів.

Опис типу відображення модуля знаходиться у файлі /templates/template_folder/html/modules.php. Ім'я функції обов'язково повинне починатися з modChrome_.

Приклад відображення модулів

Створимо тип відображення style="example", у якому модулі будуть виводитися в таблиці шириною 180px, заголовок модуля має червоне тло, текст заголовка виводиться в тегах <H3>…</H3>, тіло модуля має сіре тло. Весь текст у верхньому регістрі.

Код найпростішого файлу modules.php буде таким:

<?php
 
defined('_JEXEC') or die('Restricted access');
 
function modChrome_example($module, & $params)
{
 
?>
 
<table width="180px" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td style="background-color:red;"><h3><?php echo $module->title ?></h3></td>
  </tr>
  <tr>
    <td style="background-color:gray; text-transform:uppercase;"><?php echo $module->content ?></td>
  </tr>
</table>
 
<?php
 
}
 
?>

Контент

Відображення контента здійснюється таким чином:

В Joomla! 1.0.x

<?php mosMainBody(); ?>

В Joomla! 1.5

<jdoc:include type="component" />

Код найпростішого index.php трьохколоночного шаблону

<?php echo '<?xml version="1.0" encoding="utf-8"?' .'>'; ?>
<!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:  dir="{LANG_DIR}" >
   <head>
      <jdoc:include type="head" />
      <link rel="stylesheet" href="templates/{TEMPLATE}/css/template.css" type="text/css" />
   </head>
 
   <body>
     <table width="100%" border="0" cellspacing="0" cellpadding="0">
        <tr>
           <td  class="left"><jdoc:include type="modules" name="left" style="raw"/></td>
           <td class="center"><jdoc:include type="component" /></td>
           <td class="right"><jdoc:include type="modules" name="right" style="raw"/></td>
        </tr>
     </table>
   </body>
 
</html>

Трюки з відображенням модулів

Завдання:
Для зареєстрованих користувачів виводимо модулі в right для всіх інші модулі в user1.

Вирішення:
Після тегу <body> пишемо

<?php $user =& JFactory::getUser(); ?>

у тілі шаблона

<?php if($user->_id) {?>
<jdoc:include type="modules" name="right" style="raw"/>
<?php } else {?>
<jdoc:include type="modules" name="user1" style="raw"/>
<?php }?>

Завдання:
Для користувачів групи author виводимо модулі в right для всіх інші модулі в user1.

Вирішення:
Після тегу <body> пишемо

<?php $user =& JFactory::getUser(); ?>

у тілі шаблона

<?php if($user->get('usertype') == 'Author') {?>
<jdoc:include type="modules" name="right" style="raw"/>
<?php } else {?>
<jdoc:include type="modules" name="user1" style="raw"/>
<?php }?>

Завдання:
Разом з компонентом weblinks виводимо модулі в user2.

Вирішення:
Після тегу <body> пишемо

<?php  $option = JRequest::getVar( 'option' );?>

у тілі шаблона

<?php  if($option == 'com_weblinks') {?>
<jdoc:include type="modules" name="user2" style="raw"/>
<?php } ?>

Деякі змінні використовувані в шаблонах

  • $mainframe->getCfg('sitename') - назва сайту;
  • $mainframe->getCfg('mailfrom') - електронна адреса Адміністратора;
  • $mainframe->getCfg('live_site') - URL сайту;
  • $this->template - ім'я папки шаблона.
­­
 

Коментарі  

 
+3 #8 аЦЦкіЙ РОкЕР 18.03.2009 16:55
Я би сказав так. Дана інформація також подається у книжці Колисниченка! ТОму спорити про це вкрай безглуздо.
Цитувати | Поскаржитись адміністраторам
 
 
+17 #7 joomla-ua 13.12.2008 22:37
Статья написана на базе на наметок Митрича, который их любезно и предоставил для доработки и частичного перевода.
И еще прошу не матерится!
Цитувати | Поскаржитись адміністраторам
 
 
-70 #6 Ник 13.12.2008 22:30
Вот каклы, блин. Своего ничего придумать не могут. Только тырить русские тексты и на дермову переводить.
Цитувати | Поскаржитись адміністраторам
 
 
+10 #5 bunak 09.03.2008 10:44
Гарна стаття. Пропоную всавити її в Wiki
Цитувати | Поскаржитись адміністраторам
 
 
+10 #4 Dutch 01.02.2008 18:20
Цитую bunak:
Як би ще Ви зазнчили ресурси, звідки брали матеріал

joomlaforum.ru
Цитувати | Поскаржитись адміністраторам
 
 
+3 #3 bunak 01.02.2008 18:16
Як би ще Ви зазнчили ресурси, звідки брали матеріал
Цитувати | Поскаржитись адміністраторам
 
 
+15 #2 Sergiy 31.01.2008 11:16
Дуже дякую! Ви найкращі!.. :roll:
Цитувати | Поскаржитись адміністраторам
 

Додати коментар


Захисний код
Оновити

Додати на БобрдобрДодати на MemoriДодати на news2.ruДодати на Моё МестоДодати на Моё МестоДодати на NewslandДодати на СМИ2Додати на Ваау!Додати на Mr. WongДодати на GoogleДодати на YahooДодати на DiggДодати на Del.icoi.usДодати на SlashdotДодати на BlogmarksДодати на TechnoratiДодати на NewsvineДодати на BlinkbitsДодати на Folkd
1