9/25/2008

Створення шаблону для Joomla! 1.5

Пропонуємо Вашій увазі невеликий мануал-введення по створенню шаблонів для 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 - ім'я папки шаблона.



 



http://www.joomla-ua.org/content/view/113/24/

Міграція з Joomla 1.0.x на Joomla 1.5 Stable

Весь процес міграції з Joomla! 1.0 на Joomla 1.5 виконується в автоматичному режимі в 2 етапи. На першому етапі виконується експорт даних з Joomla 1.0.x за допомогою спеціального компонента міграції - Migrator. На другому етапі виконується імпорт збережених раніше даних у процесі інсталяції Joomla! 1.5. Процедура міграції була автоматизована у зв'язку із численними змінами в структурі БД Joomla 1.5.

Не рекомендується виконувати цю операцію звичайним шляхом – збереження і відновлення дампа БД, щоб запобігти втрату даних.

­

Попередні кроки­

Для міграції Вам необхідно мати встановлену Joomla! 1.0.12. У випадку, якщо Ваш сайт працює на Joomla 1.0.13, потрібно встановити патч Rob Schley. Також рекомендуємо перед міграцією створити повну резервну копію Вашого сайту на випадок, якщо щось піде не так. Ми рекомендуємо не знищувати Ваш сайт на Joomla 1.0.x до того часу, поки ви не переконаєтеся, що міграція на Joomla 1.5 пройшла успішно і все працює так як потрібно.

В ідеалі спочатку необхідно виконати міграцію на локальному комп'ютері і тільки тоді вже на "живому сайті". Причому потрібно встановити Joomla 1.5 в окрему директорію та окрему БД, зберігши при цьому файли і базу Joomla 1.0.x.­

Крок 1: Завантаження компонента Migrator і встановлення його на сайт із Joomla 1.0.x

Актуальна версія компонента Migrator доступна на сайті Pasamio Project's FRS site. На сьогоднішній день - це Migrator RC5.

Завантажте компонент Migrator та встановіть його на Ваш сайт із Joomla 1.0.x. Компонент встановлюється як звичайний компонент і доступний після встановлення в меню Components - Migrator.

Крок 2: Встановлення додаткових плагінів для Migrator

Компонент Migrator здійснює міграцію даних тільки для встановлених компонентів і модулів. У випадку, якщо у Вас встановлені сторонні розширення, Вам необхідно встановити відповідні плагіни. Зверніться за цими плагінами до авторів розширень.

Існує два типи плагінів:

  • SQL-плагін, який працює зі звичайним текстовим SQL файлом;
  • ETL-плагін, який містить невелику частину PHP коду, в якому вказується яким чином мігратор повинен обробляти дані, які зберігаються в таблицях і конфігураційних файлах.

Виклик плагінів здійснюється з меню "Add Third Party Migrators", через шлях до файлу плагіна.

­ Після вибору плагіна він буде автоматично виконаний. Список доступних плагінів можна переглянути, натиснувши на "List Plugins" на головній сторінці компонента.

Крок 3: Створення SQL-файлу для міграції

Після того, як ви встановили всі необхідні додаткові плагіни для початку процесу натисніть "Create Migration SQL file".

Компонент міграції розроблений таким чином, щоб навіть для великої кількості даних не відбулося переривання процесу створення через тайм-аут. Під час створення файлу сторінка може декілька разів автоматично перевантажуватися, повідомляючи про стан процесу. Після того, як процес створення міграційного файлу буде завершений, на екрані з'явиться посилання для завантаження створеного файлу.

Під час створення файлу міграції в ньому будуть автоматично зроблені всі необхідні зміни полів у таблицях для коректної роботи в Joomla! 1.5, включаючи зміну тегів mosimage.

Етап 4: Встановлення Joomla! 1.5

Останнім етапом міграції є встановлення на Ваш сайт нової версії Joomla! 1.5. Дотримуючись вказівок майстра інсталяції виконайте всі кроки. На останньому кроці інсталяції Вам буде запропоновано ввести назву сайту та запустити процес міграції даних. Для виконання міграції даних Вам потрібно завантажити на Ваш новий сайт SQL-файл міграції, який Ви створили на попередньому етапі (див. Крок 3).

Міграційний файл можна завантажити двома способами:

  • по HTTP;
  • по FTP/SCP.

Перший метод - завантаження по HTTP придатний для файлів міграції невеликого розміру для запобігання переривання виконання скрипта із за перевищення часу виконання зазначеного в налаштуваннях PHP.

Альтернативний метод - завантаження файлу по протоколу FTP або SCP, або будь-яким іншим способом, запропонованим Вашим провайдером. Цей метод підійде для сайтів з великою кількістю контенту і, відповідно більшим обсягом SQL-файлу міграції. При використанні методу завантаження по HTTP, – просто виберіть файл міграції та натисніть кнопку "Завантажити". При використанні альтернативного методу – попередньо завантажте файл міграції в директорію installation/sql/migration і перейменуйте його в "migrate.sql".

Якщо з якихось причин процес міграції не вдався, Вам необхідно заново завантажити файли міграції та повторити процедуру.

Після того, як процес міграції завершився, – введіть назву сайту (з технічних причин назва файлу не може бути автоматично мігрована) та завершіть встановлення Joomla 1.5.

Оригінал статті: Migrating from 1.0.x to 1.5 Stable­­

http://www.joomla-ua.org/content/view/104/41/