Вход Регистрация
Файл: concrete5.7.5.6/concrete/controllers/upgrade.php
Строк: 97
<?php
namespace ConcreteController;

use 
ConcreteCoreUpdaterUpdate;
use 
View;
use 
ConcreteControllerBackendUserInterface as BackendUserInterfaceController;
use 
Config;

class 
Upgrade extends BackendUserInterfaceController
{
    public function 
canAccess()
    {
        if (!
Config::get('concrete.updates.enable_permissions_protection')) {
            return 
true// we have turned this off temporarily which means anyone even non-logged-in users can run update.
        
}

        
$p = new Permissions();
        return 
$p->canUpgrade();
    }

    public function 
on_start()
    {
        
parent::on_start();

        
$this->view = new View('/frontend/upgrade');
        
$this->setTheme('concrete');

        
$this->siteVersion Config::get('concrete.version_installed');
        
$this->checkSecurity();
        
Cache::disableAll();
    }

    public function 
checkSecurity()
    {
        
$fh Loader::helper('file');
        
$updates $fh->getDirectoryContents(DIR_CORE_UPDATES);
        foreach (
$updates as $upd) {
            if (
is_dir(DIR_CORE_UPDATES '/' $upd) && is_writable(DIR_CORE_UPDATES '/' $upd)) {
                if (
file_exists(DIR_CORE_UPDATES '/' $upd '/' DISPATCHER_FILENAME) && is_writable(
                        
DIR_CORE_UPDATES '/' $upd '/' DISPATCHER_FILENAME)
                ) {
                    
unlink(DIR_CORE_UPDATES '/' $upd '/' DISPATCHER_FILENAME);
                }
                if (!
file_exists(DIR_CORE_UPDATES '/' $upd '/index.html')) {
                    
touch(DIR_CORE_UPDATES '/' $upd '/index.html');
                }
            }
        }
    }

    public function 
submit()
    {
        if (
$this->validateAction()) {

            try {
                
Update::updateToCurrentVersion();
                
$this->set('success't('Upgrade to <b>%s</b> complete!'APP_VERSION));
            } catch (
Exception $e) {
                
$this->set('error'$e);
            }
        }
    }

    public function 
view()
    {
        
$sav $this->siteVersion;

        if (!
$sav) {
            
$message t('Unable to determine your current version of concrete5. Upgrading cannot continue.');
        }elseif(
$this->request->query->get('force'0) == 1){
            
$this->set('do_upgrade'true);
        } else {
            if (
version_compare($savAPP_VERSION'>')) {
                
$message t('Upgrading from <b>%s</b>'$sav) . '<br/>';
                
$message .= t('Upgrading to <b>%s</b>'APP_VERSION) . '<br/><br/>';
                
$message .= t(
                    
'Your current website uses a version of concrete5 greater than this one. You cannot upgrade.');
            } else {
                if (
version_compare($savAPP_VERSION'=')) {
                    
$message t(
                        
'Your site is already up to date! The current version of concrete5 is <b>%s</b>.',
                        
APP_VERSION);
                } else {
                    
$message '';
                    
$message .= t('Upgrading from <b>%s</b>'$sav) . '<br/>';
                    
$message .= t('Upgrading to <b>%s</b>'APP_VERSION) . '<br/><br/>';
                    
$this->set('do_upgrade'true);
                }
            }
        }
        
$this->set('status'$message);
    }

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