Меню

Контакты

+ 996 312 46 07 70
(прямой)
+ 996 555 55 03 11
Мы рады вашему звонку!

Авторизация




Перевод шаблона Joomla 1.0 в шаблон Joomla 1.5
Перевод шаблона Joomla 1.0.x в шаблон для Joomla 1.5

Как переделать шаблон от Joomla 1.0.x в шаблон для Joomla 1.5?

Данная задача встаёт перед многими сайтами после официального прекращения разработчиками Joomla поддержки версии 1.0.

Конвертация шабона не занимает много времени. Основные проблемы возникают в поддержке Joomla 1.5 старых версий модулей и компонентов, созданных сторонними разработчиками и не входящими в стандартный пакет Joomla 1.5. К данной проблеме мы вернёмся в новых статьях.

Первым должен быть модифицирован файл  templateDetails.xml.

 Изменения в файле templateDetails.xml

 

1.0 1.5
<mosinstall type="template">
...
</mosinstall>
<install type="template">
....
</install>

<images>

....
</images>

данный блок объявления рисунков перенесен в блок <files></files>

<css>

...

</css>

данный блок объявления каскадных таблиц стилей перенесен в блок <files></files>
<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE install PUBLIC "-//Joomla! 1.5//DTD template 1.0//EN" "http://www.joomla.org/xml/dtd/1.5/template-install.dtd">

 

Новой возможностью шаблонов templateDetails.xml является использование дополнительных параметров. Параметрами могут быть: цвет, размер шрифта, количество модулей и их позиции, ширина, показ компонентов и т.д. Данные параметры пользователи смогут устанавливать в параметрах шаблона, а разработчики использовать при разработке дизайна.
Несколько вариантов использования параметров:

Пример выбора цвета шаблона:

 
<param name="color" type="list" default="blue" label="Change Color" description="Change Template Color">   
   <option value="blue">blue</option>
   <option value="green">Green</option>
   <option value="red">red</option> 
</param>
 

Вызов параметра в файле index.php шаблона:

 

 
<link rel="stylesheet" href="templates/<?php echo $this->template ?>/css/
<?php echo $this->params->get('color'); ?>.css" type="text/css" />
 

 

Пример отключения вывода компонентов в шаблоне:

 
<param name="showComponent" type="radio" default="1" label="Show Component" description="Show/Hide the component output">
   <option value="0">No</option>
   <option value="1">Yes</option> 
</param>
 

 

Вызов параметра в файле index.php шаблона:

 
<?php if($this->params->get('showComponent')) : ?>
    <jdoc:include type="component" /> 
<?php endif; ?> 
 

 

Выбранные параметры сохраняются в файле params.ini, не забудьте установить соответсвующий доступ к данном файлу, иначе настройки не будут сохраняться.

 

Пример полной версии файла templateDetails.xml:

 
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE install PUBLIC "-//Joomla! 1.5//DTD template 1.0//EN" "http://www.joomla.org/xml/dtd/1.5/template-install.dtd">
<install version="1.5" type="template">
    <name>Template name</name>
    <creationDate>19 November 2009</creationDate>
    <author>VBizSoft Team Group</author>
    <authorEmail>info [at] vbizsoft.kg</authorEmail>
    <authorUrl>http://www.vbizsoft.kg</authorUrl>
    <copyright></copyright>
    <license>GNU/GPL</license>
    <version>1.0.0</version>
    <description>Example template for Joomla 1.5</description>
    <files>
        <filename>css/template.css</filename>
        <filename>css/general.css</filename>
        <filename>css/index.html</filename>
        <filename>html/com_contact/category/default.php</filename>
        <filename>images/arrow.png</filename>
        <filename>images/arrow_rtl.png</filename>
        <filename>images/pfeil.gif</filename>
        <filename>images/pfeil_rtl.gif</filename>
        <filename>index.html</filename>
        <filename>index.php</filename>
        <filename>javascript/md_stylechanger.js</filename>
        <filename>javascript/index.html</filename>
        <filename>params.ini</filename>
        <filename>templateDetails.xml</filename>
        <filename>template_thumbnail.png</filename>
        <filename>favicon.ico</filename>
    </files>
    <languages>
        <language tag="en-GB">en-GB.tpl_vbs.ini</language>
    </languages>
    <administration>
        <languages folder="admin">
            <language tag="en-GB">en-GB.tpl_vbs.ini</language>
        </languages>
    </administration>
    <positions>
        <position>left</position>
        <position>right</position>
        <position>top</position>
        <position>breadcrumb</position>
        <position>user1</position>
        <position>user2</position>
        <position>user3</position>
        <position>user4</position>
        <position>debug</position>
        <position>syndicate</position>
    </positions>
    <params>
    </params>
</install>
 

 

Изменения в файле index.php

В Joomla 1.0 начало файла index.php состояло из следующих строчек:

 
<?php
 defined( '_VALID_MOS' ) or die( 'Restricted access' );
 // needed to seperate the ISO number from the language file constant _ISO
 $iso = explode( '=', _ISO );
 // xml prolog
 echo '<?xml version="1.0" encoding="'. $iso[1] .'"?' .'>';
 ?>
 <!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">
 <head>
 <?php mosShowHead(); ?>
 <?php
 if ( $my->id ) {
     initEditor();
 }
 ?>
 <meta http-equiv="Content-Type" content="text/html; <?php echo _ISO; ?>" />
 <link href="<?php echo $mosConfig_live_site;?>/templates/vbs-template/css/template_css.css" rel="stylesheet" type="text/css" />
 </head>
 

 В Joomla 1.5 начало файла index.php состоит из следующих строчек:

 
 <?php
defined('_JEXEC') or die('Restricted access');
?>
<?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:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>" >
<head>
    <jdoc:include type="head" />
    <link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/beez/css/template.css" type="text/css" />
    <link rel="stylesheet" href="<?php echo $this->baseurl ?>/templates/beez/css/general.css" type="text/css" />
</head>
 

 

Изменения функционала в index.php шаблона:

 

1.0 1.5
Получение полного URL сайта
 
<?php echo $mosConfig_live_site; ?>
 
 
<?php echo $mainframe->getCfg('live_site'); ?>
 
Возвращает текущий шаблон
 
<?php echo $cur_template; ?>
 
<?php echo $this->template ?>
Выводит хлебные крошки (путь навигации)
 
<?php mosPathWay(); ?> 
 
<jdoc:include type="module" name="breadcrumbs" />
Вывод текущей даты
 
<?php echo mosCurrentDate (); ?>
 
<?php echo JHTML::Date( 'now', '%d | %m | %Y' ); ?> 
Вывод в шаблоне компонента
 
<?php mosMainBody(); ?>
 
<?php if($this->params->get('showComponent')) : ?>
<jdoc:include type="component" />
<?php endif; ?>
 

Вывод модуля с проверкой на наличие в данной позиции активных элементов, если не один элемент не выводится в данной позиции, то данная позиция не будет выводится.

Варианты использования условия:

countModules('user1')
countModules('user1 and user2')
countModules('user1 or user2')
countModules('user1 + user2')

 
<?php if (mosCountModules('top')) { ?>              
<?php mosLoadModules ( 'top' ); ?>
<?php } ?>
 
 
<?php if($this->countModules('top')) : ?>
<jdoc:include type="modules" name="top" style="table"/>
<?php endif; ?>
 
Варианты отображения компонентов и модулей
 
<?php mosLoadModules ( 'position name', type ) ?>
Type:
  • -1 модули выводятся без таблиц и блоков
  • -2 модули выводятся блоками DIV
  • -3 модули выводятся четырьмя блоками DIV, вложенными друг в друга
 
<jdoc:include type="modules" name="position" style="type"/>
Type:
  • table модули выводятся в таблице
  • horz  модули выводятся горизонтально (в таблице)
  • xhtml модули выводятся одном DIV, c заголовком H3
  • rounded модули выводятся четырьмя блоками DIV, вложенными друг в друга
Получение имени сайта
 
<?php echo $mosConfig_sitename; ?>
 
 
<?php echo $mainframe->getCfg('sitename'); ?>
 

 

 

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


Защитный код
Обновить

Новости антивируса Dr. Web


Наши партнёры