public static function getRubsByParentId() { /* Выводятся только рубрики, если имеется parent */ $connection=Yii::app()->db; $sql = 'SELECT DISTINCT t.category, cat.id, cat.title, cat.url, cat.parent_id FROM article_category t LEFT OUTER JOIN category_article cat ON (cat.id=t.category) ORDER BY title'; $dependency = new CDbCacheDependency('SELECT MAX(updated_date) FROM article'); $command = $connection->cache(3600, $dependency)->createCommand($sql); $cats = $command->queryAll(); $rubs = array(); if($cats){ foreach ($cats as $key => $row) { $parent_id = (int)$row['parent_id']; $rubs[$parent_id][] = $row; } } $output = array(); if($rubs) { foreach($rubs as $key=>$value) { $cat = CategoryArticle::model()->findByPk($key); if($cat) $output[$key] = array('id'=>$key,'title'=>$cat->title,'url'=>$cat->url,'par'=>$cat->parent_id); else $output[$key] = array('id'=>$key,'title'=>'','url'=>'','par'=>0); $cnt = 0; for ($i=0;$i<sizeof($value);$i++) { if ($value[$i]['title']!=''){ $output[$key]['items'][] = array('id'=>$value[$i]['id'],'title'=>$value[$i]['title'],'url'=>$value[$i]['url']); } } } } $uns = array(); if($output){ foreach($output as $k=>$v){ if(!empty($v['par'])){ if(isset($output[$v['par']]['items'])){ $output[$v['par']]['items'][] = $v; $sorted = $output[$v['par']]['items']; usort($sorted, MHelper::get('Array')->sortFunction('title')); $output[$v['par']]['items'] = $sorted; unset($output[$k]); } } if($k==0 && !empty($v['items'])){ foreach ($v['items'] as $key => $value) { foreach($output as $k2=>$v2){ if($value['id'] == $v2['id']){ $uns[] = $key; break; } } } } } if(!empty($uns)){ foreach ($uns as $v) { unset($output[0]['items'][$v]); } } usort($output, MHelper::get('Array')->sortFunction('title')); } return $output; }
'dataProvider'=>$dataProvider, 'itemView'=>'application.modules.catalog.views.article._article_listview2', 'id'=>'article_listview', // must have id corresponding to js above 'itemsCssClass'=>'item-article-list one-column', 'template'=>"{items}" )); } */ if(!empty($blocks)){ ?> <div class="row"> <div id="main_list_grid_m1" data-columns> <?php usort($blocks, MHelper::get('Array')->sortFunction('time')); $blocks = array_reverse($blocks); foreach ($blocks as $k=>$block) { echo '<div class="item item-article-list one-column col-lg-4 col-md-6 col-sm-6 col-xs-12">'; echo $block['html']; echo '</div>'; } ?> </div> </div> <?php } ?> <div style="font-size:20px;font-weight:300;margin-left:26px;margin-bottom:18px;" class="rootCategory"> Каталог организаций </div>
public static function getRubsByParentId() { /* Выводятся только рубрики, если имеется parent */ $connection=Yii::app()->db; $sql = 'SELECT DISTINCT t.categorie, cat.id, cat.title, cat.url, cat.parent_id FROM objects t LEFT OUTER JOIN category cat ON (cat.id=t.categorie) WHERE t.status='.Objects::STATUS_ACTIVE.' ORDER BY title'; $command = $connection->cache(3600)->createCommand($sql); $cats = $command->queryAll(); $rubs = array(); if($cats){ foreach ($cats as $key => $row) { $parent_id = (int)$row['parent_id']; $rubs[$parent_id][] = $row; } } $output = array(); if($rubs) { foreach($rubs as $key=>$value) { $cat = Category::model()->findByPk($key); if($cat) $output[$key] = array('id'=>$key,'title'=>$cat->title,'url'=>$cat->url,'par'=>$cat->parent_id); else $output[$key] = array('id'=>$key,'title'=>'','url'=>'','par'=>0); for ($i=0;$i<sizeof($value);$i++) { if ($value[$i]['title']!='') $output[$key]['items'][] = array('id'=>$value[$i]['id'],'title'=>$value[$i]['title'],'url'=>$value[$i]['url']); } } } if($output){ foreach($output as $k=>$v){ if(!empty($v['par'])){ if(isset($output[$v['par']]['items'])){ $output[$v['par']]['items'][] = $v; $sorted = $output[$v['par']]['items']; usort($sorted, MHelper::get('Array')->sortFunction('title')); $output[$v['par']]['items'] = $sorted; unset($output[$k]); } } } usort($output, MHelper::get('Array')->sortFunction('title')); } return $output; }