public static function updateStatusAd() { if (Yii::app()->request->getIsAjaxRequest() || !issetModule('paidservices')) { return false; } if (!oreInstall::isInstalled()) { return false; } $data = Yii::app()->statePersister->load(); // Обновляем статусы 1 раз в сутки if (isset($data['next_check_status'])) { if ($data['next_check_status'] < time()) { $data['next_check_status'] = time() + self::TIME_UPDATE; Yii::app()->statePersister->save($data); self::checkStatusAd(); self::clearApartmentsStats(); // обновляем курсы валют Currency::model()->parseCbr(); } } else { $data['next_check_status'] = time() + self::TIME_UPDATE; Yii::app()->statePersister->save($data); self::checkStatusAd(); self::clearApartmentsStats(); } }
public function parseUrl($request) { if (issetModule('seo') && $this->parseReady === false && oreInstall::isInstalled()) { if (preg_match('#^([\\w-]+)#i', $request->pathInfo, $matches)) { $activeLangs = Lang::getActiveLangs(); $arr = array(); foreach ($activeLangs as $lang) { $arr[] = 'url_' . $lang . ' = :alias'; } $condition = '(' . implode(' OR ', $arr) . ')'; $seo = SeoFriendlyUrl::model()->find(array('condition' => 'direct_url = 1 AND ' . $condition, 'params' => array('alias' => $matches[1]))); if ($seo !== null) { foreach ($activeLangs as $lang) { $field = 'url_' . $lang; if ($seo->{$field} == $matches[1]) { setLangCookie($lang); Yii::app()->setLanguage($lang); //$_GET['lang'] = $lang; } } $_GET['url'] = $matches[1]; //$_GET['id'] = $seo->model_id; //Yii::app()->controller->seo = $seo; return 'infopages/main/view'; } } $this->parseReady = true; } return parent::parseUrl($request); }
protected function beforeAction($action) { if (oreInstall::isInstalled()) { throw404(); } $this->setLangInstall(); return parent::beforeAction($action); }
public function init() { $this->cachingTime = param('cachingTime', 5184000); // default caching for 60 days if (oreInstall::isInstalled()) { $this->loadConfig(); } }
public static function updateStatusAd() { if (Yii::app()->request->getIsAjaxRequest()) { return false; } if (!oreInstall::isInstalled()) { return false; } $data = Yii::app()->statePersister->load(); // Обновляем статусы 1 раз в сутки if (isset($data['next_check_status'])) { if ($data['next_check_status'] < time()) { $data['next_check_status'] = time() + self::TIME_UPDATE; Yii::app()->statePersister->save($data); if (issetModule('paidservices')) { self::checkStatusAd(); // обновляем курсы валют Currency::model()->parseCbr(); } self::clearDrafts(); self::clearApartmentsStats(); self::clearUsersSessions(); self::checkDateEndActivity(); self::deleteIPFromBlocklist(); } } else { $data['next_check_status'] = time() + self::TIME_UPDATE; Yii::app()->statePersister->save($data); if (issetModule('paidservices')) { self::checkStatusAd(); // обновляем курсы валют Currency::model()->parseCbr(); } self::clearDrafts(); self::clearApartmentsStats(); self::clearUsersSessions(); self::checkDateEndActivity(); self::deleteIPFromBlocklist(); } // Тарифные планы - 2 раза в сутки if (issetModule('tariffPlans') && issetModule('paidservices')) { if (isset($data['next_check_status_users_tariffs'])) { if ($data['next_check_status_users_tariffs'] < time()) { $data['next_check_status_users_tariffs'] = time() + self::TIME_UPDATE_TARIFF_PLANS; Yii::app()->statePersister->save($data); self::checkTariffPlansUsers(); } } else { $data['next_check_status_users_tariffs'] = time() + self::TIME_UPDATE_TARIFF_PLANS; Yii::app()->statePersister->save($data); self::checkTariffPlansUsers(); } } Yii::app()->cache->flush(); }
public static function cityInit() { $cityActive = array(); if (oreInstall::isInstalled()) { Yii::import('application.modules.apartmentCity.models.ApartmentCity'); $cityActive = ApartmentCity::getActiveCity(); if ($cityActive === null) { $cityActive = array(); } } return $cityActive; }
public static function getDefaultLang() { if (!oreInstall::isInstalled()) { return Yii::app()->language; } if (!isset(self::$_mainLang)) { $sql = "SELECT name_iso FROM {{lang}} WHERE active=1 AND main=1"; self::$_mainLang = Yii::app()->db->createCommand($sql)->queryScalar(); } return self::$_mainLang; }
public static function getActiveLangs($full = false, $requery = false) { if (!oreInstall::isInstalled()) { return array('ru', 'en', 'de'); } if (!isset(self::$_activeLangs) || $requery) { $sql = "SELECT id, name_iso, flag_img, main, name_" . Yii::app()->language . " AS name, name_rfc3066, currency_id\n FROM {{lang}}\n WHERE active=1\n ORDER BY sorter ASC"; $activeLangs = Yii::app()->db->createCommand($sql)->queryAll(); // Загружаем данные актвных языков и определяем главный ( дефолтный ) foreach ($activeLangs as $lang) { self::$_activeLangs[$lang['name_iso']] = $lang['name_iso']; self::$_activeLangsFull[$lang['name_iso']] = $lang; self::$_activeLangsTranslated[$lang['name_iso']] = $lang['name']; self::$_activeLangsTranslated[$lang['name_iso']] = $lang['name_rfc3066']; if ($lang['main']) { self::$_mainLang = $lang['name_iso']; } } } return $full ? self::$_activeLangsFull : self::$_activeLangs; }
<?php require_once dirname(__FILE__) . '/../helpers/common.php'; require_once dirname(__FILE__) . '/../helpers/strings.php'; Yii::setPathOfAlias('bootstrap', dirname(__FILE__) . '/../extensions/bootstrap'); Yii::setPathOfAlias('editable', dirname(__FILE__) . '/../extensions/x-editable'); $config = array('basePath' => dirname(__FILE__) . DIRECTORY_SEPARATOR . '..', 'name' => 'Open Real Estate PRO', 'sourceLanguage' => 'en', 'language' => 'en', 'theme' => 'classic', 'preload' => array('log', 'configuration'), 'onBeginRequest' => array('BeginRequest', 'updateStatusAd'), 'import' => array('editable.*', 'ext.eoauth.*', 'ext.eoauth.lib.*', 'ext.lightopenid.*', 'ext.eauth.*', 'ext.eauth.services.*', 'ext.eauth.custom_services.CustomGoogleService', 'ext.eauth.custom_services.CustomVKService', 'ext.eauth.custom_services.CustomFBService', 'ext.eauth.custom_services.CustomTwitterService', 'ext.eauth.custom_services.CustomMailruService', 'ext.setReturnUrl.ESetReturnUrlFilter', 'ext.idna.IdnaConvert', 'zii.behaviors.CTimestampBehavior', 'application.models.*', 'application.components.*', 'application.helpers.*', 'application.modules.configuration.components.*', 'application.modules.notifier.components.Notifier', 'application.modules.booking.models.*', 'application.modules.paidservices.models.*', 'application.modules.lang.models.Lang', 'application.modules.comments.models.Comment', 'application.modules.comments.models.CommentForm', 'application.modules.windowto.models.WindowTo', 'application.modules.apartments.models.*', 'application.modules.news.models.*', 'application.modules.blog.models.*', 'application.modules.metrostations.models.MetroStation', 'application.modules.slider.models.Slider', 'application.extensions.image.Image', 'application.modules.selecttoslider.models.SelectToSlider', 'application.modules.sitemap.models.Sitemap', 'application.modules.similarads.models.SimilarAds', 'application.modules.menumanager.models.Menu', 'application.modules.apartments.components.*', 'application.modules.apartmentCity.models.ApartmentCity', 'application.modules.apartmentObjType.models.ApartmentObjType', 'application.modules.translateMessage.models.TranslateMessage', 'application.modules.currency.models.Currency', 'application.components.behaviors.ERememberFiltersBehavior', 'application.modules.seo.models.*', 'application.modules.service.models.Service', 'application.modules.payment.models.*', 'application.modules.bookingcalendar.models.Bookingcalendar', 'application.modules.advertising.models.Advert', 'application.modules.socialauth.models.SocialauthModel', 'application.modules.antispam.components.MathCCaptchaAction', 'application.modules.antispam.components.jquerySimpleCCaptcha.SimpleCaptcha', 'application.modules.antispam.components.jQuerySimpleCCaptchaAction', 'application.modules.apartmentsComplain.models.ApartmentsComplain', 'application.modules.apartmentsComplain.models.ApartmentsComplainReason', 'application.modules.images.models.*', 'application.modules.images.components.*', 'application.modules.location.models.*', 'application.modules.yandexRealty.models.YandexRealty', 'application.modules.comparisonList.models.ComparisonList', 'application.modules.formdesigner.models.*', 'application.modules.articles.models.Article', 'application.modules.infopages.models.InfoPages', 'application.modules.socialposting.models.SocialpostingModel', 'application.modules.socialposting.components.*', 'application.modules.reviews.models.Reviews', 'application.modules.vacancy.models.Vacancy', 'application.modules.bookingtable.models.Bookingtable', 'application.modules.themes.models.Themes', 'application.components.oldbrowsers.CheckBrowser', 'application.modules.messages.components.BaseMessagesController', 'application.modules.messages.models.Mailing', 'application.modules.messages.models.Messages', 'application.modules.messages.models.MessagesFiles', 'application.modules.clients.models.Clients', 'application.modules.tariffPlans.models.*', 'application.modules.tariffPlans.components.*', 'application.modules.blockIp.models.BlockIp', 'application.modules.userprofile'), 'modules' => array('news', 'blog', 'referencecategories', 'referencevalues', 'apartments', 'apartmentObjType', 'apartmentCity', 'comments', 'booking', 'windowto', 'contactform', 'articles', 'usercpanel', 'users', 'quicksearch', 'configuration', 'timesin', 'timesout', 'adminpass', 'specialoffers', 'install', 'slider', 'selecttoslider', 'sitemap', 'similarads', 'menumanager', 'userads', 'lang', 'translateMessage', 'currency', 'seo', 'payment', 'paidservices', 'service', 'bookingcalendar', 'advertising', 'socialauth', 'antispam', 'rss', 'pricelist', 'images', 'apartmentsComplain', 'iecsv', 'formdesigner', 'location', 'yandexRealty', 'formeditor', 'comparisonList', 'guestad', 'infopages', 'notifier', 'socialposting', 'reviews', 'vacancy', 'bookingtable', 'modules', 'themes', 'messages', 'clients', 'rbac', 'tariffPlans', 'blockIp', 'userprofile', 'gii' => array('class' => 'system.gii.GiiModule', 'password' => 'admin1', 'ipFilters' => array('127.0.0.1', '::1'), 'generatorPaths' => array('bootstrap.gii'))), 'controllerMap' => array('min' => array('class' => 'ext.minScript.controllers.ExtMinScriptController')), 'components' => array('editable' => array('class' => 'editable.EditableConfig', 'form' => 'bootstrap', 'mode' => 'popup', 'defaults' => array('emptytext' => 'Click to edit')), 'loid' => array('class' => 'application.extensions.lightopenid.loid'), 'eauth' => array('class' => 'ext.eauth.EAuth', 'popup' => true), 'user' => array('class' => 'WebUser', 'allowAutoLogin' => true, 'loginUrl' => array('login')), 'authManager' => array('class' => 'PhpAuthManager', 'defaultRoles' => array('guest')), 'configuration' => array('class' => 'Configuration', 'cachingTime' => 0), 'cache' => array('class' => 'system.caching.CFileCache'), 'request' => array('class' => 'application.components.CustomHttpRequest'), 'urlManager' => array('urlFormat' => 'path', 'showScriptName' => false, 'class' => 'application.components.CustomUrlManager'), 'mailer' => array('class' => 'application.extensions.mailer.EMailer'), 'errorHandler' => array('errorAction' => 'site/error'), 'log' => array('class' => 'CLogRouter', 'routes' => array(array('class' => 'ext.yii-debug-toolbar.YiiDebugToolbarRoute', 'ipFilters' => array('127.0.0.1')))), 'messages' => array('class' => 'DbMessageSource', 'forceTranslation' => true, 'onMissingTranslation' => array('CustomEventHandler', 'handleMissingTranslation')), 'messagesInFile' => array('class' => 'CPhpMessageSource', 'forceTranslation' => true), 'bootstrap' => array('class' => 'bootstrap.components.Bootstrap')), 'params' => array('module_rss_itemsPerFeed' => 20, 'allowedImgExtensions' => array('jpg', 'jpeg', 'gif', 'png'), 'maxImgFileSize' => 8 * 1024 * 1024, 'minImgFileSize' => 5 * 1024, 'useLangPrefixIfOneLang' => 1, 'countListingsInComparisonList' => 6, 'searchMaxField' => 15, 'useMinify' => true, 'module_reviews_itemsPerPage' => 10, 'module_vacancy_itemsPerPage' => 10, 'genUrlWithID' => 0, 'qrcode_in_listing_view' => 1)); $addons['components'] = array('session' => array('class' => 'CDbHttpSession', 'connectionID' => 'db', 'sessionTableName' => '{{users_sessions}}', 'autoCreateSessionTable' => false), 'clientScript' => array('class' => 'ext.minScript.components.ExtMinScript', 'minScriptLmCache' => YII_DEBUG ? 0 : 3600, 'minScriptDisableMin' => array('/[-\\.]min\\.(?:js|css)$/i', '/bootstrap.js$/i', '/jquery.js$/i', '/ckeditor.js$/i', '/[-\\.]pack\\.(?:js|css)$/i'))); $addons['import'] = array('application.modules.configuration.models.ConfigurationModel', 'application.modules.rbac.components.*'); if (oreInstall::isInstalled()) { $config = CMap::mergeArray($config, $addons); } $db = (require dirname(__FILE__) . '/db.php'); if ($db === 1) { $db = array(); } return CMap::mergeArray($config, $db);
public static function isInstalled() { if (self::$isInstalled === null) { self::$isInstalled = file_exists(ALREADY_INSTALL_FILE); } return self::$isInstalled; }
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(); }
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(); }