ACC SHELL
<?php
class Mine_Controller_Plugin_LangSelector extends Zend_Controller_Plugin_Abstract {
protected $_langs = array('cs', 'en', 'de');
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
$lang = $request->getParam('lang');
if(!in_array($lang, $this->_langs))
{
if($request->getModuleName() != 'admin') //krome admin modulu vyzaduji definovany jazyk
{
$this->getResponse()->setRedirect('/cs/')->sendResponse(); //presmerovani na cs
}
}
if(in_array($lang, $this->_langs))
{
$view = Zend_Controller_Front::getInstance()->getParam('bootstrap')->getResource('view');
$view->lang = $lang;
$translate = new Zend_Translate('array', APPLICATION_PATH . '/languages/cs.php', 'cs'); //default translator settings
$translate->addTranslation(APPLICATION_PATH . '/languages/' . $lang . '.php', $lang);
Zend_Registry::set('Zend_Translate', $translate);
}
}
private function redirectWithDefaultLanguage($request)
{
$requests = $request->getParams();
var_dump($requests);exit;
$request->setModuleName('default')
->setControllerName('search')
->setActionName('form')
->setDispatched(false);
//foreach()
}
}
ACC SHELL 2018