RSS   Twitter   Copiny   Copiny
Нашел ошибку? 

Выдели фрагмент текста с ошибкой или неточностью и нажми Ctrl+Enter!

Создание своего стиля сhrome для модулей

Chrome - это конечная обработка html-кода модуля перед его вставкой в главный шаблон сайта. Существуют несколько предопределенных Chrome-стилей (table, horz, xhtml, rounded, outline), но не всегда то что есть подходит для решения текущих задач.

Чтобы определить собственный стиль отображения в шаблоне, нужно создать файл "modules.php" в директории "html". То есть для шаблона с именем "my_template" файл должен располагаться тут - "templates/my_template/html/modules.php".

В этом файле вы должны определить функцию с названием "modChrome_STYLE" где STYLE это имя вашего стиля. Эта функция будет принимать три аргумента - $module, &$params и &$attribs как показано ниже:

function modChrome_STYLE ( $module, &$params, &$attribs )
{
     /* обработка и вывод html-кода модуля */ 
}

В этой функции вы можете использовать любой PHP-код, а так же вам будут доступны все параметры самого модуля, его свойства и любые данные сохраненные в базе данных Joomla. В основном бывают нужны только следующее

  • $module->content - контент самого модуля, непосредственный html-код.
  • $module->title - название модуля, указанное в панели управления в менеджере модулей.
  • $module->showtitle - флаг, показывать название или нет (true или false).

Функция modChrome_STYLE - это обыкновенная php-функция, здесь можете использовать абсолютно любой php-код. Ниже приведен пример, если в настройках модуля включено отображение заголовка, то выведется текст заголовка перед контентом модуля.

function modChrome_STYLE ( $module, &$params, &$attribs )
{
    if ($module->showtitle) {
        echo '<h2>' .$module->title .'</h2>'; 
    }
    echo $module->content;
}

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

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

Так же можно в код позиции добавлять свои атрибуты, которые используются в Chrome. Для этого в тег позиции <jdoc:include /> добавьте собственные атрибуты. Имена дополнительных атрибутов можно указывать произвольные, они все будут передаваться в ассоциативный массив $attribs.

Практический пример Chrome-функции:

function modChrome_custom( $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 >';

    if ($module->showtitle) 
    {
        echo '<h' .$headerLevel .'>' .$module->title .'</h' .$headerLevel .'>';
    }
 
    echo '<div class='.$background.'>';
    echo $module->content;
    echo '</div>';
 
    echo '</div>';
}

Практические примеры использования функции "modChrome_custom"

<!-- вызов в шаблоне -->
<jdoc:include type="modules" name="user1" style="custom" />

<!-- HTML-код на выходе -->
<div>
    <h3><!-- Module title --></h3>
    <div class="blue">
        <!-- Module content -->
    </div>
</div>
<!-- вызов в шаблоне -->
<jdoc:include type="modules" name="user1" style="custom" background="green" />

<!-- HTML-код на выходе -->
<div>
    <h3><!-- Module title --></h3>
    <div class="green">
        <!-- Module content -->
    </div>
</div>
<!-- вызов  в шаблоне -->
<jdoc:include type="modules" name="user1" style="custom" headerLevel="1" background="yellow" />

<!-- HTML-код на выходе -->
<div>
    <h1><!-- Module title --></h1>
    <div class="yellow">
        <!-- Module content -->
    </div>
</div>

Смотрите также:
Комментарии (17) Добавить комментарий
  • Anatol
    Anatol
    16 Февраля 2013, 16:41
     ↑  +3  ↓     ответ

    Спасибо за хороший материал.

  • Ирина
    Ирина
    12 Августа 2013, 20:14
     ↑  0  ↓     ответ

    Спасибо, все подробно написано

  • http://tinyurl.com/quest-bars-cheap-44820
    http://tinyurl.com/quest-bars-cheap-44820
    24 Ноября 2019, 06:38
     ↑  0  ↓     ответ

    Hey there! Do you know if they make any plugins to protect against hackers?

    I'm kinda paranoid about losing everything I've

    worked hard on. Any tips?

  • tinyurl.com
    tinyurl.com
    24 Ноября 2019, 23:22
     ↑  0  ↓     ответ

    Hi there! I understand this is sort of off-topic but

    I needed to ask. Does operating a well-established website such as yours

    require a lot of work? I'm brand new to operating

    a blog however I do write in my diary on a daily basis. I'd like to

    start a blog so I can share my experience and views online.

    Please let me know if you have any kind of ideas or tips for

    brand new aspiring blog owners. Appreciate it!

  • coconut oil our
    coconut oil our
    25 Ноября 2019, 20:30
     ↑  0  ↓     ответ

    It's very straightforward to find out any matter on web

    as compared to books, as I found this piece of writing at this web site.

  • ps4 games
    ps4 games
    28 Ноября 2019, 19:27
     ↑  0  ↓     ответ

    Appreciate this post. Will try it out.

  • ps4 games
    ps4 games
    29 Ноября 2019, 10:33
     ↑  0  ↓     ответ

    Does your blog have a contact page? I'm having a tough time locating it but, I'd like to send you an e-mail.

    I've got some creative ideas for your blog you might be interested in hearing.

    Either way, great website and I look forward to seeing it develop over time.

  • ps4 games
    ps4 games
    30 Ноября 2019, 17:07
     ↑  0  ↓     ответ

    I'm really enjoying the design and layout of your blog. It's a very easy on the eyes which makes it much more pleasant for me to come

    here and visit more often. Did you hire out a designer to create your theme?

    Fantastic work!

  • quest bars cheap coupon twitter
    quest bars cheap coupon twitter
    03 Декабря 2019, 08:30
     ↑  0  ↓     ответ

    Hi there, just became alert to your blog through Google, and found

    that it is truly informative. I am gonna watch out for brussels.

    I'll appreciate if you continue this in future.

    A lot of people will be benefited from your writing.

    Cheers!

  • quest bars cheap coupon twitter
    quest bars cheap coupon twitter
    04 Декабря 2019, 03:38
     ↑  0  ↓     ответ

    An outstanding share! I have just forwarded this onto a colleague who has been conducting a little research on this.

    And he in fact ordered me lunch because I found it

    for him... lol. So let me reword this....

    Thanks for the meal!! But yeah, thanks for spending time

    to discuss this topic here on your site.

  • quest bars cheap
    quest bars cheap
    04 Декабря 2019, 10:26
     ↑  0  ↓     ответ

    What's up mates, fastidious piece of writing and good arguments commented at

    this place, I am really enjoying by these.

  • ps4 games
    ps4 games
    05 Декабря 2019, 03:53
     ↑  0  ↓     ответ

    Do you mind if I quote a couple of your articles as long as I provide credit and sources back

    to your webpage? My blog site is in the very same area of interest as yours and my visitors would truly benefit from some of the information you present here.

    Please let me know if this okay with you. Appreciate it!

  • ps4 games
    ps4 games
    06 Декабря 2019, 03:20
     ↑  0  ↓     ответ

    Hello to all, how is everything, I think every one is getting more from this web site,

    and your views are fastidious designed for new people.

  • ps4 games
    ps4 games
    06 Декабря 2019, 10:40
     ↑  0  ↓     ответ

    Excellent beat ! I would like to apprentice at the same time as you amend your site, how can i subscribe for

    a weblog web site? The account aided me a appropriate deal.

    I had been tiny bit familiar of this your broadcast offered bright clear idea

  • ps4 games
    ps4 games
    06 Декабря 2019, 16:35
     ↑  0  ↓     ответ

    Everything is very open with a really clear clarification of the issues.

    It was truly informative. Your site is extremely helpful.

    Thank you for sharing!

  • ps4 games
    ps4 games
    07 Декабря 2019, 13:04
     ↑  0  ↓     ответ

    Greetings! Very helpful advice in this particular article!

    It's the little changes that make the most important changes.

    Thanks for sharing!

  • quest bars cheap
    quest bars cheap
    07 Декабря 2019, 21:01
     ↑  0  ↓     ответ

    Hello, just wanted to mention, I loved this blog post.

    It was inspiring. Keep on posting!

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




* обязательно для заполнения

1 введенный почтовый адрес используется только для обратной связи при ответах в комментариях и сервиса gravatar.com
.