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

Войти
   
   Начало   Поиск 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  (Прочитано 259903 раз)
0 Пользователей и 4 Гостей смотрят эту тему.
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 » Записан
 
boonya
Захожу иногда
**

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

Сообщений: 11


« Ответ #151 : 04.05.2010, 15:39:01 »

Ничего не получилось...
Записан
zerowin
Гость
« Ответ #152 : 06.05.2010, 02:30:08 »

Да, еще было бы иметь список стандартных CSS классов под рукой было бы замечательно.
« Последнее редактирование: 06.05.2010, 02:37:23 от zerowin » Записан
Alldar
Тестеры
*****

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

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



« Ответ #153 : 06.05.2010, 03:04:58 »

FireBug в помощь
Записан
boonya
Захожу иногда
**

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

Сообщений: 11


« Ответ #154 : 06.05.2010, 11:47:50 »

Ну... Если последние два поста относятся ко мне, то FireBug у меня уже давно установлен и я им активно пользуюсь, а во вторых причем здесь CSS и иже с ним?
Проблема ведь в самом движке, а не в стилях.
Записан
z-7mark
Осваиваюсь на форуме
***

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

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


Верстка для Joomla


« Ответ #155 : 07.05.2010, 04:31:21 »

Ну... Если последние два поста относятся ко мне, то FireBug у меня уже давно установлен и я им активно пользуюсь, а во вторых причем здесь CSS и иже с ним?
Проблема ведь в самом движке, а не в стилях.

есть решение, как сразу не догадался то..

Прописываете условие в ШАБЛОНЕ. такая конструкция подгрузит модуль только на главной странице

Код
<?php
 if (($option == '') || ($option == 'com_frontpage')) {
   mosLoadModules ( 'user1' );
 }
?>

user1 = нужное имя модуля, думаю это понятно
Записан
boonya
Захожу иногда
**

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

Сообщений: 11


« Ответ #156 : 07.05.2010, 12:20:48 »

есть решение, как сразу не догадался то..

Прописываете условие в ШАБЛОНЕ. такая конструкция подгрузит модуль только на главной странице

Код
<?php
 if (($option == '') || ($option == 'com_frontpage')) {
   mosLoadModules ( 'user1' );
 }
?>

user1 = нужное имя модуля, думаю это понятно

Я этот вариант рассматривал и в крайнем случае буду использовать его. Просто хотелось разграничить основной дизайн сайта от дизайна его начинки, а так придётся в одном файле держать кучу не нужных условий и разметки.
Кстати, неправильно ты пример привел. Так не работает. А вот так работает:
Код
<?php
if (JRequest::getVar('view') == 'frontpage') {
?>
<jdoc:include type="modules" name="user1" />
<?php
}
?>

Ведь значение переменной $option в твоём коде не задано. И, на сколько я понял, компонент главной страницы и всего остального контента называется com_content, а содержимое в нем может быть самое разное.

Моей задачей было создать уникальный дизайн содержимого главной странице и чтоб только в нутри этого дизайна отображались такие модули как Голосование, Последние новости и т.п. Чтобы это реализовать, я поступил следующим образом:

Код
<?php
if (JRequest::getVar('view')!= 'frontpage')
{
?>
<jdoc:include type="component" />
<?php
}
else
{
?>
 
<div class="lastnews">
<jdoc:include type="modules" name="lastnews" />
</div>
<div class="polls">
<jdoc:include type="modules" name="polls" />
</div>
 
<?php
}
?>

Может кому пригодится...
Записан
Laroux
Захожу иногда
**

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

Сообщений: 7


« Ответ #157 : 03.08.2010, 10:10:48 »

хорошая статья, но на мой нубский взгляд не хватает хотя бы кратких описаний. К примеру, Вы пишете:
После тега <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 }?>
ну и неплохо было бы описать, что делает строка <?php $user =& JFactory::getUser(); ?>. Мне, к примеру, пришлось читать еще "на стороне" и разбираться что это и зачем.
Записан
pacavaca
Захожу иногда
**

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

Сообщений: 5


« Ответ #158 : 22.08.2010, 01:06:48 »

Добрый вечер.

Хотелось бы ещё услышать о такой теме.
В стандартном шаблоне "beez" в папке HTML находится множество папок такого рода:
com_contact
com_content
com_newsfeeds
com_poll

Насколько я понял, это переопределение стандартных модулей и компонент. Однако если посмотреть на структуру компонент и модулей, то есть отличия в наличии папок, некоторых файлов.
Расскажите плз как правильно переопределять модули и компоненты.

Спасибо. Azn
Записан
gdX
Живу я здесь
******

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

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

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


« Ответ #159 : 22.08.2010, 01:10:21 »

Вы про это?
http://joomlaforum.ru/index.php/topic,43049.new.html
Записан
pacavaca
Захожу иногда
**

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

Сообщений: 5


« Ответ #160 : 22.08.2010, 01:12:15 »

Да! Спасибо!
Но уже сам нашёл
Вот ещё ссылка - http://joomlaforum.ru/index.php/topic,57359.0.html
Записан
M0desty
Гость
« Ответ #161 : 24.08.2010, 06:14:29 »

Пасиб за статейку Cheesy Придется таки мигрировать походу Shocked Пошел копать Smiley
Записан
podobreev
Новичок
*

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

Сообщений: 4


Алексей


« Ответ #162 : 28.08.2010, 12:22:22 »

У меня менюшка горизонтальная выводится ввиде списка вертикального, как это исправить?
Записан
z-7mark
Осваиваюсь на форуме
***

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

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


Верстка для Joomla


« Ответ #163 : 30.08.2010, 13:17:42 »

У меня менюшка горизонтальная выводится ввиде списка вертикального, как это исправить?

в CSS стилях прописать например так:  ul li {float: left;}
Записан
caitleen
Осваиваюсь на форуме
***

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

Пол: Женский
Сообщений: 114


« Ответ #164 : 27.09.2010, 22:10:05 »

Создала дизайн сайта (рис. nado1,nado2,nado3).
Помогите разобраться с созданием шаблона для Joomla 1.5. Сделала шаблон, но выводится совсем не так
как надо, точнее вообще ужасно.
думаю ошибки у меня в index.php и modules.php

Скриншоты того, что стало - рис. stalo1,stalo2.

p.s. прошу помощи, т.к времени много разбираться нет (сижу в декрете и осваиваю создание
собственных шаблонов, надоело на чужих шаблонах сидеть), прочитала много на форумах, но в ответ -
путаница.
http://www.7s-art.ru/images/s-art/nado1.jpg
http://www.7s-art.ru/images/s-art/nado2.jpg
http://www.7s-art.ru/images/s-art/nado3.jpg
http://www.7s-art.ru/images/s-art/stalo1.jpg
http://www.7s-art.ru/images/s-art/stalo2.jpg
Записан
caitleen
Осваиваюсь на форуме
***

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

Пол: Женский
Сообщений: 114


« Ответ #165 : 28.09.2010, 19:39:07 »

1 div лишний был. К тому же были проблемы с включением jdoc - не могла правильно вставить куда надо.
Вот например сейчас сайт выглядит так (рис. stalo3).
Помогите разобраться что к чему?
1) правильно ли я пишу:
Код:
Контент вывожу так:
<div id="content">
<div id="pathway">
<jdoc:include type="module" name="breadcrumbs" />
</div>
<?php if ($this->getBuffer('message')) : ?>
<div class="error">
<h2>
<?php echo JText::_('Сообщение'); ?>
</h2>
<jdoc:include type="message" />
</div>
<?php endif; ?>
<jdoc:include type="component" />
</div>
2) На рисунке видно что div превратились в таблицы. Как это устранить?
3) Верхнее меню вообще не показывается.
В CSS оно идет как #topnav (это красный блок с желтым border). Меню #topnav ul, #topnav li.
Код:
В modules.php прописала:
function modChrome_top($module, &$params, &$attribs)
{ if (!empty ($module->content)) : ?>
<div class="top<?php echo $params->get('moduleclass_sfx'); ?>">
<?php if ($module->showtitle != 0) : ?>
<h3><?php echo $module->title; ?></h3>
<?php endif; ?>
<?php echo $module->content; ?>
</div>
<?php endif; }

В index.php:
<?php if($this->countModules('top')) : ?>
<div id="topnav">
<jdoc:include type="modules" name="top" style="top" />
</div>
<?php endif; ?>
В админке где Верхнее меню выбрала позицию top и суффикс класса модуля указала как nav.

Что неправильно?

4) С левым меню тоже непонятно.
В CSS оно идет как #leftlist. Меню #leftlist ul, #leftlist li.
Код:
В modules.php прописала:
function modChrome_left($module, &$params, &$attribs)
{ if (!empty ($module->content)) : ?>
<div class="left<?php echo $params->get('moduleclass_sfx'); ?>">
<?php if ($module->showtitle != 0) : ?>
<h3><?php echo $module->title; ?></h3>
<?php endif; ?>
<?php echo $module->content; ?>
</div>
<?php endif; }

В index.php:
<?php if($this->countModules('left')) : ?>
<div id="sidebarleft">
<div id="leftlist">
</div>
<div id="left">
</div>
<jdoc:include type="modules" name="left" style="left" />
</div>
<?php endif; ?>
В админке где Левое меню выбрала позицию left и суффикс класса модуля указала как list.
#left - это левый красный блок для например -Кто на сайте? он тоже без оформления вышел.
#sidebarleft {float:left; width:20%;}
Как это все состыковать?

5) Правый блок - те же вопросы что и у левого блока
Код:
В modules.php прописала:
function modChrome_right($module, &$params, &$attribs)
{ if (!empty ($module->content)) : ?>
<div class="right<?php echo $params->get('moduleclass_sfx'); ?>">
<?php if ($module->showtitle != 0) : ?>
<h3><?php echo $module->title; ?></h3>
<?php endif; ?>
<?php echo $module->content; ?>
</div>
<?php endif; }
В index.php:
<?php if($this->countModules('right')) : ?>
<div id="sidebarright">
<div id="right">
</div>
<jdoc:include type="modules" name="right" style="right" />
</div>
<?php endif; ?>

#sidebarright {float:right; width:20%;}
#right - это правый красный блок
Пожалуйста, наведите на путь истинный.
Я точно путаюсь в этих модулях, позиция и суффиксах.
Записан
Martin Lowrence
Новичок
*

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

Сообщений: 4



« Ответ #166 : 27.10.2010, 16:20:56 »

Вопросик! КАК изменить фон всего шаблона! ? к примеру сделать его полностью красным в каких файлах это редактируется? !
Записан
boonya
Захожу иногда
**

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

Сообщений: 11


« Ответ #167 : 27.10.2010, 16:36:10 »

Учи основы CSS. Это либо в index.php либо в основном .css файле править надо
Записан
maestra
Осваиваюсь на форуме
***

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

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



« Ответ #168 : 04.11.2010, 18:10:51 »

Привет всем.
Вот такая проблемка. Я хочу выводить позицию только в том случае, если в ней есть что-то опубликованное.
Позиция выводится так <jdoc:include type="modules" name="right" style="raw" /> (ну вы знаете Azn)
В сайте соответственно есть несколько модулей в этой позиции, которые привязаны к некоторым пунктам меню. Однако есть места, где эта позиция должна отсутствовать.
Как это можно сделать?
Записан
Asphyxis
Захожу иногда
**

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

Сообщений: 23


« Ответ #169 : 30.11.2010, 19:39:37 »

..
« Последнее редактирование: 30.11.2010, 21:16:40 от Asphyxis » Записан
z-7mark
Осваиваюсь на форуме
***

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

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


Верстка для Joomla


« Ответ #170 : 07.12.2010, 11:13:39 »

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


Вывод позиции только если в ней что то опубликовано:

<?php if ($this->countModules( 'right' )) : ?>
<jdoc:include type="modules" name="right" style="raw" />
<?php endif; ?>

Найдено было на этом форуме:)
Записан
SmokerMan
Профи
********

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

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



« Ответ #171 : 12.12.2010, 05:43:06 »

Вывод позиции только если в ней что то опубликовано:

<?php if ($this->countModules( 'right' )) : ?>
<jdoc:include type="modules" name="right" style="raw" />
<?php endif; ?>

Найдено было на этом форуме:)
найдено может быть где угодно, только это никак не отвечает требованиям. Такое условие никак не определят содержимое модуля.
maestra
самое оптимальное прописать в modules.php шаблона соответствующий стиль (style="raw") зависящий от содержимого модуля.
Записан
caitleen
Осваиваюсь на форуме
***

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

Пол: Женский
Сообщений: 114


« Ответ #172 : 15.12.2010, 11:22:08 »

если что на мой вопрос выше не отвечайте, я давно все исправила, забыла что тут написала даже. так что не обращайте внимания
Записан
z-7mark
Осваиваюсь на форуме
***

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

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


Верстка для Joomla


« Ответ #173 : 16.12.2010, 00:13:59 »

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

Вывод позиции только если в ней что то опубликовано:

<?php if ($this->countModules( 'right' )) : ?>
<jdoc:include type="modules" name="right" style="raw" />
<?php endif; ?>


только это никак не отвечает требованиям. Такое условие никак не определят содержимое модуля.

SmokerMan, разве мой вариант не удовлетворяет требованию отслеживать позицию только если в ней что то опубликовано? Речь то идет именно об отсутствии позиции в нужных местах.
Записан
SmokerMan
Профи
********

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

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



« Ответ #174 : 18.12.2010, 05:40:45 »

SmokerMan, разве мой вариант не удовлетворяет требованию отслеживать позицию только если в ней что то опубликовано? Речь то идет именно об отсутствии позиции в нужных местах.
удовлетворяет. Но не удовлетворяет содержимого модуля. Он может чего-то там содержать или нет. Задача заключается если именно в "модуле" пусто, а данный метод не удовлетворяет поставленной задаче.
Записан
Artyomii
Завсегдатай
*****

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

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



« Ответ #175 : 18.12.2010, 06:02:35 »

удовлетворяет. Но не удовлетворяет содержимого модуля. Он может чего-то там содержать или нет. Задача заключается если именно в "модуле" пусто, а данный метод не удовлетворяет поставленной задаче.
ты бредишь! данный стиль обрамления существует
Записан
Neznajka
Осваиваюсь на форуме
***

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

Сообщений: 27


« Ответ #176 : 21.12.2010, 01:53:26 »

Простите чайника за, наверное, глупый вопрос, но очень хочу разобраться.
Никак не могу понять смысл имён позиций в шаблоне. По логике вещей, мало наименовать позицию, нужно ещё где-то (где?) описать её фактические координаты в пикселах (или относительные). Правильно? Так вот, я почитал методику составления Joomla'шных шаблонов, потом для примера скачал и исследовал несколько из них - ну нигде не нашёл определения фактического места положения позиции, названной, например, user1 или breadcrumb или top2... А тогда откуда браузер узнаёт, в каком именно месте WEB-страницы следует вывести тот или иной модуль, приписанный к этим позициям? Или, если браузер настолько умный, что всё сам знает, тогда зачем столь тщательно декларировать эти позиции в файле templateDetails.xml ?
Прочитал вот здесь: http://joomlaportal.ru/content/view/409/53/ что "...это всего лишь имена позиций, сами позиции для модулей Вы должны задать в своем шаблоне". Где именно и каким именно образом задать? Или это можно сделать лишь в визуальном редакторе?
Не пинайте ногами за, может быть, глупый вопрос - просто уже совсем запутался в этой хаотической терминологии... Sad
Записан
Очередной вебмастер
Давно я тут
****

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

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



« Ответ #177 : 21.12.2010, 03:14:58 »

Простите чайника за, наверное, глупый вопрос, но очень хочу разобраться.
Никак не могу понять смысл имён позиций в шаблоне. По логике вещей, мало наименовать позицию, нужно ещё где-то (где?) описать её фактические координаты в пикселах (или относительные). Правильно? Так вот, я почитал методику составления Joomla'шных шаблонов, потом для примера скачал и исследовал несколько из них - ну нигде не нашёл определения фактического места положения позиции, названной, например, user1 или breadcrumb или top2... А тогда откуда браузер узнаёт, в каком именно месте WEB-страницы следует вывести тот или иной модуль, приписанный к этим позициям? Или, если браузер настолько умный, что всё сам знает, тогда зачем столь тщательно декларировать эти позиции в файле templateDetails.xml ?
Прочитал вот здесь: http://joomlaportal.ru/content/view/409/53/ что "...это всего лишь имена позиций, сами позиции для модулей Вы должны задать в своем шаблоне". Где именно и каким именно образом задать? Или это можно сделать лишь в визуальном редакторе?
Не пинайте ногами за, может быть, глупый вопрос - просто уже совсем запутался в этой хаотической терминологии... Sad
Вот для того чтобы размещать модули в нужном месте, умные дядьки и придумали HTML и CSS.
Записан
z-7mark
Осваиваюсь на форуме
***

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

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


Верстка для Joomla


« Ответ #178 : 21.12.2010, 15:45:08 »

По логике вещей, мало наименовать позицию, нужно ещё где-то (где?) описать её фактические координаты в пикселах (или относительные). Правильно?

Правильно. Имя Позиции в шаблоне задается для того чтобы вы могли из админ-панели регулировать вывод нужных модулей в нужные позиции.

Сами они должны быть прописаны в файле index.php шаблона, т.е. там вы говорите браузеру чтобы он выводил модули именно из этой позиции. Например Левое меню - в позиции left (так назначено вами в админке), а верхнее меню - в позиции top.

Само расположение задается css-стилями. Обычно, при выводе той или иной позиции она выводиться в блоке (div), если ваш шаблон построен на div'ах (бывают варианты, хоть уже и намного реже, что весь шаблон построен на табличной верстке - table)

Итого в index.php такой кусочек кода после <body> будет выводить позицию left в блоке div с присвоенным CSS идентификатором left-block:

<div id="left-block">
<jdoc:include type="modules" name="left" />
</div>

А непосредственно настройку положения этого модуля можно сделать корректируя стили CSS для блока div#left-block в файле template.css вашего шаблона (файл со стилями может иметь другое название)

А вообще - изучайте основы HTML и CSS - вникайте, если вам это нужно и/или интересно.

Удачи
Записан
Neznajka
Осваиваюсь на форуме
***

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

Сообщений: 27


« Ответ #179 : 22.12.2010, 22:09:40 »

To z-7mark:
Спасибо за доходчивое и внятное объяснение. Хоть механизм назначения фактических позиций модулей и кажется слишком усложнённым (по сравнению, например, с аналогичным процессом в проектировании интерактивных форм, допустим, в Visual Foxpro) - возможно, в сайтостроении имеются весьма веские причины для такого усложнения, которые мне пока неизвестны в силу моей неопытности. Буду постигать это всё дальше. Ещё раз спасибо.
Записан
sidorch
Осваиваюсь на форуме
***

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

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


Gremlin


« Ответ #180 : 27.12.2010, 11:21:20 »

Добрый день всем.
Уважаемые, подскажите вариант решения задачи.
Есть шаблон charity мне нравится, и я уже больше года его использую.
Задача: Как правильно сделать лого кликабельным с переходом на главную.
Все мои попытки пока не увенчались успехом. то шаблон рвется, то навигация съезжает...
Буду благодарен за помощь.
Спасибо.
Записан
Страниц: 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