Вход Регистрация
Файл: concrete5.7.5.6/concrete/controllers/single_page/dashboard/system/seo/urls.php
Строк: 156
<?php
namespace ConcreteControllerSinglePageDashboardSystemSeo;

use 
ConcreteCorePageControllerDashboardPageController;
use 
Loader;
use 
Config;
class 
Urls extends DashboardPageController
{
    
/**
    * Returns the mod_rewrite rules
    *
    * @return string
    */
    
public function getRewriteRules()
    {
        
$strRules '
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase ' 
DIR_REL '/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}/index.html !-f
RewriteCond %{REQUEST_FILENAME}/index.php !-f
RewriteRule . ' 
DISPATCHER_FILENAME .' [L]
</IfModule>'
;

        return 
$strRules;
    }

    
/**
    * Returns the .htaccess text to be copied/inserted
    *
    * @return string
    */
    
public function getHtaccessText()
    {
        
$strHt '
        # -- concrete5 urls start --'
        
$this->getRewriteRules() . '
        # -- concrete5 urls end --
        '
;

        return 
preg_replace('/t/'''$strHt);
    }


    
/**
    * Dashboard page view
    *
    * @param string|bool $strStatus - Result of attempting to update rewrite rules
    * @param boolean $blnHtu - Flag denoting if the .htaccess file was writable or not
    * @return void
    */
    
public function view($strStatus false$blnHtu false)
    {
        
$strStatus = (string) $strStatus;
        
$blnHtu = (bool) $blnHtu;
        
$intRewriting Config::get('concrete.seo.url_rewriting') == 0;

        
$this->set('fh'Core::make('helper/form'));
        
$this->set('strRules'$this->getRewriteRules());
        
$this->set('intRewriting'$intRewriting);
        
$this->set('canonical_url'Config::get('concrete.seo.canonical_url'));
        
$this->set('canonical_ssl_url'Config::get('concrete.seo.canonical_ssl_url'));
        
$this->set('redirect_to_canonical_url'Config::get('concrete.seo.redirect_to_canonical_url'));

        if (
$strStatus == 'saved') {
            
$message t('Settings Saved.');
            if (
Config::get('concrete.seo.url_rewriting') && !$blnHtu) {
                
$this->set('message'$message ' ' $urlmsg ' ' t('You need to update .htaccess by hand.'));
            } elseif (
Config::get('concrete.seo.url_rewriting') && $blnHtu) {
                
$this->set('message'$message ' ' $urlmsg ' ' .t('We were able to automatically update .htaccess file.'));
            } else {
                
$this->set('message'$message);
            }
        }
    }


    
/**
    * Updates the .htaccess file (if writable)
    *
    * @return void
    */
    
public function save_urls()
    {

        if (!
$this->token->validate('save_urls')) {
            
$this->error->add($this->token->getErrorMessage());
        }

        if (
$this->post('canonical_url') && strpos(strtolower($this->post('canonical_url')), 'http://') !== 0) {
            
$this->error->add(t('The canonical URL provided must start with "http://".'));
        }

        if (
$this->post('canonical_ssl_url') && strpos(strtolower($this->post('canonical_ssl_url')), 'https://') !== 0) {
            
$this->error->add(t('The SSL canonical URL provided must start with "https://".'));
        }
        
        if (!
$this->error->has()) {
            
$strHtText = (string) $this->getHtaccessText();
            
$blnHtu 0;

            if (
$this->isPost()) {


                
Config::save('concrete.seo.canonical_url'$this->post('canonical_url'));
                
Config::save('concrete.seo.canonical_ssl_url'$this->post('canonical_ssl_url'));
                
Config::save('concrete.seo.redirect_to_canonical_url'$this->post('redirect_to_canonical_url') ? 0);

                
$intCurrent Config::get('concrete.seo.url_rewriting') == 0;
                
$intPosted $this->post('URL_REWRITING') == 0;

                
// If there was no change we don't attempt to edit/create the .htaccess file
                
if ($intCurrent == $intPosted) {
                    
$this->redirect('/dashboard/system/seo/urls''saved');
                }

                
Config::save('concrete.seo.url_rewriting'$intPosted);

                if (
$this->post('URL_REWRITING') == 1) {
                    if (
file_exists(DIR_BASE '/.htaccess') && is_writable(DIR_BASE '/.htaccess')) {
                        if (
file_put_contents(DIR_BASE '/.htaccess'$strHtTextFILE_APPEND)) {
                            
$blnHtu 1;
                        }
                    } elseif (!
file_exists(DIR_BASE '/.htaccess') && is_writable(DIR_BASE)) {
                        if (
file_put_contents(DIR_BASE '/.htaccess'$strHtText)) {
                            
$blnHtu 1;
                        }
                    }
                } else {
                    if (
file_exists(DIR_BASE '/.htaccess') && is_writable(DIR_BASE '/.htaccess')) {
                        
$fh Loader::helper('file');
                        
$contents $fh->getContents(DIR_BASE '/.htaccess');

                        if (
file_put_contents(DIR_BASE '/.htaccess'str_replace($strHtText''$contents))) {
                            
$blnHtu 1;
                        }
                    }
                }

                
$this->redirect('/dashboard/system/seo/urls''saved'$blnHtu);
            }
        }
        
$this->view();
    }
}
Онлайн: 0
Реклама