Вход Регистрация
Файл: system/controllers/moderation/backend/actions/logs.php
Строк: 84
<?php

class actionModerationLogs extends cmsAction {

    public function 
run($target_controller null$target_subject null$target_id null$moderator_id null){

        
cmsCore::loadAllControllersLanguages();

        
$grid $this->loadDataGrid('logs');

        
$url           href_to($this->root_url'logs');
        
$sub_url       = array();
        
$url_query     = array();
        
$additional_h1 = array();
        
$subj_controller null;

        
$action $this->request->get('action', -1);
        
$only_to_delete $this->request->get('only_to_delete'0);
        if(
$action > -1){

            
$this->model->filterEqual('action'$action);

            if(
$only_to_delete){

                
$this->model->filterNotNull('date_expired');

                
$url_query['only_to_delete'] = $only_to_delete;

            }

            
$additional_h1[] = string_lang('LANG_MODERATION_ACTION_'.$action);

            
$url_query['action'] = $action;

        }

        if(!empty(
$target_controller)){

            
$subj_controller cmsCore::getController($target_controller);

            
$this->model->filterEqual('target_controller'$target_controller);

            
$sub_url[] = $target_controller;

            if(!empty(
$target_subject)){

                
$ctype $subj_controller->getContentTypeForModeration($target_subject);

                if(
$ctype){
                    
$target_subject $ctype['name'];
                } else {
                    return 
cmsCore::error404();
                }

                
$this->model->filterEqual('target_subject'$target_subject);

                
$sub_url[] = $target_subject;

                if(
$ctype){
                    
$additional_h1[] = $ctype['title'];
                }

                if(!empty(
$target_id)){

                    
$this->model->filterEqual('target_id'$target_id);

                    
$sub_url[] = $target_id;

                    
$this->model->lockFilters();

                        
$item $this->model->getItem('moderators_logs', function ($item$model){
                            
$item['data'] = cmsModel::yamlToArray($item['data']);
                            return 
$item;
                        });

                        if(
$item){
                            
$additional_h1[] = $item['data']['title'];
                        }

                    
$this->model->unlockFilters();

                }

            }

        }

        if(!empty(
$moderator_id)){

            
$this->model->filterEqual('moderator_id'$moderator_id);

            if(
count($sub_url) == 3){
                
$sub_url[] = $moderator_id;
            } elseif(
count($sub_url) == 2){
                
$sub_url[] = 0;
                
$sub_url[] = $moderator_id;
            } elseif(
count($sub_url) == 1){
                
$sub_url[] = 0;
                
$sub_url[] = 0;
                
$sub_url[] = $moderator_id;
            } else {
                
$sub_url[] = 0;
                
$sub_url[] = 0;
                
$sub_url[] = 0;
                
$sub_url[] = $moderator_id;
            }

            
$user cmsCore::getModel('users')->getuser($moderator_id);

            if(
$user){
                
$additional_h1[] = $user['nickname'];
            }

        }

        if (
$this->request->isAjax()) {

            
$filter     = array();
            
$filter_str $this->request->get('filter''');

            if (
$filter_str){
                
parse_str($filter_str$filter);
                
$this->model->applyGridFilter($grid$filter);
            }

            
$total $this->model->getCount('moderators_logs');
            
$perpage = isset($filter['perpage']) ? $filter['perpage'] : admin::perpage;
            
$pages ceil($total $perpage);

            
$this->model->joinUserLeft('moderator_id');

            
$data $this->model->get('moderators_logs', function ($item$model) use($subj_controller){

                
$item['data'] = cmsModel::yamlToArray($item['data']);

                
$item['controller_title'] = string_lang($item['target_controller'].'_CONTROLLER');

                
$item['subject_title'] = $item['controller_title'];

                if(
$subj_controller !== null){

                    
$ctype $subj_controller->getContentTypeForModeration($item['target_subject']);

                    
$item['subject_title'] = $ctype['title'];

                }

                return 
$item;

            });

            
$this->cms_template->renderGridRowsJSON($grid$data$total$pages);

            
$this->halt();

        }

        if(
$additional_h1){
            
$this->cms_template->setPageH1($additional_h1);
        }

        
$this->model->resetFilters();

        return 
$this->cms_template->render('backend/logs', array(
            
'grid'      => $grid,
            
'sub_url'   => $sub_url,
            
'url_query' => $url_query,
            
'url'       => $url.($sub_url '/'.implode('/'$sub_url) : '').(($action > -1) ? '?'.http_build_query($url_query) : '')
        ));

    }

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