1. Доступ к загрузкам имеют пользователи со статусом КЛИЕНТЫ (заказчики сайта)
    Для обновления одного шаблона необходимо оплатить услугу Техническая поддержка (500 руб. - Яндекс-деньги или банковский перевод) модуль справа-внизу, сообщить {admin_forum} контактный e-mail
  2. У наших подписчиков ВКонтакте появилась возможность скачать первую версию любого шаблона для ознакомления абсолютно бесплатно. Вступаем и заказываем нужный шаблон на странице группы - https://vk.com/yootheme
    Скрыть объявление

Различные условия отображения в шаблонах материалов Zoo и JBZoo

Тема в разделе "FAQ по JBZoo", создана пользователем admin_forum, 4 ноя 2013.

  1. admin_forum
    Оффлайн

    admin_forum Администратор Команда форума

    Перед прочтением следующей статьи, настоятельно рекомендуем прочитать о шаблонах материалов JBZoo. Это очень поможет вам при кастомизации нашего приложения.

    Часто возникают вопросы по добавлению каких-либо условий при выводе элементов каталога.

    Здесь будут рассмотрены примеры условий для ПОЗИЦИИ элементов в шаблонах (например full или teaser). Если в позиции несколько элементов, а условие нужно для одного, его нужно перенести в отдельную позицию или создать для него новую, подробней здесь.

    Рассмотрим сначала несколько простых примеров:

    1) Условия для авторизованных/анонимных пользователей:

    Показ только для авторизованных:

    Код:
    <?php 
         $user = JFactory::getUser();
         if (!$user->guest) {
              <КОД>
         } 
     ?>
    
    Показ только для не авторизованных:

    Код:
    <?php 
        $user = JFactory::getUser();
        if ($user->guest) {
            <КОД>
        }
    ?>
    
    2) Условия для определенной группы пользователей:
    Группа пользователя определяется по ID, которой можно посмотреть здесь:

    [​IMG]

    Показывать только для группы Author:

    Код:
    <?php
        $user = JFactory::getUser();
        if (in_array('3', $user->groups) {
            <КОД>
        }
    ?>
    
    Показывать только для Super Users:

    Код:
    <?php
        $user = JFactory::getUser();
        if ($user->superadmin) {
            <КОД>
        }
    ?>
    
    3) Условие при просмотре teaser из категории, а не титульной страницы:

    Это условие можно применять, если вы хотите чтобы вид шаблона teaser отличался на страницах категорий и на главной странице

    Код:
    <?php
    //Определяем переменную вида категории
    (JRequest::getVar('view') == 'category') ? $category = true : $category = false;
    
    //Показ только на главной
    if(!$category){
        <КОД>
    }
    
    //Показ на всех страницах категорий, кроме главной
    if($category){
        <КОД>
    }
    ?>
    4) Условие при просмотре teaser из определенных категорий:

    Это условие можно применить, если вы хотите чтобы вид шаблона teaser отличался только в определенных категориях

    *Внимание: если категория привязана к какому-либо пункту меню Joomla, это условие работать не будет, используйте условие из пункта 5)

    Код:
    <?php
    //Определяем переменную с id категории
    $category_id = JRequest::getInt('category_id');
    
    //Показ на странице определенной категории с id=2
    if($category_id == '2'){
        <КОД>
    }
    
    //Показ на страницах определенных категорий с id = 5, 6, 7, 8
    $categories = array(5,6,7,8);
    if(in_array($category_id, $categories)){
        <КОД>
    }
    ?>
    5) Условие для определенного пункта меню
    id пункта меню можно взять либо из URL с выключенным SEF (Itemid=), либо в менеджере меню:

    [​IMG]

    6) Условие для определенного диапазона дат (например с 21 марта по 1 апреля 2013):

    Код:
    <?php
        //Определяем переменную с начальной датой
        $timestart = mktime(0,0,0,3,21,2013);
    
        //Определяем переменную с конечной датой
        $timestop = mktime(0,0,0,4,1,2013);
    
        //Определяем переменную с текущей датой
        $time = time();
    
        //Показ только в этом диапазоне дат 21.03.2013 - 01.04.2013
        if( $timestart < $time && $time < $timestop ){
            <КОД>
        }
    ?>
    
    7)Как ограничить вывод по словам (или символам).

    Ограничение по словам на 30 слов:

    Код:
    <?php
        $desc = JString::trim(strip_tags($this->renderPosition('<НАЗВАНИЕ_ПОЗИЦИИ>')));
    
        $descArr = explode(' ', $desc);
        $descArr_tmp = array();
    
        foreach ($descArr as $word) {
            $word = JString::trim($word);
            if ($word) {
                $descArr_tmp[] = $word;
            }
        }
    
        if (count($descArr_tmp) > 30) {
            $descArr_tmp = array_slice($descArr_tmp, 0, 30);
            echo implode(' ', $descArr_tmp) . ' ...';
        } else {
            echo implode(' ', $descArr_tmp);
        }
    ?>
    Ограничение по символам на 300 символов:

    Код:
    <?php
        echo JString::substr(strip_tags($this->renderPosition('<НАЗВАНИЕ_ПОЗИЦИИ>')),0,300);
    ?>
     

Поделиться этой страницей