Вход Регистрация
Файл: concrete5.7.5.6/concrete/controllers/single_page/dashboard/users/points/actions.php
Строк: 109
<?php
namespace ConcreteControllerSinglePageDashboardUsersPoints;
use 
ConcreteCoreErrorError;
use 
ConcreteCorePageControllerDashboardPageController;
use 
ConcreteCoreUserPointActionAction as UserPointAction;
use 
ConcreteCoreUserPointActionActionList as UserPointActionList;
use 
Group;
use 
User;

class 
Actions extends DashboardPageController {
    
    public 
$helpers = array('form','concrete/ui''concrete/urls''image''concrete/asset_library');
    public 
$upa;
        
    
    public function 
on_start() 
    {
        
$this->upa = new UserPointAction();
    }
    
    
    public function 
add() 
    {
        
$this->set('add_edit',t('Add'));
        
$this->set('showForm',true);
        
$this->view();
    }
    
    
    public function 
view($upaID=NULL
    {
        
        if(isset(
$upaID)) {
            
$this->set('add_edit',t('Edit'));
            
$this->upa->load($upaID);        
            
$this->setAttribs($this->upa);
            
$this->set('upaHasCustomClass'$this->upa->hasCustomClass());
            
$g $this->upa->getUserPointActionBadgeGroupObject();
            if(
is_object($g)) {
                
$this->set('upaBadgeGroupName',$g->getGroupDisplayName(false));
            }
            
$this->set('showForm',true);
        }
        
        
$actionList $this->getActionList();
        
$badges Group::getBadges();
        
$select = array('' => t('** None'));
        foreach(
$badges as $g) {
            
$select[$g->getGroupID()] = $g->getGroupDisplayName(false);
        }
        
$this->set('badges'$select);
        
$this->set('pagination',$actionList->getPagination());
        
$this->set('actionList',$actionList);
        
$this->set('actions',$actionList->get());
    }
    
    
    public function 
getActionList() 
    {
        
$al = new UserPointActionList();
        
        switch(
$_REQUEST['ccm_order_by']) {
            case 
'groupName':
                
$al->sortBy('Groups.groupName'$_REQUEST['ccm_order_dir']);
            break;
            case 
'upaDefaultPoints':
                
$al->sortBy('upaDefaultPoints'$_REQUEST['ccm_order_dir']);
            break;
            case 
'upaHandle':
                
$al->sortBy('upaHandle'$_REQUEST['ccm_order_dir']);
            break;
            case 
'upaName':
                
$al->sortBy('upaName'$_REQUEST['ccm_order_dir']);
            break;
            case 
'upaTypeID':
                
$al->sortBy('upaTypeID'$_REQUEST['ccm_order_dir']);
            break;
            default:
                
$al->sortBy('upaName','ASC');
            break;
        }
        return 
$al;
    }
    
    
    protected function 
setAttribs($upa
    {
        
$attribs $upa->getAttributeNames();
        foreach(
$attribs as $key) {
            
$this->set($key$upa->$key);
        }
    }
    
    
    public function 
save() 
    {
        if (!
Core::make('helper/validation/token')->validate('add_action')) {
            
$this->error = new Error();
            
$this->error->add('Invalid Token');
            
$this->add();

            return;
        }

        if(
$this->post('upaID') > 0) {
            
$this->upa->load($this->post('upaID'));
            if (!
$this->upa->hasCustomClass()) {
                
$this->upa->upaHandle $this->post('upaHandle');
            }
            
$this->upa->upaName $this->post('upaName');
            
$this->upa->upaDefaultPoints $this->post('upaDefaultPoints');
            
$this->upa->gBadgeID $this->post('gBadgeID');
            if (!
$this->upa->pkgID) {
                
// i hate this activerecord crap
                
$this->upa->pkgID 0;
            }
            
$this->upa->upaIsActive 0;
            if (
$this->post('upaIsActive')) {
                
$this->upa->upaIsActive 1;
            }
            
            
$this->upa->save();            
        } else {
            
$upa UserPointAction::add($this->post('upaHandle'), $this->post('upaName'), $this->post('upaDefaultPoints'), $this->post('gBadgeID'), $this->post('upaIsActive'));
        }
        
        
$this->redirect('/dashboard/users/points/actions','action_saved');
    }    
    
    
    public function 
delete($upaID
    {
        if (!
Core::make('helper/validation/token')->validate('delete_action')) {
            
$this->error = new Error();
            
$this->error->add('Invalid Token');
            
$this->view();

            return;
        }
        
$this->upa->load($upaID);
        
$this->upa->delete();
        
$this->redirect('/dashboard/users/points/actions','action_deleted');
    }
    
    
    public function 
action_deleted() 
    {
        
$this->set('message't('Community Point Action Deleted'));
        
$this->view();
    } 
    
    
    public function 
action_saved() 
    {
        
$this->set('message't('Community Point Action Saved'));
        
$this->view();
    }

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