LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
04.02.2012, 10:38:50 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: 1 [2] 3 4 5 6 7 8   Вниз
  Добавить закладку  |  Печать  
Автор Тема: [howto] Создание шаблона для Joomla! 1.5  (Прочитано 258811 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Mitrich
Администратор
*******

Репутация: +519/-13
Offline Offline

Пол: Мужской
Сообщений: 3274


Все можно. Но сначала учиться, учиться и учиться.


« : 04.01.2007, 15:54:32 »

Этот мануал для тех кто уже делал шаблоны для Joomla! 1.0.x
Хотя и новичкам должно быть интересно.

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

Папки для CSS  и описания своих типов вывода модулей (см. ниже) называются css и html соответственно

Структура выглядит так:
templates
+ my_template
++ css
++ html
++ index.php
++ templateDetails.xml

Файл 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:lang="{LANG_TAG}" lang="{LANG_TAG}" 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 кода)
 
  Pathway (хлебные крошки)

В Joomla! 1.0.x
Код:
<?php echo mosPathWay();?>

В Joomla 1.5
Код:
<jdoc:include type="modules" name="breadcrumb" />

  Модули
В 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">Module Title</th>
  </tr>
  <tr>
     <td>Module Content</td>
  </tr>
</table>
   
      
style="horz" – горизонтальный вывод
Не увидел разницы со style="table" , хотя в официальном мануале сказано, что формируется горизонтальный вывод модуля

style="xhtml" – вывод модуля в одном DIV с заголовком H3

Код:
<div class="moduletable">
 <h3>Module Title</h3>
   Module Content
</div>

style="rounded" – вывод модуля в четырех вложенных DIV ( используется для создания закругленных углов в модулях, подробно о создании закругленных углов можно почитать >>> тут <<<).

Код:
<div class="module">
  <div>
    <div>
      <div>
         <h3>Module Title</h3>
Module Content
       </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:lang="{LANG_TAG}" lang="{LANG_TAG}" 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>

Трюки с отображением модулей
Спасибо userxp за помощь.Без него я бы не понял как это работает Smiley

Задача:
Для зарегистрированных пользователей выводим модули в 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') - e-mail админа
$mainframe->getCfg('live_site') - URL сайта
$this->template - имя папки шаблона
« Последнее редактирование: 18.06.2008, 18:50:28 от Mitrich » Записан
 
Kryse
Гость
« Ответ #31 : 08.12.2008, 17:37:17 »

вот в нете надыбал русский мануал с рисунками по созданию шаблона для joomla 1.5 (в формате *.pdf 37 страниц)   может кому пригодится Wink
http://fred-design.com.ua/fred/Template_User_Manual_RUS.pdf
Ссылочка битая. Нет ли у кого свеженькой линки на этот мануал или какой другой, но на русском?
Записан
SmokerMan
Профи
********

Репутация: +485/-19
Offline Offline

Пол: Мужской
Сообщений: 5049



« Ответ #32 : 08.12.2008, 17:49:04 »

Цитировать
Ссылочка битая. Нет ли у кого свеженькой линки на этот мануал или какой другой, но на русском?
http://joomla15.ifolder.ru/9447436
Записан
Kryse
Гость
« Ответ #33 : 09.12.2008, 13:18:53 »

http://joomla15.ifolder.ru/9447436
Глубокое Вам мерси  Kiss
Записан
TNorman
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 4


« Ответ #34 : 29.12.2008, 21:14:03 »

Нашёл интересную штуку для работы с модулями.

Можно задать в XTML свои новые позиции и в адмминке Joomla создать модуль произвольный ШТМЛ код содержащий исключительно <jdoc:include type="modules" name="имя позиции" />

После, очень удобно переносить модуль со всем содержимым из одной локации в другую (по надобности)

Так один модуль  <jdoc:include type="modules" name="left" />
может содержать в себе сразу несколько


<jdoc:include type="modules" name="имя позиции_1" />
<jdoc:include type="modules" name="имя позиции_2" />
<jdoc:include type="modules" name="имя позиции_3" />
<jdoc:include type="modules" name="имя позиции_4" />


И для каждой этой отдельной позиции через компонент произвольный ШТМЛ код можно задать свои условия
отображения.
Позволяет очень гибко работать с модулями  Smiley

особенно для тех кому лень лишний раз лазать в код )))
Записан
dimon_sh84
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 5


« Ответ #35 : 15.01.2009, 15:38:40 »

Искал похожую тему, но не нашел. Подскажите, а возможно ли сделать так, чтобы пользователь (любой) смог сам под себя располагать модули (т.е. менять их позиции). Ну на подобии iGoogle. Заранее спасибо  Smiley
Записан
Greycat
Support Team
*****

Репутация: +62/-1
Offline Offline

Пол: Мужской
Сообщений: 621



« Ответ #36 : 15.01.2009, 15:44:04 »

Был подобный компонент в каталоге расширений, но сам не ставил и на вскидку названия не вспомню, поищите. Что-то связанное со словами "Module management".
Записан
gdX
Живу я здесь
******

Репутация: +123/-0
Offline Offline

Пол: Мужской
Сообщений: 1434

Дизайн спасет Мир!


« Ответ #37 : 16.01.2009, 19:07:48 »

Есть еще интересный свод переведённых статей «Создание чистого CSS-шаблона для Joomla 1.5»
Всего 4 части. Разжевано всё до мелочей - начиная с чистого листа до конечного построения шаблона.
Думаю, что этот перевод можно было бы оформить и на этом ресурсе, если автор не будет против.
Записан
Do_it
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 4


« Ответ #38 : 30.01.2009, 17:02:19 »

Мужики! А есть где нибудь описание  стилей которые используются в joomla 1.5.x (.moduletable_menu ,.article-meta ,.createdate, .pollstableborder  и т.д.)? Желательно чтобы было как в приложенном фале.

* Mambo CSS Guide в картинках.rar (121 Кб - загружено 307 раз.)
Записан
van11
Гость
« Ответ #39 : 01.02.2009, 13:48:24 »

Есть ли какой нибудь плагин который позволяет на 1.5 поставить шаблоны от 1.0.ХХ?
Я когда пытался поставить шаблон он мне выдавал сообщение опубликуйте какой-то модуль (какой не помню)  Sad
А сейчас не выдает, а понадобилось  Sad
Записан
Hmury
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 31


« Ответ #40 : 08.02.2009, 17:00:30 »

А вот такой вопрос. Почему в результате в исходном коде сгенерированной Joomla странички имеем все тот же табличный вывод модуля. Т.е., например, фрагмент кода из закрепленного первого сообщения:
Цитировать
style="xhtml" – вывод модуля в одном DIV с заголовком H3

Код:
<div class="moduletable">
 <h3>Module Title</h3>
   Module Content
</div>
почему-то в результате получается совсем не таким.
Вот мой html из шаблона:
Код:
<jdoc:include type="modules" name="articles" style="xhtml" />
Joomla выдает в браузер в этом месте:
Код:
<div class="moduletable">
<table class="moduletable">
  <tr>
    <td>
      <table class="contentpaneopen_art">
        <tr>
          <td valign="top" >Статья 1<br />
                                Собственно, текст статьи
          </td>
        </tr>
        <tr>
          <td valign="top" >
          </td>
        </tr>
      </table>
    </td>
  </tr>
</table>
</div>
Собственно, если менять style="" в шаблоне, то меняется только самый внешний контейнер (соответственно на верный тип вывода), но внутри-то все равно таблица! Причем даже две вложенных... Из-за этого имею проблемы с версткой все в том же IE, который из-за табличного вывода никак не хочет "резинить" дизайн...
Записан
VETERINAR
Живу я здесь
******

Репутация: +165/-14
Offline Offline

Пол: Мужской
Сообщений: 1361


Kiss my shiny metal ass!


« Ответ #41 : 08.02.2009, 18:00:56 »

Собственно, если менять style="" в шаблоне, то меняется только самый внешний контейнер (соответственно на верный тип вывода), но внутри-то все равно таблица! Причем даже две вложенных...

Это потому, что то, что выводится внутри главной обертки, которую выводит Joomla, выводит сам модуль, а не Joomla. Лете в модуль и изменяйте вывод как Вам нужно.
Записан
Hmury
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 31


« Ответ #42 : 08.02.2009, 18:37:05 »

Лезьте в модуль и изменяйте вывод как Вам нужно.
Спасибо, в общем в результате к этому и пришел..
Записан
Arik
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 6


« Ответ #43 : 26.02.2009, 15:13:44 »

Mitrich, а нет прдробного мануала по созданию шаблонов для joomla?
Я имею ввиду все с нуля от макета и до реального шаблона.
Записан
beliyadm
Профи
********

Репутация: +1430/-61
Offline Offline

Пол: Мужской
Сообщений: 9233


Севастополь==Россия


« Ответ #44 : 03.03.2009, 09:25:28 »

У меня глюк был с Joomla 1.5.5... Даже не знал, что это 1.5.5, не я ставил. Не работал $mainframe->getCfg('live_site') естественно, переменную глобальной объявлял. Обновил до версии 1.5.7 и заработало...
хех, в 1.5.9 аналогично не работает ни live_site ни абсолютный путь
Записан
Mitrich
Администратор
*******

Репутация: +519/-13
Offline Offline

Пол: Мужской
Сообщений: 3274


Все можно. Но сначала учиться, учиться и учиться.


« Ответ #45 : 03.03.2009, 13:17:07 »

так пора ж уже юзать родные методы 1.5  Wink

Записан
beliyadm
Профи
********

Репутация: +1430/-61
Offline Offline

Пол: Мужской
Сообщений: 9233


Севастополь==Россия


« Ответ #46 : 03.03.2009, 13:20:36 »

так пора ж уже юзать родные методы
угу (может пригодится кому Azn)
Код
$config =& JFactory::getConfig();
Записан
Арчик
Давно я тут
****

Репутация: +32/-0
Offline Offline

Пол: Мужской
Сообщений: 383



« Ответ #47 : 04.03.2009, 00:42:10 »

В шаблонном модуле мона вычленить tite : echo $module->title  и содержимое: echo $module->content  ,  При этом им в отдельности можно прописать классы !
Вопрос - модулем выводим главное меню, кто знает как получить отдельные пункты меню чтобы обернуть их в отдельные слои ?
Пример:
<div class="first"><?php echo $module->content->пункт_ID_1   ?>
<div class="first"><?php echo $module->content->пункт_ID_2   ?>
Записан
Hmury
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 31


« Ответ #48 : 28.03.2009, 18:17:32 »

Популярный модуль extended menu вроде умеет такое.
Записан
Trampypys
Осваиваюсь на форуме
***

Репутация: +1/-1
Offline Offline

Пол: Мужской
Сообщений: 108



« Ответ #49 : 29.03.2009, 20:25:40 »

Mitrich, а нет прдробного мануала по созданию шаблонов для joomla?
Я имею ввиду все с нуля от макета и до реального шаблона.
Да мнеб тоже бы хотелось такую штуку почитать...
Записан
Hmury
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 31


« Ответ #50 : 29.03.2009, 20:57:50 »

Да мнеб тоже бы хотелось такую штуку почитать...
Да уже где только тут не выкладывали.... :
http://letitbit.net/download/5c0bf4804844/Template-User-Manual-RUS.pdf.html
Записан
Арчик
Давно я тут
****

Репутация: +32/-0
Offline Offline

Пол: Мужской
Сообщений: 383



« Ответ #51 : 08.04.2009, 16:44:30 »

Мужики помогите чето не выходит нужно чтоб при отключении заголовков модулей в админке выводился модуль с другими стилями
в шаблонном модуле пишу условие но оно не срабатывает (нужно получить условие типа "когда титл выключен").
Код
<?php if(!$module->title):?> - не работает
<?php if($module->title = false):?>  - тожа не работает
 



что делаю не так ?

Если более детально то вот :
Код
<?php
 
 
 
 
defined('_JEXEC') or die('Restricted access');
 
function modChrome_mod_left($module, & $params)
{ ?>
 <?php if(!$module->title):?>              
<div class="mod_left_body"><?php echo $module->content?><span class="mod_left_span"></span></div>
<?php  endif; ?>
<?php
}
function modChrome_mod_top($module, & $params)
{ ?>
<?php if($module->title):?>  
<div class="mod_left_title2"><?php echo $module->title ?></div>
<div class="mod_left_body2"><?php echo $module->content?><span class="mod_left_span2"></span></div>
<?php  endif; ?>
<?php
}
?>
 

--------------------------------------------------------------------------------------------------------------------------------------------

Еще вопрос как в шаблонном модуле выловить суффикс модуля? и приклеить его к названию стиля для титла и к названию класса для самого модуля ?
Код
<div class="mod_left_title2<?php суффикс модуля ?>"><?php echo $module->title ?></div>
<div class="mod_left_body2<?php суффикс модуля  ?>"><?php echo $module->content?><span class="mod_left_span2"></span></div>
 
« Последнее редактирование: 08.04.2009, 17:22:42 от Арчик » Записан
Арчик
Давно я тут
****

Репутация: +32/-0
Offline Offline

Пол: Мужской
Сообщений: 383



« Ответ #52 : 08.04.2009, 17:53:59 »

На второй вопрос ответил ...  суффикс модуля получаем так <?php echo $params->get('moduleclass_sfx'); ?>
Записан
Арчик
Давно я тут
****

Репутация: +32/-0
Offline Offline

Пол: Мужской
Сообщений: 383



« Ответ #53 : 08.04.2009, 18:05:12 »

Блин чуваки и на первый вопрос ответил : <?php if ($module->showtitle) : ?> .
Чёто у меня больше получается отвечать на вопросы чем их задавать.

PS: Жаль что себе в репу нельзя кинуть - думаю заслужил )))!
« Последнее редактирование: 08.04.2009, 18:09:42 от Арчик » Записан
gurin
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 7


« Ответ #54 : 08.04.2009, 23:16:34 »

Дорое время суток!
Возникла проблема, помогите пожайлуста её решить - у самого мозгов не хватает.
Поставил шаблон на joomla 1.5.10: ja_olyra (не знаю нужна эта информация или нет - но на всякий случай привожу).
Там есть позиции left, right, user1, user2, user5, user6, banner, debug. Добавил user9 и user8. В позиции left, right, user8 - модули выводятся, в остальные - нет. В чём может быть трабла?

Сайт http://tschool27.selfip.net/?tp=1

Заранее спасибо всем кто поможет.
Записан
gurin
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 7


« Ответ #55 : 08.04.2009, 23:54:31 »

Сейчас попробовал добавить левое меню в User9 - показалось 8(
А модуль входа не отображается....

В остальные так и не добавляется ничего - точнее не показывается...
Записан
gurin
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 7


« Ответ #56 : 09.04.2009, 00:12:23 »

Таак, только сейчас заметил что в списке у меня почему-то 2 User9. И отображается только в одном из них.
хотя по тексту шаблона есть всего 1... И его добавил я.
Записан
gurin
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 7


« Ответ #57 : 09.04.2009, 01:30:45 »

Ещё одно наблюдение - сначало User9, в котором отбражается, нету. Но стоит активировать модуль - он появляется и после того как его переактивировать на другой User9 - он показывется.

по поводу User1, User2, User5 и User6 - разобрался - шаблон так постоен, что они работают только когда есть активированые модули в позиции User6 и одной из позиций User1, User2, User5. А посольку я такого не делал - то и не работало
Записан
avenger
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 50



« Ответ #58 : 12.04.2009, 18:24:07 »

а как сделать проверку на главную (в шаблоне), ну то есть чтобы модуль выходил только на главной.
помню что для 1.0 много всяких проверок можно было а как для 1.5?
Записан
beliyadm
Профи
********

Репутация: +1430/-61
Offline Offline

Пол: Мужской
Сообщений: 9233


Севастополь==Россия


« Ответ #59 : 12.04.2009, 18:30:35 »

а как сделать проверку на главную (в шаблоне), ну то есть чтобы модуль выходил только на главной.
помню что для 1.0 много всяких проверок можно было а как для 1.5?
$Itemid JRequest::getInt'Itemid'1'get' );
if (
$Itemid == '1') {
 echo 
'mainpage';
} else {
 echo 
'inner page';
}
Естественно при Itemid  равным 1, посмотреть можно в админке - меню, какой пункт выставлен по умолчанию
Записан
Эш
Гость
« Ответ #60 : 26.04.2009, 20:29:53 »

$Itemid JRequest::getInt'Itemid'1'get' );
if (
$Itemid == '1') {
 echo 
'mainpage';
Естественно при Itemid  равным 1, посмотреть можно в админке - меню, какой пункт выставлен по умолчанию
Спасибо!
Записан
Страниц: 1 [2] 3 4 5 6 7 8   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet