Вход Регистрация
Файл: system/controllers/content/widgets/slider/widget.php
Строк: 84
<?php

class widgetContentSlider extends cmsWidget {

    public function 
run(){

        
$cat_id           $this->getOption('category_id');
        
$ctype_id         $this->getOption('ctype_id');
        
$dataset_id       $this->getOption('dataset');
        
$image_field      $this->getOption('image_field');
        
$big_image_field  $this->getOption('big_image_field');
        
$big_image_preset $this->getOption('big_image_preset');
        
$teaser_fields    $this->getOption('teaser_field');
        
$limit            $this->getOption('limit'10);
        
$delay            $this->getOption('delay'5);
        
$teaser_len       $this->getOption('teaser_len'100);

        
$model cmsCore::getModel('content');

        
$ctype $model->getContentType($ctype_id);
        if (!
$ctype) { return false; }

        if (
$cat_id){
            
$category $model->getCategory($ctype['name'], $cat_id);
        } else {
            
$category false;
        }

        if (
$dataset_id){

            
$dataset $model->getContentDataset($dataset_id);

            if (
$dataset){
                
$model->applyDatasetFilters($dataset);
            } else {
                
$dataset_id false;
            }

        }

        
$table_name      $model->getContentCategoryTableName($ctype['name']);
        
$bind_table_name $table_name '_bind';

        
$model->select('c.title''cat_title');
        
$model->select('c.slug''cat_slug');

        if (
$category){

            
$model->joinInner($bind_table_name'b FORCE INDEX (item_id)''b.item_id = i.id');
            
$model->joinInner($table_name'c''c.id = b.category_id');

            
$model->filterGtEqual('c.ns_left'$category['ns_left']);
            
$model->filterLtEqual('c.ns_right'$category['ns_right']);

            if(!empty(
$ctype['options']['is_cats_multi'])){
                
$model->distinctSelect();
            }
        } else {
            
$model->joinInner($table_name'c''c.id = i.category_id');
        }

        
// применяем приватность
        // флаг показа только названий
        
$hide_except_title $model->applyPrivacyFilter($ctypecmsUser::isAllowed($ctype['name'], 'view_all'));

        
// Скрываем записи из скрытых родителей (приватных групп и т.п.)
        
$model->enableHiddenParentsFilter();

        
// выключаем формирование рейтинга в хуках
        
$ctype['is_rating'] = 0;

        list(
$ctype$model) = cmsEventsManager::hook('content_list_filter', array($ctype$model));
        list(
$ctype$model) = cmsEventsManager::hook("content_{$ctype['name']}_list_filter", array($ctype$model));

        
$items $model->limit($limit)->getContentItems($ctype['name']);
        if (!
$items) { return false; }

        list(
$ctype$items) = cmsEventsManager::hook("content_before_list", array($ctype$items));
        list(
$ctype$items) = cmsEventsManager::hook("content_{$ctype['name']}_before_list", array($ctype$items));

        return array(
            
'ctype'             => $ctype,
            
'teaser_len'        => $teaser_len,
            
'hide_except_title' => $hide_except_title,
            
'delay'             => $delay,
            
'image_field'       => $image_field,
            
'big_image_field'   => $big_image_field,
            
'big_image_preset'  => $big_image_preset,
            
'teaser_field'      => $teaser_fields,
            
'items'             => $items
        
);

    }

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