Просмотры
Материал из База знаний Joomla.
Здесь вы найдете то, что сделает ваш шаблон Joomla! по-настоящему динамичным.
Для начала напомню, что шаблон Joomla написан на PHP - значит доступны все функции этого замечательного языка программирования.
При создании шаблонов Joomla можно использовать любые параметры (и их проверки). Чтобы сориентироваться в них, достаточно отключить SEF и вы увидите пары ПАРАМЕТР=ЗНАЧЕНИЕ, используя которые можно легко создать динамичный шаблон.
Содержание |
Показываем какой-то текст, только для статей
Com_content - название компонента контента, view - команда просмотра статьи (или статичного содержимого).
if ($option=='com_content' && $task=='view') { echo "Пользователь смотрит статью с идентификатором, равным $id"; }
Определяем Главную страницу
Когда в шаблоне надо часто использовать проверку на Главную страницу, то чтобы улучшить читабельность кода делаем так
$site_frontpage = (mosGetParam( $_REQUEST, 'option', '' ) == 'com_frontpage')?1:0;
или так
// Если $option равна com_frontpage, то $site_frontpage = 1, а иначе $site_frontpage = 0 $site_frontpage = ($option == 'com_frontpage')?1:0;
Затем в коде вставляем проверку
<?php if ($site_frontpage == 1) { ?> // Показываем html-код №1 <?php } else { ?> // Показываем html-код №2 <?php } ?>
Пояснение: Если запрошена Главная страница (компонент com_frontpage), то показываем код №1, иначе - код № 2
Скрываем правую колонку
Здесь правая колонка будет скрываться при условии, что в ней нет модулей или когда мы редактируем статьи на сайте.
$rightcol = ( mosCountModules( 'right' ) and ( empty( $_REQUEST['task'] ) || $_REQUEST['task'] != 'edit' ) )?1:0;
Пояснение: Если в позиции right есть модули И параметр task пуст или не равен edit, то переменная $rightcol будет равна 1, иначе - 0
Затем в шаблоне определяем, где у нас код правой колонки.
Например, было так
<td id="rightcol"> <?php mosLoadModules( 'right' ); ?> </td>
Модифицируем код так
<?php if ( $rightcol > 0 ) { ?> <td id="rightcol"> <?php mosLoadModules( 'right' ); ?> </td> <?php } ?>
Сейчас правая колонка будет скрываться в режиме редактирования и при отсутствии модулей.
По-простому, если нужно просто скрывать области шаблона (области с модулями), когда в них нет модулей, можно сделать так:
<?php if ( mosCountModules( 'right' )) { ?> <td id="rightcol"> <?php mosLoadModules( 'right' ); ?> </td> <?php } ?>
Сейчас правая колонка будет скрываться ТОЛЬКО при отсутствии в ней модулей. Если визуально модулей нет, а колонка не скрывается, то, возможно, модули есть, но они пусты (модуль работает, но на сайт ничего не выводит).
Сокрытие пунктов меню или области шаблона для зарегистрированных пользователей
К сожалению, здесь не всё так просто: надо либо править модуль меню, либо выносить скрываемые пункты в отдельный модуль (и даже в отдельную позицию модуля), а уже его скрывать.
Делается примерно так:
1. определяем позицию для модуля - в нужном месте шаблона вставляем код:
if (!$my->id && mosCountModules( 'user7' )) mosLoadModules( 'user7' );
2. Для модуля меню со скрываемыми пунктами указывается в параметрах позиция user7
Для области шаблона это выглядит так
<?php if (!$my->id) { ?> любой html-код, который надо скрыть <?php } ?>
Если наоборот надо отображать области, то !$my->id меняется на $my->id
Последнее изменение этой страницы: 11:28, 7 сентября 2008.



