Все рубрики публикации

Все рубрики публикации

Расскажу как вывести наименование всех рубрик, к которым принадлежит публикация.

В своём [Дополнении для объявлений #1], в виджете и в списке объявлений я уже выводил все рубрики публикации.


В списке контента

В нужном файле шаблона: \templates\default\content\default_list

Находим строку:

<?php if ($items){ ?>


Заменим на:

<?php if ($items){
               // Рубрики
        $is_show_allcats = 1;
        if ($is_show_allcats) {
        function getItemAllCats($ctype_name, $item_id){
        $model = cmsCore::getModel('content');
        $bind_cats = $model->getContentItemCategories($ctype_name,$item_id);
        foreach ($bind_cats as $cat_id){
            $cat = $model->getCategory($ctype_name, $cat_id);
            $cats[] = $cat;
        }
        return $cats;
        }
        }        
    ?>
    <style>
    .item_cats{
            display:inline-block;background:url("/templates/default/images/icons/folder-small.png") left center no-repeat;padding-left:20px;margin-left:10px
    }
    .item_cats a{
        display:inline;block;font-size:12px;padding:0 2px;color:#888;line-height:24px
    }
    </style>


После строк:

<?php if (!$item['is_approved']){ ?>
                            <div class="bar_item bi_not_approved">
                                <?php echo LANG_CONTENT_NOT_APPROVED; ?>
                            </div>
                        <?php } ?>


Добавим:

<?php 
/////Рубрики
if($is_show_allcats){ 
$item['cats'] = getItemAllCats($ctype['name'], $item['id']);
?>  
<?php if(is_array($item['cats']) && $item['cats'][0]['parent_id']==!0){ ?>   
<div class="item_cats">
<?php foreach($item['cats'] as $cat) { if($cat['parent_id']==!0){
$zap = ($cat === end($item['cats'])) ? "" : ", "; 
?>
<a href="<?php echo href_to($ctype['name'], $cat['slug']); ?>"><?php html($cat['title']); ?><?php echo $zap; ?></a>
<?php }} ?>
          
</div>
<?php 
}
//////////
} ?>


В итоге

13:42
14:33
Подскажите в чем проблема, сделал тоже самое для виджета список контента, вылазит ошибка Fatal error: Cannot redeclare getItemAllCats()
Не добавили функцию getItemAllCats или или происходит повторное определение функции. Такое может быть если вы добавляете код в шаблон виджета и выводите его несколько раз на одной странице. Для виджетов нужно перенести функцию в файл виджета widget.php, а в шаблоне её вызывать как $widget->getItemAllCats
11:09
файла widget.php нет в шаблоне instant 2 линейки, или функцию добавлять в файл движка? Может есть возможность написать манул, я думаю это актуально для многих будет?

НазадПоделиться на сайт

Код для вставки на сайт:
Пример отображения:

X