Очень нередко бывает так, что не хватает позиций для модулей, уже прописанных в том или ином шаблоне. В этом случае поступаем следующим образом -
1. В файле /templates/"ваш шаблон"/templateDetails.xml прописываем новую позицию (как обзовете - неважно):
<positions>
<position>TestPos</position>
<position>left</position>
<position>right</position>
<position>top</position>
<position>user1</position>
<position>user2</position>
<position>user3</position>
<position>user4</position>
<position>debug</position>
<position>syndicate</position>
<position>"новая позиция</position>
</positions>
2. Редактируем файл /templates/"Ваш шаблон"/index.php следующим образом; вставляем строчку
<jdoc:include type="modules" name="новая позиция" />
Куда именно? что же, поэкспериментируйте... ничего страшного не случится; всегда эту строчку сумеете убрать. Совет: попробуйте воткнуть ее поблизости от той, уже имеющейся позиции, которая наиболее близко находится к необходимой вам.
Небольшой пример
Предположими, нам хотелось бы вставить красивый слайдер в верхнюю часть сайта; но не на всю ширину экрана, а примерно вот так -
a) Редактируем
index.php используемого шаблона - вставляем новую позицию модуля
right_logo. В результате получаем следующее (показана верхняя часть файла):
<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
JPlugin::loadLanguage( 'tpl_SG1' );
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" >
<head>
<jdoc:include type="head" />
<link rel="stylesheet" href="templates/system/css/system.css" type="text/css" />
<link rel="stylesheet" href="templates/<?php echo $this->template ?>/css/template.css" type="text/css" />
<!--[if lte IE 6]>
<link rel="stylesheet" href="templates/<?php echo $this->template ?>/css/ie6.css" type="text/css" />
<![endif]-->
</head>
<body id="page_bg">
<div id="wrapper">
<div id="holder">
<div id="header">
<div id="search"><jdoc:include type="modules" name="user4" /></div>
<div class="logo">
<table cellspacing="0" cellpadding="0">
<tr>
<td>
<h1><a href="index.php"><?php echo $mainframe->getCfg('sitename') ;?></a></h1>
</td>
</tr>
</table>
</div>
<div id="right_logo"><jdoc:include type="modules" name="right_logo" /></div>
<div id="pillmenu"><jdoc:include type="modules" name="user3" /></div>
<div class="cpathway"><jdoc:include type="module" name="breadcrumbs" /></div>
<div class="clr"></div>
</div>
b) Редактируем
template.css используемого шаблона; в самом его конце добавляем следующий код:
#right_logo {
position: absolute;
height: 252px;
width: 531px;
overflow: hidden;
left: 440px;
top: 40px;
}
с) И последнее - не забываем прописать вновь созданную позицию модуля
right_logo в
templateDetails.xml.
Новая позиция создана, и теперь мы легко вставляем необходимый нам модуль... после чего имеем полное право
любоваться делом рук своих.
Вышеописанную процедуру возможно несколько упростить, если воспользоваться
Modules Anywhere (легко найдете в сети). Позволяет вставить любой модуль практически в любое место вашего сайта; после установки в редакторе материалов появляется соответствующая кнопка. Очень полезный инструмент; при помощи Modules Anywhere - без малейших проблем и не копаясь в файлах шаблона - сможете вставить любой модуль даже в текст.
Более подробно о
Modules Anywhere.