Вход Регистрация
Файл: concrete5.7.5.6/concrete/controllers/single_page/dashboard/pages/themes.php
Строк: 105
<?php
namespace ConcreteControllerSinglePageDashboardPages;
use 
ConcreteCorePageControllerDashboardPageController;
use 
PageTheme;
use 
Config;
use 
Loader;
use 
View;
use 
Package;
use 
Exception;
class 
Themes extends DashboardPageController {

    protected 
$helpers = array('html');

    public function 
view() {

        
$tArray = array();
        
$tArray2 = array();

        
$tArray PageTheme::getList();
        
$tArray2 PageTheme::getAvailableThemes();

        
$this->set('tArray'$tArray);
        
$this->set('tArray2'$tArray2);
        
$siteThemeID 0;
        
$obj PageTheme::getSiteTheme();
        if (
is_object($obj)) {
            
$siteThemeID $obj->getThemeID();
        }

        
$this->set('siteThemeID'$siteThemeID);
        
$this->set('activate'View::url('/dashboard/pages/themes''activate'));
        
$this->set('install'View::url('/dashboard/pages/themes''install'));
    }

    public function 
save_mobile_theme() {
        
$pt PageTheme::getByID($this->post('MOBILE_THEME_ID'));
        if (
is_object($pt)) {
            
Config::save('concrete.misc.mobile_theme_id'$pt->getThemeID());
        } else {
            
Config::save('concrete.misc.mobile_theme_id'0);
        }
        
$this->redirect('/dashboard/pages/themes''mobile_theme_saved');
    }

    public function 
mobile_theme_saved() {
        
$this->set('success't('Mobile theme saved.'));
        
$this->view();
    }

    public function 
remove($pThemeID$token '') {
        
$v Loader::helper('validation/error');
        try {
            
$valt Loader::helper('validation/token');
            if (!
$valt->validate('remove'$token)) {
                throw new 
Exception($valt->getErrorMessage());
            }
            
$pl PageTheme::getByID($pThemeID);
            if (!
is_object($pl)) {
                throw new 
Exception(t('Invalid theme.'));
            }
            
/*
            if ($pl->getPackageID() > 0) {
                throw new Exception('You may not uninstall a packaged theme.');
            }
            */

            
$localUninstall true;
            if (
$pl->getPackageID() > 0) {
                
// then we check to see if this is the only theme in that package. If so, we uninstall the package too
                
$pkg Package::getByID($pl->getPackageID());
                
$items $pkg->getPackageItems();
                if (
count($items) == 1) {
                    
$_pl $items[0];
                    if (
$_pl instanceof PageTheme && $_pl->getThemeID() == $pThemeID) {
                        
$pkg->uninstall();
                        
$localUninstall false;
                    }
                }
            }
            if (
$localUninstall) {
                
$pl->uninstall();
            }
            
$this->set('message't('Theme uninstalled.'));
        } catch (
Exception $e) {
            
$v->add($e);
            
$this->set('error'$v);
        }
        
$this->view();
    }

    public function 
activate($pThemeID) {
        
$valt Loader::helper('validation/token');
        
$this->set('activate_confirm'View::url('/dashboard/pages/themes''activate_confirm'$pThemeID$valt->generate('activate')));
    }

    public function 
marketplace() {
        
$this->redirect('/dashboard/install/browse''themes');
    }

    public function 
install($pThemeHandle null) {
        
$th PageTheme::getByFileHandle($pThemeHandle);
        if (
$pThemeHandle == null) {
            
$this->redirect('/dashboard/pages/themes');
        }

        
$v Loader::helper('validation/error');
        try {
            if (
is_object($th)) {
                
$t PageTheme::add($pThemeHandle);
                
$this->redirect('/dashboard/pages/themes/inspect'$t->getThemeID(), 'install');

            } else {
                throw new 
Exception('Invalid Theme');
            }
        } catch(
Exception $e) {
            switch(
$e->getMessage()) {
                case 
PageTheme::E_THEME_INSTALLED:
                    
$v->add(t('That theme has already been installed.'));
                    break;
                default:
                    
$v->add($e->getMessage());
                    break;
            }

            
$this->set('error'$v);
        }
        
$this->view();
    }

    
// this can be run from /layouts/add/ or /layouts/edit/ or /layouts/ - anything really

    
public function activate_confirm($pThemeID$token) {
        
$l PageTheme::getByID($pThemeID);
        
$val Loader::helper('validation/error');
        
$valt Loader::helper('validation/token');
        if (!
$valt->validate('activate'$token)) {
            
$val->add($valt->getErrorMessage());
            
$this->set('error'$val);
        } else if (!
is_object($l)) {
            
$val->add('Invalid Theme');
            
$this->set('error'$val);
        } else {
            
$l->applyToSite();
            
$this->redirect('/dashboard/pages/themes/inspect'$l->getThemeID(), 'activate');
        }
        
$this->view();
    }


}

?>
Онлайн: 1
Реклама