Рекомендую!

Видеокурс: "Шаблон Joomla 2.5 от А до Я"

diskboxsmall

Научитесь создавать свои собственные уникальные и профессиональные шаблоны для Joomla 2.5!

Добро пожаловать в школу Джумла!

Вы находитесь в центре обучения работы с Джумлой, одной из наиболее мощных, простых и бесплатных систем управления содержимым сайта на планете. Не важно, новичок Вы в использовании этой CMS или профессионал, Школа Джумлы откроет Вам много новых, интересных уроков и советов в видео и текстовом формате по работе с этой системой управления сайтом.  Подробнее...

ЗАГРУЗИТЬ СТАБИЛЬНУЮ ВЕРСИЮ ДЖУМЛА

Шпаргалка: Синтаксис вызова модулей - часть 2

В Joomla 1.5 добавлена возможность создавать свои форматы вывода модулей. Для этого нужно создать файл modules.php в директории "html" шаблона. Вот полный путь:

PATH_TO_JOOMLA/templates/TEMPLATE_NAME/html/modules.php

Допустим, мы хотим создать формат вывода модуля mystyle. Тогда в файле  modules.php нужно записать функцию modChrome, окончание которой должно совпадать с именем нашего формата вывода модуля. Эта функция будет принимать три аргумента: $module, $params, $attribs

<?php
     function modChrome_mystyle( $module, $params, $attribs )
     {
         /* Тело функции */
     }
?>

В рамках этой функции вы можете использовать любое из доступных свойств модуля, но наиболее распространенные из них это $module->content, $module->showtitle и $module->title

$module->title - выводит заголовок модуля
$module->content - выводит тело модуля
$module->showtitle - дает информацию о том, нужно ли выводить заголовок модуля или нет

Вот так, например, можно проверять, включен ли показ заголовка в модуле, и если да то функция включет его в тег <h2>

<?php
  if ($module->showtitle)
  {
    echo '<h2>' .$module->title .'</h2>';
  }
?>

Доступ к параметрам модуля осуществляется с помощью аргумента $params. Например, суфикс класса модуля хранится в переменной $params->get( 'moduleclass_sfx' ); . Вот так можно использовать этот параметр для вывода модуля в теге <div> с классом, который записан в параметрах конкретного модуля:

<div class="<?php echo $params->get( 'moduleclass_sfx' ); ?>">
  <!-- div contents -->
</div>

Кроме того, можно задавать атрибуты непосредственно в файле index.php шаблона в теге вызова модулей <jdoc:include />. Эти дополнительные атрибуты хранятся в массиве $attribs

Рассмотрим пример собственной функции вывода модулей  modChrome_mystyle:

<?php
  function modChrome_mystyle( $module, $params, $attribs ) {
    if (isset( $attribs['headerLevel'] ))
    {
      $headerLevel = $attribs['headerLevel'];
    } else {
      $headerLevel = 3;
    }
 
    if (isset( $attribs['background'] ))
    {
      $background = $attribs['background'];
    } else {
      $background = 'blue';
    }
 
    echo '<div class="module' .$params->get( 'moduleclass_sfx' ) .'" >';
 
    if ($module->showtitle)
    {
      echo '<h' .$headerLevel .'>' .$module->title .'</h' .$headerLevel .'>';
    }
 
    echo '<div class="' .$background .'">';
    echo $module->content;
    echo '</div>';
 
    echo '</div>';
  }
?>

В данном случае мы имеем возможность в теге вызова модулей <jdoc:include /> указать уровень заголовка headerLevel и цвет фона background.  Если параметры не обявлены, то по умолчанию их значения будут 3 и blue.Ниже приведены примеры использования вызова данной функции:

 <jdoc:include />обявления Результат
 <jdoc:include type="modules" name="left" style="mystyle" /><div class="module">
<
h3><!-- Название модуля --></h3>
<div
class = "blue">
<! - Содержание модуля ->
</div>
</div>
<jdoc:include type="modules" name="left" style="mystyle" background="green"/><div class="module">
<
h3><!-- Название модуля --></h3>
<div
class = "green">
<! - Содержание модуля ->
</div>
</div>
<jdoc:include type="modules" name="left" style="mystyle" background="red" headerLevel="1"/>
<div class="module">
<
h1><!-- Название модуля --></h3>
<div
class = "red">
<! - Содержание модуля ->
</div>
</div>


Добавить комментарий


Защитный код
Обновить

Рекомендую!

Новые комментарии

  • This is my first time ggo too see at here and i am really pleassant to read all at one place. Here ... Подробнее...  
  • A fascinating discussion is worth comment. I do think that you should write more on this issue, it ... Подробнее...  
  • You know what Ⲣastor Johansson told us on Sunday iis that God really likeѕ worshіp. Daddy added. Подробнее...  
  • Frеelancing can еvеn lead to an enormous “plus” concerning your incߋme. As a substitute off having ... Подробнее...  
  • auto insurance disability top auto insurance companies in ny ... Подробнее...