Вход Регистрация
Файл: concrete5.7.5.6/concrete/blocks/switch_language/controller.php
Строк: 93
<?php
namespace ConcreteBlockSwitchLanguage;
use 
ConcreteCoreBlockBlockController;
use 
ConcreteCoreMultilingualPageSectionSection;
use 
ConcreteCoreRoutingRedirect;
use 
Cookie;
use 
Session;

defined('C5_EXECUTE') or die("Access Denied.");

class 
Controller extends BlockController
{

    protected 
$btInterfaceWidth "500";
    protected 
$btInterfaceHeight "150";
    protected 
$btTable 'btSwitchLanguage';

    public 
$helpers = array('form');

    public function 
getBlockTypeDescription()
    {
        return 
t("Adds a front-end language switcher to your website.");
    }

    public function 
getBlockTypeName()
    {
        return 
t("Switch Language");
    }

    public function 
action_switch_language($currentPageID$sectionID$bID false)
    {
        
$lang Section::getByID(intval($sectionID));
        if (
is_object($lang)) {
            
$page Page::getByID(intval($currentPageID));
            if (!
$page->isError()) {
                
$relatedID $lang->getTranslatedPageID($page);
                if (
$relatedID) {
                    
$pc Page::getByID($relatedID);
                    
Redirect::page($pc)->send();
                    exit;
                }
            }
            
Redirect::page($lang)->send();
            exit;
        }

        
Redirect::to('/');
        exit;
    }

    public function 
action_set_current_language()
    {

        if (
$this->post('language')) {

            
$section Section::getByID($this->post('language'));
            if (
is_object($section)) {
                
Session::set('multilingual_default_locale'$section->getLocale());
                if (
$this->post('remember')) {
                    
Cookie::set('multilingual_default_locale'$section->getLocale(), time() + (60 60 24 365));
                } else {
                    
Cookie::clear('multilingual_default_locale');
                }
            }

        }

        
$this->action_switch_language($this->post('rcID'), $this->post('language'));
    }

    public function 
add()
    {
        
$this->set('label't('Choose Language'));
    }

    public function 
view()
    {
        
$this->requireAsset('javascript''jquery');
        
$ml Section::getList();
        
$c Page::getCurrentPage();
        
$al Section::getBySectionOfSite($c);
        
$languages = array();
        
$locale Localization::activeLocale();
        if (
is_object($al)) {
            
$locale $al->getLanguage();
        }
        foreach (
$ml as $m) {
            
$languages[$m->getCollectionID()] = $m->getLanguageText($locale);
        }
        
$this->set('languages'$languages);
        
$this->set('languageSections'$ml);
        if (
is_object($al)) {
            
$this->set('activeLanguage'$al->getCollectionID());
        }
        
$dl Core::make('multilingual/detector');
        
$this->set('defaultLocale'$dl->getPreferredSection());
        
$this->set('locale'$locale);
        
$this->set('cID'$c->getCollectionID());
    }

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