На время проведения реконструкции сайт переведён в режим "ТОЛЬКО ЧТЕНИЕ" (Read only). Приносим свои извинения!
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 файлы и скопируй к себе код, который выполняется в случае отсутствия файла.