MaxHub
Служба Заботы MaxSite CMS

Какой нужен код для вывода только в определённых категориях?

Вопросы-ответы / 31 октября 2015

Подскажите, пожалуйста, как выводить содержимое только в определенной категории по id?

Нужен код типа такого?

<?php
if( is_type('category') )
{ 
    echo 'html';
}
?>
Комментариев: 5
  1. Условие можно сделать так:

    if( is_type('category') && mso_segment(2) == 'news' )
    { 
        echo 'html';
    }

    Тогда будет делаться вывод только в рубрике Новости (со слугом news). Это самый простой способ.

    Если нужно в нескольких рубриках, то чтобы сократить условие проверки можно написать так:

    if( is_type('category') && in_array( mso_segment(2), array('news', 'progs', 'linux') )  )
    { 
        echo 'html';
    }
  2. Спасибо!

  3. Можно подробней пожалуйста - Например я хочу отключить вывод инфо топ(дату публикации, счётчик, комменты) на статичной странице со слугом "lentochka"

    В фале infotop.php нужно задать условие. Как это будет выглядеть?

    echo 'html' что тут указать?

  4. В фале infotop.php нужно задать условие. Как это будет выглядеть?

    Если у тебя вся логика вывода только в общем info-top.php, то можно так написать:

    if( is_type('page') && !in_array( mso_segment(2), array('lentochka', 'progs', 'linux') )
    { 
        echo 'html'; # здесь вывод даты, счётчиков и т.п. информации
    }

    В этом случае будет выводится на страницах всех записей, кроме тех, где slug совпадает с одним из значений в массиве.

    Если для записей всё таки есть свой type_foreach файл info-top-page.php то проверку на тип можно опустить и останется только проверка на slug:

    if( !in_array( mso_segment(2), array('lentochka', 'progs', 'linux') )
    { 
        echo 'html'; # здесь вывод даты, счётчиков и т.п. информации
    }

    В массиве array('lentochka', 'progs', 'linux') вместо значений progs и linux можно подставить другие свои значения.

  5. echo 'html' что тут указать?

    Зависит от шаблона. Но для случая дефолтного шаблона сюда можно скопировать из shared файла \application\maxsite\shared\type\page\page.php фрагмент, который отвечает за вывод нужной информации. Например, вот это:

    $p->html(NR . '<header>');
      $p->line('[title]');
     
      $p->div_start('mso-info mso-info-top');
       $p->line('[date][edit][cat][tag][view_count]');
      $p->div_end('mso-info mso-info-top');
    $p->html('</header>');

    Просто посмотри то место в shared-файле page.php, где происходит переключение на type_foreach файлы и скопируй к себе код, который выполняется в случае отсутствия файла.

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

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

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

Авторизация MaxSiteAuth. Войти через loginza

(обязательно)