Example #1
0
 public function actionIndex()
 {
     $page = Menu::model()->findByPk(InfoPages::MAIN_PAGE_ID);
     $langs = Lang::getActiveLangs();
     $countLangs = count($langs);
     if (!isFree() && !isset($_GET['lang']) && ($countLangs > 1 || $countLangs == 1 && param('useLangPrefixIfOneLang'))) {
         $canonicalUrl = Yii::app()->getBaseUrl(true);
         $canonicalUrl .= '/' . Yii::app()->language;
         Yii::app()->clientScript->registerLinkTag('canonical', null, $canonicalUrl);
     }
     Yii::app()->user->setState('searchUrl', NULL);
     $criteriaNews = new CDbCriteria();
     $criteriaNews->limit = 10;
     $criteriaNews->order = 'date_created DESC';
     $newsIndex = News::model()->findAll($criteriaNews);
     if (isset($_GET['is_ajax'])) {
         //			$modeListShow = User::getModeListShow();
         //			if ($modeListShow == 'table') {
         //				# нужны скрипты и стили, поэтому processOutput установлен в true только для table
         //				$this->renderPartial('index', array('page' => $page, 'newsIndex' => $newsIndex), false, true);
         //			}
         //			else {
         $this->renderPartial('index', array('page' => $page, 'newsIndex' => $newsIndex));
         //			}
     } else {
         $this->render('index', array('page' => $page, 'newsIndex' => $newsIndex));
     }
 }
Example #2
0
 public function actionIndex()
 {
     $this->checkCookieEnabled();
     $this->htmlPageId = 'index';
     $page = Menu::model()->findByPk(InfoPages::MAIN_PAGE_ID);
     if (issetModule('seo')) {
         $seo = SeoFriendlyUrl::model()->findByAttributes(array('model_name' => 'InfoPages', 'model_id' => InfoPages::MAIN_PAGE_ID));
         if ($seo) {
             $this->setSeo($seo);
         }
     }
     $langs = Lang::getActiveLangs();
     $countLangs = count($langs);
     if (!isFree() && !isset($_GET['lang']) && ($countLangs > 1 || $countLangs == 1 && param('useLangPrefixIfOneLang'))) {
         $canonicalUrl = Yii::app()->getBaseUrl(true);
         $canonicalUrl .= '/' . Yii::app()->language;
         Yii::app()->clientScript->registerLinkTag('canonical', null, $canonicalUrl);
     }
     Yii::app()->user->setState('searchUrl', NULL);
     $lastNews = News::getLastNews();
     if (Yii::app()->request->isAjaxRequest) {
         //			$modeListShow = User::getModeListShow();
         //			if ($modeListShow == 'table') {
         //				# нужны скрипты и стили, поэтому processOutput установлен в true только для table
         //				$this->renderPartial('index', array('page' => $page, 'newsIndex' => $lastNews), false, true);
         //			}
         //			else {
         $this->renderPartial('index', array('page' => $page, 'newsIndex' => $lastNews));
         //			}
     } else {
         $this->render('index', array('page' => $page, 'newsIndex' => $lastNews));
     }
 }
Example #3
0
 public function afterSave()
 {
     $langs = Lang::getActiveLangs();
     foreach ($langs as $lang) {
         Yii::app()->cache->delete(DbMessageSource::CACHE_KEY_PREFIX . '.messages.' . $this->category . '.' . $lang);
     }
     return parent::afterSave();
 }
Example #4
0
 public function createUrl($route, $params = array(), $ampersand = '&')
 {
     if ($route != 'min/serve' && $route != 'site/uploadimage') {
         $langs = Lang::getActiveLangs();
         $countLangs = count($langs);
         if (!isFree() && empty($params['lang']) && ($countLangs > 1 || $countLangs == 1 && param('useLangPrefixIfOneLang'))) {
             $params['lang'] = Yii::app()->language;
         }
     }
     return parent::createUrl($route, $params, $ampersand);
 }
Example #5
0
 public function init()
 {
     $this->app = Yii::app();
     $this->showSearchForm = false;
     $this->defaultLang = Yii::app()->language;
     $this->activeLangs = array($this->defaultLang => $this->defaultLang);
     if (!isFree()) {
         $this->defaultLang = Lang::getDefaultLang();
         $this->activeLangs = Lang::getActiveLangs();
     }
     parent::init();
 }
Example #6
0
 public function actionRegenSeo()
 {
     $modelsAll = SeoFriendlyUrl::model()->findAll();
     $activeLangs = Lang::getActiveLangs();
     foreach ($modelsAll as $model) {
         foreach ($activeLangs as $lang) {
             $field = 'url_' . $lang;
             $model->{$field} = translit($model->{$field});
         }
         $model->save();
     }
     echo 'end';
 }
Example #7
0
function setLang($lang = null)
{
    if (isFree()) {
        return;
    }
    $app = Yii::app();
    $lang = $lang ? $lang : Lang::getDefaultLang();
    $app->setLanguage($lang);
    $activeLangs = Lang::getActiveLangs();
    if (isset($_GET['lang'])) {
        $tmplang = $_GET['lang'];
        //deb($tmplang);
        if (isset($activeLangs[$tmplang])) {
            $lang = $tmplang;
            $app->setLanguage($lang);
        }
        setLangCookie($lang);
        /*
         * другой код, например обновление кеша некоторых компонентов, которые изменяются при смене языка
         */
    } else {
        $user = $app->user;
        if ($user->hasState('_lang')) {
            $tmplang = $user->getState('_lang');
            if (isset($activeLangs[$tmplang])) {
                $lang = $tmplang;
                $app->setLanguage($lang);
            } else {
                setLangCookie($lang);
            }
        } else {
            if (isset($app->request->cookies['_lang'])) {
                $tmplang = $app->request->cookies['_lang']->value;
                if (isset($activeLangs[$tmplang])) {
                    $lang = $tmplang;
                    $app->setLanguage($lang);
                } else {
                    setLangCookie($lang);
                }
            }
        }
    }
    Lang::getActiveLangs(false, true);
}
Example #8
0
 public function actionViewFeed()
 {
     $oldLang = Yii::app()->language;
     Controller::disableProfiler();
     $defaultLangs = Lang::getDefaultLang();
     Yii::app()->language = $defaultLangs;
     // если есть русский или украинский языки, но они не дефолтные. установим на время их.
     if ($defaultLangs != 'ru' || $defaultLangs != 'uk') {
         $allLangs = Lang::getActiveLangs();
         if (array_key_exists('ru', $allLangs)) {
             Yii::app()->language = 'ru';
         } elseif (array_key_exists('uk', $allLangs)) {
             Yii::app()->language = 'uk';
         }
     }
     $items = $this->generateFeed();
     if (is_array($items) && count($items) > 0) {
         header('Content-type: text/xml');
         header('Pragma: public');
         header('Cache-control: private');
         header('Expires: -1');
         $xmlWriter = new XMLWriter();
         $xmlWriter->openMemory();
         $xmlWriter->setIndent(true);
         $xmlWriter->startDocument('1.0', 'UTF-8');
         $xmlWriter->startElement('realty-feed');
         $xmlWriter->writeAttribute('xmlns', 'http://webmaster.yandex.ru/schemas/feed/realty/2010-06');
         $xmlWriter->writeElement('generation-date', $this->generationDate);
         foreach ($items as $item) {
             if (isset($item['id'])) {
                 $this->prepareItem($item, $xmlWriter);
             }
         }
         $xmlWriter->endElement();
         // end realty-feed (xmlns)
         echo $xmlWriter->outputMemory();
     } else {
         echo 'no elements';
     }
     // установим обратно пользовательский язык
     Yii::app()->language = $oldLang;
 }
Example #9
0
 public function createUrl($route, $params = array(), $ampersand = '&')
 {
     if ($route != 'min/serve' && $route != 'site/uploadimage') {
         $langs = Lang::getActiveLangs();
         $countLangs = count($langs);
         $defaultLang = Lang::getDefaultLang();
         if (isset($params['lang']) && $params['lang'] == $defaultLang && $this->isInstalled) {
             if (!param('useBootstrap')) {
                 unset($params['lang']);
             }
         } else {
             if (Yii::app()->language != $defaultLang && !isFree() && empty($params['lang']) && $countLangs > 1) {
                 $params['lang'] = Yii::app()->language;
             }
         }
         if (!$this->isInstalled && $countLangs == 1 && $route != 'install') {
             $params['lang'] = Yii::app()->language;
         }
         if (!$this->isInstalled && $countLangs > 1 && !isset($params['lang']) && $route != 'install') {
             $params['lang'] = Yii::app()->language;
         }
     }
     return parent::createUrl($route, $params, $ampersand);
 }
Example #10
0
 public function beforeSave()
 {
     $className = get_class($this);
     $i18attributes = CActiveRecord::model($className)->i18nFields();
     foreach ($i18attributes as $attribute => $val) {
         $activeLangs = Lang::getActiveLangs(true);
         $defaultValue = $this->{$attribute . '_' . Yii::app()->language};
         foreach ($activeLangs as $lang) {
             $attr = $attribute . '_' . $lang['name_iso'];
             if ($this->isEmpty($this->{$attr}, true)) {
                 $this->{$attr} = $defaultValue;
             }
         }
     }
     return parent::beforeSave();
 }
Example #11
0
 public static function getUsedCurrenciesIds()
 {
     if (!isset(self::$_usedCurrenciesIds)) {
         self::$_usedCurrenciesIds = array_unique(array_merge(CHtml::listData(Lang::getActiveLangs(1), 'currency_id', 'currency_id'), array(1 => Currency::getDefaultValuteId())));
     }
     return self::$_usedCurrenciesIds;
 }
Example #12
0
 public static function create($attributes)
 {
     $item = new Menu();
     //$item->attributes = $attributes;
     $item->parentId = array_key_exists('parentId', $attributes) ? $attributes['parentId'] : null;
     $item->number = array_key_exists('number', $attributes) ? $attributes['number'] : null;
     $item->active = 0;
     $item->type = self::LINK_NONE;
     if (isFree()) {
         $activeLangs = array(Yii::app()->language);
     } else {
         $activeLangs = Lang::getActiveLangs();
     }
     foreach ($activeLangs as $lang) {
         //$tmp = 'title_'.Yii::app()->language;
         $item->{'title_' . $lang} = array_key_exists('title', $attributes) ? $attributes['title'] : null;
     }
     /*// подставляем урл, если не задан вручную
     		if (!$item->seo_link && $item->title) {
     			if (isset($item->parent) && $item->parent) { # есть родитель
     				if (isset($item->parent->seo_link) && $item->parent->seo_link) {
     					$item->seo_link = $item->parent->seo_link.'/'.translit(mb_strtolower($item->title, 'utf8'));
     				}
     				elseif (isset($item->parent->title) && $item->parent->title) {
     					$item->seo_link = translit(mb_strtolower($item->parent->title, 'utf8')).'/'.translit(mb_strtolower($item->title, 'utf8'));
     				}
     			}
     		}*/
     if (!$item->save()) {
         throw new CHttpException(400, $item->plainErrors());
     }
     $item->normalize();
     return $item;
 }
Example #13
0
 public function createLangUrl($lang = 'en', $params = array())
 {
     $langs = Lang::getActiveLangs();
     if (count($langs) > 1 && issetModule('seo') && isset(SeoFriendlyUrl::$seoLangUrls[$lang])) {
         if (count($params)) {
             return SeoFriendlyUrl::$seoLangUrls[$lang] . '?' . http_build_query($params);
         }
         return SeoFriendlyUrl::$seoLangUrls[$lang];
     }
     $route = Yii::app()->urlManager->parseUrl(Yii::app()->getRequest());
     $params = array_merge($_GET, $params);
     $params['lang'] = $lang;
     return $this->createUrl('/' . $route, $params);
 }
Example #14
0
 public function i18nLength($attribute, $params)
 {
     $label = $this->getAttributeLabel($attribute);
     $activeLangs = Lang::getActiveLangs(true);
     foreach ($activeLangs as $lang) {
         $attr = $attribute . '_' . $lang['name_iso'];
         $value = $this->{$attr};
         if (function_exists('mb_strlen')) {
             $length = mb_strlen($value, Yii::app()->charset);
         } else {
             $length = utf8_strlen($value);
         }
         if (isset($params['min']) && $length < $params['min']) {
             $this->addError($attr, Yii::t('common', '{label} is too short for {lang} (minimum is {min} characters).', array('{label}' => $label, '{lang}' => $lang['name'], '{min}' => $params['min'])));
         }
         if (isset($params['max']) && $length > $params['max']) {
             $this->addError($attr, Yii::t('common', '{label} is too long for {lang} (maximum is {max} characters).', array('{label}' => $label, '{lang}' => $lang['name'], '{max}' => $params['max'])));
         }
         if (isset($params['is']) && $length !== $params['is']) {
             $this->addError($attr, Yii::t('common', '{label} is of the wrong length for {lang} (should be {length} characters).', array('{label}' => $label, '{lang}' => $lang['name'], '{length}' => $params['is'])));
         }
     }
 }
Example #15
0
 public function publishAssets()
 {
     $assets = dirname(__FILE__) . '/../assets';
     $baseUrl = Yii::app()->assetManager->publish($assets);
     if (is_dir($assets)) {
         Yii::app()->clientScript->registerCoreScript('jquery');
         Yii::app()->clientScript->registerScript(__CLASS__, "\n\t\t\tvar activeLang = " . CJavaScript::encode(Lang::getActiveLangs()) . ";\n\t\t\tvar baseUrl = '" . Yii::app()->request->baseUrl . "';\n\t\t\tvar errorNoFromLang = '" . Yii::t('module_lang', 'Enter a value for this language') . "';\n\t\t\tvar errorTranslate = '" . Yii::t('module_lang', 'Error translate') . "';\n\t\t\tvar successTranslate = '" . Yii::t('module_lang', 'Success translate') . "';\n\t\t\tvar successCopy = '" . Yii::t('module_lang', 'Success copy') . "';\n\t\t", CClientScript::POS_END);
         Yii::app()->clientScript->registerScriptFile($baseUrl . '/translate.js', CClientScript::POS_END);
     } else {
         throw new Exception(Yii::t('common', 'Lang - Error: Couldn\'t find assets folder to publish.'));
     }
 }
Example #16
0
 public function actionUpdate($id)
 {
     $model = $this->loadModel($id);
     //$this->performAjaxValidation($model);
     if (isset($_POST[$this->modelName])) {
         $model->attributes = $_POST[$this->modelName];
         $model->scenario = $model->type;
         if (in_array($model->type, array_flip(Advert::getAvailableTypes()))) {
             $isFile = $isHtml = false;
             if ($model->type == 'file') {
                 $isFile = true;
                 $oldFile = $model->file_path;
             }
             if ($model->type == 'html') {
                 $isHtml = true;
             }
             if ($model->validate()) {
                 if ($isFile) {
                     $activeLangs = Lang::getActiveLangs();
                     if ($activeLangs && is_array($activeLangs)) {
                         foreach ($activeLangs as $key => $val) {
                             $model->setAttribute('js_' . $key, '');
                             $model->setAttribute('html_' . $key, '');
                         }
                     }
                     $model->file = CUploadedFile::getInstance($model, 'file_path');
                     if ($model->file) {
                         $model->file_path = md5(uniqid()) . '.' . $model->file->extensionName;
                     }
                 } else {
                     $activeLangs = Lang::getActiveLangs();
                     if ($activeLangs && is_array($activeLangs)) {
                         foreach ($activeLangs as $key => $val) {
                             if ($isHtml) {
                                 $model->setAttribute('js_' . $key, '');
                             } else {
                                 # js
                                 $model->setAttribute('html_' . $key, '');
                             }
                         }
                     }
                     $model->file_path = $model->url = $model->alt_text = '';
                 }
                 if ($model->save(false)) {
                     if ($model->file) {
                         $model->file->saveAs(Yii::getPathOfAlias('webroot') . '/uploads/rkl/' . $model->file_path);
                         @unlink(Yii::getPathOfAlias('webroot') . '/uploads/rkl/' . $oldFile);
                     }
                     $this->redirect(array('admin'));
                 }
             }
         }
     }
     $this->render('update', array('model' => $model));
 }
Example #17
0
 public function run()
 {
     $this->render('langSelectorFormWidget', array('currentLang' => Yii::app()->language, 'languages' => $this->languages ? $this->languages : Lang::getActiveLangs(true), 'type' => $this->type));
 }
Example #18
0
/images/narezka/logo1.png" id="logo" />
			</a>
		</div>
		
		<div class="kontakts">
		    <div class="telefon">
			    8 495 212 93 92
			</div>
			<div class="adres">
			     Москва, ул Строителей 25, оф. 408
			</div>
		</div>
        </div>
		<?php 
if (!isFree()) {
    if (count(Lang::getActiveLangs()) > 1) {
        $this->widget('application.modules.lang.components.langSelectorWidget', array('type' => 'links'));
    }
    if (count(Currency::getActiveCurrency()) > 1) {
        $this->widget('application.modules.currency.components.currencySelectorWidget');
    }
}
?>

		

		<?php 
if (!isset($adminView)) {
    ?>
			<div id="search" class="menu_item menu_gorizont">
				<?php 
Example #19
0
 /**
  * @param $url
  * @param $modelName
  * @return SeoFriendlyUrl
  */
 public static function getForView($url, $modelName)
 {
     if (param('urlExtension')) {
         $url = rstrtrim($url, '.html');
     }
     $seo = SeoFriendlyUrl::model()->findByAttributes(array('model_name' => $modelName, 'url_' . Yii::app()->language => $url));
     if ($seo) {
         $activeLangs = Lang::getActiveLangs();
         foreach ($activeLangs as $lang) {
             $field = 'url_' . $lang;
             if (isset(self::$_prefixUrlArray[$modelName]) && isset($seo->{$field})) {
                 $prefix = $seo->direct_url ? '' : ($lang == Lang::getDefaultLang() ? '' : $lang . '/') . self::$_prefixUrlArray[$modelName];
                 if ($seo->{$field}) {
                     self::$seoLangUrls[$lang] = Yii::app()->baseUrl . '/' . $prefix . $seo->{$field} . (param('urlExtension') ? '.html' : '');
                 } else {
                     self::$seoLangUrls[$lang] = Yii::app()->baseUrl . '/' . $prefix . $seo->model_id;
                 }
                 //deb(self::$seoLangUrls);exit;
             }
         }
     }
     return $seo;
 }