Вход Регистрация
Файл: system/controllers/users/widgets/list/widget.php
Строк: 49
<?php
class widgetUsersList extends cmsWidget {

    public function 
run(){

        
$show        $this->getOption('show''all');
        
$dataset     $this->getOption('dataset''latest');
        
$groups      $this->getOption('groups');
        
$list_fields $this->getOption('list_fields');

        
$user cmsUser::getInstance();
        
$model cmsCore::getModel('users');
        
$content_model cmsCore::getModel('content');

        
$show_fields = [];

        
$content_model->setTablePrefix('')->orderBy('ordering');
        
$fields $content_model->getContentFields('{users}');

        list(
$fields$model) = cmsEventsManager::hook('profiles_list_filter', array($fields$model));

        if(
$list_fields){
            foreach (
$fields as $name => $field) {
                if(
in_array($field['id'], $list_fields)){
                    
$show_fields[$name] = $field;
                }
            }
        }

        switch (
$show){

            case 
'friends':
                if (!
$user->is_logged) { return false; }
                
$model->filterFriends($user->id);
                break;

            case 
'friends_online':
                if (!
$user->is_logged) { return false; }
                
$model->filterFriends($user->id);
                
$model->filterOnlineUsers();
                break;

        }

        switch (
$dataset){
            case 
'latest'$model->orderBy('date_reg''desc');
                break;
            case 
'rating'$model->orderBy('karma desc, rating desc');
                break;
            case 
'popular'$model->orderBy('friends_count''desc');
                break;
            case 
'subscribers'$model->orderBy('subscribers_count''desc');
                break;
            case 
'date_log'$model->orderBy('date_log''desc');
                break;
        }

        if (
$groups){
            
$model->filterGroups($groups);
        }

        
$profiles $model->limit($this->getOption('limit'10))->getUsers();
        if (!
$profiles) { return false; }

        
$model->makeProfileFields($show_fields$profiles$user);

        list(
$profiles$show_fields) = cmsEventsManager::hook('profiles_before_list', [$profiles$show_fields]);

        return array(
            
'profiles'   => $profiles,
            
'fields'     => $fields,
            
'style'      => $this->getOption('style''list'),
            
'is_avatars' => $this->getOption('is_avatars')
        );

    }

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