Вход Регистрация
Файл: system/controllers/groups/hooks/content_before_childs.php
Строк: 71
<?php

class onGroupsContentBeforeChilds extends cmsAction {

    public function 
run($data){

        list(
$ctype$childs$item) = $data;

        foreach(
$childs['relations'] as $relation){

            
// здесь нам нужны только связи с группами
            
if($relation['target_controller'] != $this->name){
                continue;
            }

            
$filter =   "r.parent_ctype_id = '{$ctype['id']}' AND ".
                        
"r.parent_item_id = '{$item['id']}' AND ".
                        
'r.child_ctype_id IS NULL AND '.
                        
"r.child_item_id = i.id AND r.target_controller = '{$this->name}'";

            
$this->model->joinInner('content_relations_bind''r'$filter);

            
$count $this->model->getGroupsCount();

            
$is_hide_empty $relation['options']['is_hide_empty'];

            if ((
$count || !$is_hide_empty) && $relation['layout'] == 'tab'){

                
$childs['tabs'][$relation['child_ctype_name']] = array(
                    
'title'       => $relation['title'],
                    
'url'         => href_to($ctype['name'], $item['slug'].'/view-'.$relation['child_ctype_name']),
                    
'counter'     => $count,
                    
'relation_id' => $relation['id'],
                    
'ordering'    => $relation['ordering']
                );

            }

            if (!
$this->cms_core->request->has('child_ctype_name') && ($count || !$is_hide_empty) && $relation['layout'] == 'list'){

                if (!empty(
$relation['options']['limit'])){
                    
$this->setOption('limit'$relation['options']['limit']);
                }

                if (!empty(
$relation['options']['is_hide_filter'])){
                    
$this->setOption('is_filter'false);
                }

                
$childs['lists'][] = array(
                    
'title'       => empty($relation['options']['is_hide_title']) ? $relation['title'] : false,
                    
'ctype_name'  => $relation['child_ctype_name'],
                    
'html'        => $this->renderGroupsList(href_to($ctype['name'], $item['slug'] . '.html')),
                    
'relation_id' => $relation['id'],
                    
'ordering'    => $relation['ordering']
                );

            }

            
$this->model->resetFilters();

        }

        return array(
$ctype$childs$item);

    }

}
Онлайн: 0
Реклама