Пример #1
0
 public function init()
 {
     $langs = Lang::getActiveLangs();
     $defaultLang = Lang::getDefaultLang();
     $this->isInstalled = oreInstall::isInstalled();
     $keyDefault = array_search($defaultLang, $langs);
     if ($keyDefault !== false && $this->isInstalled) {
         unset($langs[$keyDefault]);
     }
     //$countLangs = count($langs);
     $this->langRoute = '<lang:' . implode('|', $langs) . '>';
     $rules = array('sitemap.xml' => 'sitemap/main/viewxml', 'yandex_export_feed.xml' => 'yandexRealty/main/viewfeed', 'version' => '/site/version', 'site/uploadimage/' => 'site/uploadimage/', 'site/activation' => 'site/activation', 'min/serve/g/' => 'min/serve/', 'rss' => 'quicksearch/main/mainsearch/rss/1', '<module:\\w+>/backend/<controller:\\w+>/<action:\\w+>' => '<module>/backend/<controller>/<action>');
     $rulesLang = array('/' => 'site/index', '/login' => 'site/login', '/admin' => 'site/login', '/administrator' => 'site/login', '/register' => 'site/register', '/recover' => 'site/recover', '/logout' => 'site/logout', '/site/activation' => 'site/activation', '/sell' => 'quicksearch/main/mainsearch/type/2', '/rent' => 'quicksearch/main/mainsearch/type/1', '/site/uploadimage/' => 'site/uploadimage/', '/min/serve/g/' => 'min/serve/', '/news' => 'news/main/index', '/news/<id:\\d+>' => 'news/main/view', '/news/<url:[-a-zA-Z0-9_+\\.]{1,255}>' => 'news/main/view', '/blog' => 'blog/main/index', '/blog/<id:\\d+>' => 'blog/main/view', '/blog/<url:[-a-zA-Z0-9_+\\.]{1,255}>' => 'blog/main/view', '/faq' => 'articles/main/index', '/faq/<id:\\d+>' => 'articles/main/view', '/faq/<url:[-a-zA-Z0-9_+\\.]{1,255}>' => 'articles/main/view', '/contact-us' => 'contactform/main/index', '/specialoffers' => 'specialoffers/main/index', '/sitemap' => 'sitemap/main/index', '/reviews' => 'reviews/main/index', '/reviews/add' => 'reviews/main/add', '/vacancy' => 'vacancy/main/index', '/vacancy/add' => 'vacancy/main/add', '/guestad/add' => 'guestad/main/create', '/page/<id:\\d+>' => 'infopages/main/view', '/page/<url:[-a-zA-Z0-9_+\\.]{1,255}>' => 'infopages/main/view', '/search' => 'quicksearch/main/mainsearch', '/comparisonList' => 'comparisonList/main/index', '/complain/add' => 'apartmentsComplain/main/complain', '/booking/add' => 'booking/main/bookingform', '/booking/request' => 'booking/main/mainform', '/usercpanel' => 'usercpanel/main/index', '/usercpanel/data' => 'usercpanel/main/data', '/usercpanel/xmlfeed' => 'usercpanel/main/xmlfeed', '/usercpanel/changepwd' => 'usercpanel/main/changepassword', '/usercpanel/tariffplans' => 'tariffPlans/main/index', '/usercpanel/payments' => 'usercpanel/main/payments', '/usercpanel/balance' => 'usercpanel/main/balance', '/usercpanel/bookingtable' => 'bookingtable/main/index', '/userads/create' => 'userads/main/create', '/userads/edit' => 'userads/main/update', '/userads/delete' => 'userads/main/delete', '/users/viewall' => 'users/main/search', '/users/alllistings' => 'apartments/main/alllistings', '/apartments/sendEmail' => 'apartments/main/sendEmail', '/mailbox' => 'messages/main/index', '/mailbox/send' => 'messages/main/sendform', '/mailbox/read' => 'messages/main/read', '/mailbox/delete' => 'messages/main/delete', '/messages/downloadFile' => 'messages/main/downloadFile', '/service-<serviceId:\\d+>' => 'quicksearch/main/mainsearch', '/property/<id:\\d+>' => 'apartments/main/view', '/property/<url:[-a-zA-Z0-9_+\\.]{1,255}>' => 'apartments/main/view', '/<controller:(quicksearch|specialoffers)>/main/index' => '<controller>/main/index', '/<_m>/<_c>/<_a>*' => '<_m>/<_c>/<_a>', '/<_c>/<_a>*' => '<_c>/<_a>', '/<_c>' => '<_c>');
     foreach ($rulesLang as $key => $rule) {
         if ($langs && $this->langRoute) {
             $rules[$this->langRoute . $key] = $rule;
         }
         $rules[$key] = array($rule, 'defaultParams' => array('lang' => $defaultLang));
     }
     if ($langs && $this->langRoute) {
         $rules[$this->langRoute] = '';
     }
     $this->addRules($rules);
     if ($this->isInstalled) {
         $modules = Yii::app()->getModules();
         $paramModules = ConfigurationModel::getModulesList();
         foreach ($paramModules as $module) {
             if (isset($modules[$module]) && !param('module_enabled_' . $module)) {
                 $modules[$module]['enabled'] = false;
             }
         }
         Yii::app()->setModules($modules);
     }
     return parent::init();
 }
Пример #2
0
 public function init()
 {
     $langs = Lang::getActiveLangs();
     $countLangs = count($langs);
     $langRoute = $countLangs > 1 || $countLangs == 1 && param('useLangPrefixIfOneLang') ? '<lang:' . implode('|', $langs) . '>' : '';
     $rules = array('sitemap.xml' => 'sitemap/main/viewxml', 'yandex_export_feed.xml' => 'yandexRealty/main/viewfeed', 'version' => '/site/version', 'sell' => 'quicksearch/main/mainsearch/type/2', 'rent' => 'quicksearch/main/mainsearch/type/1', 'site/uploadimage/' => 'site/uploadimage/', $langRoute . '/site/uploadimage/' => 'site/uploadimage/', 'min/serve/g/' => 'min/serve/', $langRoute . '/min/serve/g/' => 'min/serve/', '<module:\\w+>/backend/<controller:\\w+>/<action:\\w+>' => '<module>/backend/<controller>/<action>', $langRoute . '/property/<id:\\d+>' => 'apartments/main/view', $langRoute . '/property/<url:[-a-zA-Z0-9_+\\.]{1,255}>' => 'apartments/main/view', $langRoute . '/news' => 'news/main/index', $langRoute . '/news/<id:\\d+>' => 'news/main/view', $langRoute . '/news/<url:[-a-zA-Z0-9_+\\.]{1,255}>' => 'news/main/view', $langRoute . '/faq' => 'articles/main/index', $langRoute . '/faq/<id:\\d+>' => 'articles/main/view', $langRoute . '/faq/<url:[-a-zA-Z0-9_+\\.]{1,255}>' => 'articles/main/view', $langRoute . '/contact-us' => 'contactform/main/index', $langRoute . '/specialoffers' => 'specialoffers/main/index', $langRoute . '/sitemap' => 'sitemap/main/index', $langRoute . '/reviews' => 'reviews/main/index', $langRoute . '/reviews/add' => 'reviews/main/add', $langRoute . '/guestad/add' => 'guestad/main/create', $langRoute . '/page/<id:\\d+>' => 'infopages/main/view', $langRoute . '/page/<url:[-a-zA-Z0-9_+\\.]{1,255}>' => 'infopages/main/view', $langRoute . '/search' => 'quicksearch/main/mainsearch', $langRoute . '/comparisonList' => 'comparisonList/main/index', $langRoute . '/complain/add' => 'apartmentsComplain/main/complain', $langRoute . '/booking/add' => 'booking/main/bookingform', $langRoute . '/booking/request' => 'booking/main/mainform', $langRoute . '/usercpanel' => 'usercpanel/main/index', $langRoute . '/userads/create' => 'userads/main/create', $langRoute . '/userads/edit' => 'userads/main/update', $langRoute . '/userads/delete' => 'userads/main/delete', $langRoute . '/users/viewall' => 'users/main/search', $langRoute . '/users/alllistings' => 'apartments/main/alllistings', $langRoute . '/apartments/sendEmail' => 'apartments/main/sendEmail', '/rss' => 'quicksearch/main/mainsearch/rss/1', $langRoute . '/service-<serviceId:\\d+>' => 'quicksearch/main/mainsearch', $langRoute . '/<controller:(quicksearch|specialoffers)>/main/index' => '<controller>/main/index', $langRoute . '/' => 'site/index', $langRoute . '/<_m>/<_c>/<_a>*' => '<_m>/<_c>/<_a>', $langRoute . '/<_c>/<_a>*' => '<_c>/<_a>', $langRoute . '/<_c>' => '<_c>', '/property/' => 'quicksearch/main/mainsearch', $langRoute . '/property/' => 'quicksearch/main/mainsearch');
     if ($langRoute) {
         $rules[$langRoute] = '';
     }
     $this->addRules($rules);
     if (oreInstall::isInstalled()) {
         $modules = Yii::app()->getModules();
         $paramModules = ConfigurationModel::getModulesList();
         foreach ($paramModules as $module) {
             if (isset($modules[$module]) && !param('module_enabled_' . $module)) {
                 $modules[$module]['enabled'] = false;
             }
         }
         Yii::app()->setModules($modules);
     }
     return parent::init();
 }
Пример #3
0
function issetModule($module, $raw = false)
{
    if (!oreInstall::isInstalled()) {
        $raw = true;
    }
    if (!$raw) {
        $modules = ConfigurationModel::getModulesList();
        if (in_array($module, $modules)) {
            if (!param('module_enabled_' . $module)) {
                return false;
            }
        }
    }
    if (is_array($module)) {
        foreach ($module as $module_name) {
            if (!isset(Yii::app()->modules[$module_name])) {
                return false;
            }
        }
        return true;
    }
    return isset(Yii::app()->modules[$module]);
}
Пример #4
0
 function init()
 {
     if (!oreInstall::isInstalled() && !(Yii::app()->controller->module && Yii::app()->controller->module->id == 'install')) {
         $this->redirect(array('/install'));
     }
     setLang();
     $modulesToCheck = ConfigurationModel::getModulesList();
     foreach ($modulesToCheck as $module) {
         if (param('module_enabled_' . $module) === null) {
             ConfigurationModel::createValue('module_enabled_' . $module, 0);
             Yii::app()->params['module_enabled_' . $module] = 0;
         }
     }
     unset($modulesToCheck);
     $this->assetsGenPath = Yii::getPathOfAlias('webroot.assets');
     $this->assetsGenUrl = Yii::app()->getBaseUrl(true) . '/assets/';
     Yii::app()->user->setState('menu_active', '');
     $this->pageTitle = tt('siteName', 'seo');
     $this->pageKeywords = tt('siteKeywords', 'seo');
     $this->pageDescription = tt('siteDescription', 'seo');
     Yii::app()->name = $this->pageTitle;
     $this->defaultTheme = Themes::getDefaultTheme();
     if (!$this->defaultTheme) {
         $this->defaultTheme = 'classic';
     }
     Yii::app()->theme = $this->defaultTheme;
     $this->baseUrl = Yii::app()->baseUrl;
     $this->baseThemeUrl = Yii::app()->theme->baseUrl;
     if (Yii::app()->getModule('menumanager')) {
         if (!(Yii::app()->controller->module && Yii::app()->controller->module->id == 'install')) {
             $this->infoPages = Menu::getMenuItems(true, 2);
         }
     }
     $subItems = array();
     if (!Yii::app()->user->isGuest) {
         $subItems = HUser::getMenu();
     }
     $this->aData['userCpanelItems'] = Menu::getMenuItems(true, 1);
     $this->aData['userCpanelItems'][] = array('label' => tt('Reserve apartment', 'common'), 'url' => array('/booking/main/mainform'), 'visible' => Yii::app()->user->checkAccess('backend_access') === false, 'linkOptions' => array('class' => 'fancy'), 'itemOptions' => array('class' => 'depth_zero'));
     $this->aData['userCpanelItems'][] = array('label' => Yii::t('common', 'Control panel'), 'url' => array('/usercpanel/main/index'), 'visible' => Yii::app()->user->checkAccess('backend_access') === false, 'items' => $subItems, 'itemOptions' => array('class' => 'depth_zero'), 'submenuOptions' => array('class' => 'sub_menu_dropdown'));
     if (!Yii::app()->user->isGuest) {
         $user = HUser::getModel();
         $this->aData['userCpanelItems'][] = array('label' => '(' . $user->username . ') ' . tt('Logout', 'common'), 'url' => array('/site/logout'), 'itemOptions' => array('class' => 'depth_zero'));
     }
     $this->aData['topMenuItems'] = $this->infoPages;
     // comparison list
     if (issetModule('comparisonList')) {
         if (!Yii::app()->user->isGuest) {
             $resultCompare = ComparisonList::model()->findAllByAttributes(array('user_id' => Yii::app()->user->id));
         } else {
             $resultCompare = ComparisonList::model()->findAllByAttributes(array('session_id' => Yii::app()->session->sessionId));
         }
         if ($resultCompare) {
             foreach ($resultCompare as $item) {
                 $this->apInComparison[] = $item->apartment_id;
             }
         }
     }
     $this->currentUserIp = Yii::app()->request->getUserHostAddress();
     $this->currentUserIpLong = ip2long($this->currentUserIp);
     $this->datePickerLang = Yii::app()->language;
     if ($this->datePickerLang == 'en') {
         $this->datePickerLang = 'en-GB';
     }
     if (demo()) {
         if (isset($_GET['theme']) && array_key_exists($_GET['theme'], Themes::getColorThemesList())) {
             $theme = $_GET['theme'];
             $cookie = new CHttpCookie('theme', $theme);
             $cookie->expire = time() + 86400;
             Yii::app()->request->cookies['theme'] = $cookie;
         }
     }
     parent::init();
 }
Пример #5
0
 function init()
 {
     if (!oreInstall::isInstalled() && !(Yii::app()->controller->module && Yii::app()->controller->module->id == 'install')) {
         $this->redirect(array('/install'));
     }
     setLang();
     $modulesToCheck = ConfigurationModel::getModulesList();
     foreach ($modulesToCheck as $module) {
         if (param('module_enabled_' . $module) === null) {
             ConfigurationModel::createValue('module_enabled_' . $module, 0);
             Yii::app()->params['module_enabled_' . $module] = 0;
         }
     }
     unset($modulesToCheck);
     $this->assetsGenPath = Yii::getPathOfAlias('webroot.assets');
     $this->assetsGenUrl = Yii::app()->getBaseUrl(true) . '/assets/';
     Yii::app()->user->setState('menu_active', '');
     if (isFree()) {
         $this->pageTitle = param('siteTitle');
         $this->pageKeywords = param('siteKeywords');
         $this->pageDescription = param('siteDescription');
     } else {
         if (issetModule('seo')) {
             $this->pageTitle = Seo::getSeoValue('siteName');
             $this->pageKeywords = Seo::getSeoValue('siteKeywords');
             $this->pageDescription = Seo::getSeoValue('siteDescription');
         } else {
             $this->pageTitle = tt('siteName', 'seo');
             $this->pageKeywords = tt('siteKeywords', 'seo');
             $this->pageDescription = tt('siteDescription', 'seo');
         }
     }
     Yii::app()->name = $this->pageTitle;
     if (Yii::app()->getModule('menumanager')) {
         if (!(Yii::app()->controller->module && Yii::app()->controller->module->id == 'install')) {
             $this->infoPages = Menu::getMenuItems(0);
         }
     }
     if (!Yii::app()->user->isGuest && !Yii::app()->user->getState('isAdmin')) {
         $subItems = HUser::getMenu();
     } else {
         $subItems = array();
     }
     $urlAddAd = Yii::app()->user->isGuest && issetModule('guestad') ? array('/guestad/main/create') : array('/userads/main/create');
     $this->aData['userCpanelItems'] = array(array('label' => tt('Add ad', 'common'), 'url' => $urlAddAd, 'visible' => Yii::app()->user->isGuest == false), array('label' => '|', 'visible' => param('useUserads', 0) == 1), array('label' => tt('Special offers', 'common'), 'url' => array('/specialoffers/main/index')), array('label' => tt('Search for listings on the map', 'common'), 'url' => array('/page/2')), array('label' => tt('Contact us', 'common'), 'url' => array('/contactform/main/index')), array('label' => '|', 'visible' => Yii::app()->user->getState('isAdmin') === null), array('label' => tt('Reserve apartment', 'common'), 'url' => array('/booking/main/mainform'), 'visible' => Yii::app()->user->getState('isAdmin') === null, 'linkOptions' => array('class' => 'fancy')), array('label' => '|', 'visible' => Yii::app()->user->getState('isAdmin') === null), array('label' => Yii::t('common', 'Control panel'), 'url' => array('/usercpanel/main/index'), 'visible' => Yii::app()->user->getState('isAdmin') === null, 'items' => $subItems, 'submenuOptions' => array('class' => 'sub_menu_dropdown')));
     if (!Yii::app()->user->isGuest) {
         $user = HUser::getModel();
         $this->aData['userCpanelItems'][] = array('label' => '|');
         $this->aData['userCpanelItems'][] = array('label' => '(' . $user->username . ') ' . tt('Logout', 'common'), 'url' => array('/site/logout'));
     }
     $this->aData['topMenuItems'] = $this->infoPages;
     // comparison list
     if (issetModule('comparisonList')) {
         if (!Yii::app()->user->isGuest) {
             $resultCompare = ComparisonList::model()->findAllByAttributes(array('user_id' => Yii::app()->user->id));
         } else {
             $resultCompare = ComparisonList::model()->findAllByAttributes(array('session_id' => Yii::app()->session->sessionId));
         }
         if ($resultCompare) {
             foreach ($resultCompare as $item) {
                 $this->apInComparison[] = $item->apartment_id;
             }
         }
     }
     parent::init();
 }