throw new Exception('language.php must be included _after_ calling an instance of Lang class'); } // Memory if (!isset($mem) || !$mem instanceof Memory) { throw new Exception('language.php must be included _after_ calling an instance of Memory class'); } // View if (!isset($view) || !$view instanceof View) { throw new Exception('language.php must be included _after_ calling an instance of View class'); } $lang->handleGet($_GET); if ($lang->isMultiLang()) { // check every lang and raise exception if param is absent foreach ($lang->getAllLangs() as $lng) { $cfg->val('pages_' . $lng, true); } /* Page manager: $pages_<lang> ------------------------------------------------------------------------ */ $pmgr = PageMgr::getInstance($cfg->val('pages_' . $lang->getLang()), $loc->path('pages')); /* Memory: remember current language ------------------------------------------------------------------------ */ $mem->store('langdir', $lang->getLang() . DIRECTORY_SEPARATOR); /* View - set common variables ------------------------------------------------------------------------ */ $view->set('multilang', true); $view->set('curlang', $lang->getLang()); $view->set('lang_link_start', '?lang=' . $lang->getLang()); $view->set('lang_link_append', '&lang=' . $lang->getLang()); } else { $view->set('multilang', false); }
// Used for multi-language sites $lang->handleGet($_GET); if ($lang->isMultiLang()) { // Cfg::LANGUAGES might be empty foreach ($lang->getAllLangs() as $lng) { if (!defined('Cfg::MENUFILE_' . strtoupper($lng))) { throw new Exception('Parameter Cfg::MENUFILE_' . strtoupper($lng) . ' is not set'); } if (!property_exists('Cfg', 'pages_' . $lng)) { throw new Exception('Parameter Cfg::pages_' . $lng . ' is not set'); } if (!property_exists('Cfg', 'menu_categories_' . $lng)) { throw new Exception('Parameter Cfg::menu_categories_' . $lng . ' is not set'); } } // $pages_<lang> $pmgr = PageMgr::getInstance(Cfg::${'pages_' . $lang->getLang()}, Common::getAbsPath(Cfg::PAGES_PATH)); $catalog = CatalogFactory::createCatalogProvider(Cfg::$structure, Cfg::CATALOG_SOURCE_TYPE); // MENUFILE_<LANG> $menufile = constant('Cfg::MENUFILE_' . strtoupper($lang->getLang())); $catalog->loadSource(Common::getAbsPath($menufile)); $catalog->loadCategories(Cfg::${'menu_categories_' . $lang->getLang()}); // remember current language $mem->store('langdir', $lang->getLang() . DIRECTORY_SEPARATOR); $view->set('multilang', true); $view->set('curlang', $lang->getLang()); $view->set('lang_link_start', '?lang=' . $lang->getLang()); $view->set('lang_link_append', '&lang=' . $lang->getLang()); } else { $view->set('multilang', false); }
------------------------------------------------------------------------ */ $lang = new Lang(); if ($cfg->val('LANGUAGES')) { $lang->loadConfig($cfg->val('LANGUAGES')); require 'language.php'; } else { $mem->destroy('langdir'); $view->set('multilang', false); } // by default we always store templates under `ru/` // it won't override if already set smth different. $mem->tryStore('langdir', 'ru' . DIRECTORY_SEPARATOR); /* Page manager * Singleton since it might have been declared in language.php ------------------------------------------------------------------------ */ $pmgr = PageMgr::getInstance($cfg->val('pages_ru', true), $loc->path('pages')); /* Auth ------------------------------------------------------------------------ */ $auth = new Auth(); if ($cfg->val('AUTHMETHOD')) { $auth->setMethod($cfg->val('AUTHMETHOD')); $auth->setAuthList($cfg->val('auth_users')); switch ($cfg->val('AUTHMETHOD')) { case 'ldap': $auth->setLdapServer($cfg->val('AUTHSERVER', true)); $auth->setLdapShortDomain($cfg->val('AUTH_SHORT_DOMAIN', true)); $auth->setLdapFullDomain($cfg->val('AUTH_FULL_DOMAIN', true)); break; case 'htpasswd': $auth->setPasswdFile($cfg->val('AUTHFILE', true)); break;
$mail = MailerFactory::createMailerProvider(Cfg::MAILER_TYPE); $mail->setParams(Cfg::MAILER_WEBSERVICE, Cfg::WEBSERVICE_AUTH, Cfg::MAILER_ASYNC); // Database /* MySQL */ $dbdrv = Cfg::DBdriver; // $dbhost = Cfg::DBhost; // $dbname = Cfg::DBname; // $dbchar = Cfg::DBchar; // $dsn = "$dbdrv:host=$dbhost;dbname=$dbname;charset=$dbchar"; // $db = new Database($dbdrv, $dsn, Cfg::DBuser, Cfg::DBpass); // MySQL /* SQLite */ $dbfile = Cfg::DBfile; $dsn = "{$dbdrv}:{$dbfile}"; $db = new Database($dbdrv, $dsn); // Page manager as singleton (it might be declared in language.php) $pmgr = PageMgr::getInstance(Cfg::$pages, Common::getAbsPath(Cfg::PAGES_PATH)); // Staff module $staff = new Staff($db); // Results module $results = new QuarterResults($db); // DataSet module $dset = new DataSet(Common::getAbsPath(Cfg::DATASET1)); // Achivement calculation $calc = new Achievements(); // Auth $auth = new Auth(); $auth->setMethod(Cfg::AUTHMETHOD); $auth->setLdapServer(Cfg::AUTHSERVER); $auth->setLdapShortDomain(Cfg::AUTH_SHORT_DOMAIN); $auth->setLdapFullDomain(Cfg::AUTH_FULL_DOMAIN); $auth->setAuthList(Cfg::$auth_users);