Вебмастеру посвящается…

web-мастер - это тот, кто принимает решения…

Публикация

PHP вставки, которые можно использовать при создании шаблонов для Joomla 1.5.x

14 августа 2008
В рубриках: Joomla

Продолжая тему работы с Joomla, которая является профилирующей в моей деятельности, хочу предложить вам несколько полезных php-заготовок, для использоания при создании шаблонов.

Сразу хочу предупредить, что это не полный перечень основных переменных и вариантов их использования, а наиболее часто используемые мною “снипеты ” при создании динамических шаблонов для Joomla 1.5

В целом, Joomla 1.5 позволяет более гибко работать с системными переменными при создании шаблонов, нежели ее предшественница.

Кроме того, в новой версии мы можем создавать собственные шаблоны, как отдельных компонентов, так и модулей. То есть, работа с дизайном и версткой стала приятнее и легче, однако об этом в следующих постах. А сейчас по теме.

Наиболее часто используемые переменные

Вывод название папки шаблона,

$this->template

например, выражение:

<img src="templates/<?php echo $this->template; ?>/images/something.png">

Позволяет вставить нужную картинку в любое мест шаблона.

А вот два варианта автоматического вывода основной ссылки на ваш сайт

JURI::base()

Выводит url вашего сайта в виде http://www.yoursite.com

Вторая переменная возвращает относительный путь к корневой директории без http://yoursite.com

$this->baseurl

Вывод содержимого только на главной или только на внутренних страницах с привязкой к меню

В обеих случаях в начале, в основном коде шаблона, создаем функцию:

<?php
$menu = & JSite::getMenu();
?>

Ее можно и не создавать в основе, а создать прямо в месте применения. Но лучше вынести в заголовок. А потом только обращаться при необходимости.

Далее, если нужно показать контент только на главной странице, то используем конструкцию типа:

<?php
if ($menu->getActive() == $menu->getDefault()) {
        echo 'Здесь вставляем необходимое, можно и HTML код';
}
?>

А если нужно показать контент на всех страницах кроме главных, то можно использовать конструкцию типа:

<?php
if ($menu->getActive() != $menu->getDefault()) {
        echo 'Здесь вставляем необходимое, можно и HTML код';
}
?>

Вывод содержимого при различных запросах Joomla!

Переменная

JRequest::getVar('view')

Возвращает информации о странице, которая отображена в данный момент (кроме главной!). Ее использование полезно в случае, если вам необходимо определить некое действие в шаблоне при условии вывода того или иного типа контента.

Например:

<?php if(JRequest::getVar('view') == ('article') { ?>
[Вставте нужное]
<?php } else { ?>
[Вставте нужное]
<?php } ?>

Данный код выведет определенное содержимое, когда у нас выводится какая-либо статья, и скроет его в другом случае.

А если мы хотим вывести какое-либо содержимое при условии использования того или иного компонента Joomla!, нужно использовать эту же переменю но в другой конструкции:

Сначала определяем функцию с помощью указанной выше переменной, но с другим определением

<?php  $option = JRequest::getVar( 'option' );?>

А далее выводим в нужном месте шаблона условие, например:

<?php  if($option == 'com_weblinks') {?>
<jdoc:include type="modules" name="user2" style="raw"/>
<?php } ?>

Вывод разного содержимого в шаблоне для разных пользователей

Вот код основного условия:

<?php
$theuser = JFactory::getUser();
$usertype = $theuser->get('[Сюда ставим атрибут]')
if($usertype == '[Сюда ставим значение атрибута]') { ?>
[Сюда ставим, что угодно]
<?php } ?>

[Сюда ставим атрибут] - в данном случае используем следующее

id: ID пользователя
name: имя пользователя
aid: идентификатор уровня доступа ( 0 для всех, 1 для зарегистрированных, и 4 испециальный уровень доступа)
gid: идентификатор группы пользователя ( 19 автор, 20 редактор, 22 издатель, 23 менеджер, 24 администратор, и 25 суперадминистратор
guest: только для гостей (когда пользователь зарегистрирован, то переменная гостя равна 0)
usertype: тип пользователя (registered, author, editor, publisher, manager, administrator, and super administrator)

[Сюда ставим значение атрибута] - подразумевает соответствующее значение для определенного атрибута.

Для наглядности - вот простой пример:

<?php
$theuser = JFactory::getUser();
$usertype = $theuser->get('name')
if($usertype == 'Hiway') { ?>
Привет Hiway
<?php } ?>

Удачного Joomla-строительства :)

Кстати, интересно почитать - Блог программиста о партнерских программах

Оставить комментарий

XHTML: Вы можете использовать эти тэги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="">


Ссылки в комментариях будут свободны от nofollow.

Уважаемые гости!

Если вам нужна ссылка на ваш ресурс со страниц моего блога, то вы можете получить ее, либо в блогролле, либо в виде ссылки в обзоре вашего ресурса.

Что я хочу взамен? Такое же упоминание о моем блоге на страницах вашего ресурса.

Стучите: 367100773 – решим вопрос.

Кнопка для спаммеров!!!

Спамер, иди на хуй!