/** * Set locale * It will require the correct file and init the needed vars * * @param string $language The language to load. */ public static function setLocale($language) { trigger_error('Backend\\Core\\Engine\\Language is deprecated. It has been moved to Backend\\Core\\Language\\Language', E_USER_DEPRECATED); parent::setLocale($language); }
/** * Set the locale */ private function setLocale() { $default = $this->get('fork.settings')->get('Core', 'default_interface_language'); $locale = $default; $possibleLocale = array_keys(BackendLanguage::getInterfaceLanguages()); // is the user authenticated if (Authentication::getUser()->isAuthenticated()) { $locale = Authentication::getUser()->getSetting('interface_language', $default); } elseif (CommonCookie::exists('interface_language')) { // no authenticated user, but available from a cookie $locale = CommonCookie::get('interface_language'); } // validate if the requested locale is possible if (!in_array($locale, $possibleLocale)) { $locale = $default; } BackendLanguage::setLocale($locale); }
/** * Set language * * @param string $value The language to load. * * @throws Exception */ public function setLanguage($value) { // get the possible languages $possibleLanguages = BackendLanguage::getWorkingLanguages(); // validate if (!array_key_exists($value, $possibleLanguages)) { throw new Exception('Invalid language.'); } // set property $this->language = $value; // set the locale (we need this for the labels) BackendLanguage::setLocale($this->language); // set working language BackendLanguage::setWorkingLanguage($this->language); }
/** * Install the module. */ public function install() { // load install.sql $this->importSQL(__DIR__ . '/Data/install.sql'); // add 'profiles' as a module $this->addModule('Profiles'); // import locale $this->importLocale(__DIR__ . '/Data/locale.xml'); // general settings $this->setSetting('Profiles', 'allow_gravatar', true); $this->setSetting('Profiles', 'overwrite_profile_notification_email', false); $this->setSetting('Profiles', 'profile_notification_email', null); $this->setSetting('Profiles', 'send_mail_for_new_profile_to_admin', false); $this->setSetting('Profiles', 'send_mail_for_new_profile_to_profile', false); // add folders $filesystem = new Filesystem(); $filesystem->mkdir(PATH_WWW . '/src/Frontend/Files/Profiles/avatars/source/'); $filesystem->mkdir(PATH_WWW . '/src/Frontend/Files/Profiles/avatars/240x240/'); $filesystem->mkdir(PATH_WWW . '/src/Frontend/Files/Profiles/avatars/64x64/'); $filesystem->mkdir(PATH_WWW . '/src/Frontend/Files/Profiles/avatars/32x32/'); // module rights $this->setModuleRights(1, 'Profiles'); // action rights $this->setActionRights(1, 'Profiles', 'Add'); $this->setActionRights(1, 'Profiles', 'AddGroup'); $this->setActionRights(1, 'Profiles', 'AddProfileGroup'); $this->setActionRights(1, 'Profiles', 'Block'); $this->setActionRights(1, 'Profiles', 'DeleteGroup'); $this->setActionRights(1, 'Profiles', 'DeleteProfileGroup'); $this->setActionRights(1, 'Profiles', 'Delete'); $this->setActionRights(1, 'Profiles', 'EditGroup'); $this->setActionRights(1, 'Profiles', 'EditProfileGroup'); $this->setActionRights(1, 'Profiles', 'Edit'); $this->setActionRights(1, 'Profiles', 'ExportTemplate'); $this->setActionRights(1, 'Profiles', 'Groups'); $this->setActionRights(1, 'Profiles', 'Import'); $this->setActionRights(1, 'Profiles', 'Index'); $this->setActionRights(1, 'Profiles', 'MassAction'); // set navigation $navigationModulesId = $this->setNavigation(null, 'Modules'); $navigationProfilesId = $this->setNavigation($navigationModulesId, 'Profiles'); $this->setNavigation($navigationProfilesId, 'Overview', 'profiles/index', array('profiles/add', 'profiles/edit', 'profiles/add_profile_group', 'profiles/edit_profile_group', 'profiles/import')); $this->setNavigation($navigationProfilesId, 'Groups', 'profiles/groups', array('profiles/add_group', 'profiles/edit_group')); // settings navigation $navigationSettingsId = $this->setNavigation(null, 'Settings'); $navigationModulesId = $this->setNavigation($navigationSettingsId, 'Modules'); $this->setNavigation($navigationModulesId, 'Profiles', 'profiles/settings'); // add extra $activateId = $this->insertExtra('Profiles', ModuleExtraType::block(), 'Activate', 'Activate', null, 'N', 5000); $forgotPasswordId = $this->insertExtra('Profiles', ModuleExtraType::block(), 'ForgotPassword', 'ForgotPassword', null, 'N', 5001); $indexId = $this->insertExtra('Profiles', ModuleExtraType::block(), 'Dashboard', null, null, 'N', 5002); $loginId = $this->insertExtra('Profiles', ModuleExtraType::block(), 'Login', 'Login', null, 'N', 5003); $logoutId = $this->insertExtra('Profiles', ModuleExtraType::block(), 'Logout', 'Logout', null, 'N', 5004); $changeEmailId = $this->insertExtra('Profiles', ModuleExtraType::block(), 'ChangeEmail', 'ChangeEmail', null, 'N', 5005); $changePasswordId = $this->insertExtra('Profiles', ModuleExtraType::block(), 'ChangePassword', 'ChangePassword', null, 'N', 5006); $settingsId = $this->insertExtra('Profiles', ModuleExtraType::block(), 'Settings', 'Settings', null, 'N', 5007); $registerId = $this->insertExtra('Profiles', ModuleExtraType::block(), 'Register', 'Register', null, 'N', 5008); $resetPasswordId = $this->insertExtra('Profiles', ModuleExtraType::block(), 'ResetPassword', 'ResetPassword', null, 'N', 5008); $resendActivationId = $this->insertExtra('Profiles', ModuleExtraType::block(), 'ResendActivation', 'ResendActivation', null, 'N', 5009); $this->insertExtra('Profiles', ModuleExtraType::widget(), 'LoginBox', 'LoginBox', null, 'N', 5010); $this->insertExtra('Profiles', ModuleExtraType::widget(), 'LoginLink', 'LoginLink', null, 'N', 5011); $this->insertExtra('Profiles', ModuleExtraType::widget(), 'SecurePage', 'SecurePage', null, 'N', 5012); // get search widget id $searchId = (int) $this->getDB()->getVar('SELECT id FROM modules_extras WHERE module = ? AND action = ?', array('search', 'form')); $originalLocale = Language::getInterfaceLanguage(); // loop languages foreach ($this->getLanguages() as $language) { // only add pages if profiles isn't linked anywhere // @todo refactor me, syntax sucks atm if (!(bool) $this->getDB()->getVar('SELECT 1 FROM pages AS p INNER JOIN pages_blocks AS b ON b.revision_id = p.revision_id INNER JOIN modules_extras AS e ON e.id = b.extra_id WHERE e.module = ? AND p.language = ? LIMIT 1', array('Profiles', $language))) { // We must define the locale we want to insert the page into Language::setLocale($language); // activate page $this->insertPage(array('title' => ucfirst(Language::lbl('Activate')), 'type' => 'root', 'language' => $language), null, array('extra_id' => $activateId, 'position' => 'main'), array('extra_id' => $searchId, 'position' => 'top')); // forgot password page $this->insertPage(array('title' => ucfirst(Language::lbl('ForgotPassword')), 'type' => 'root', 'language' => $language), null, array('extra_id' => $forgotPasswordId, 'position' => 'main'), array('extra_id' => $searchId, 'position' => 'top')); // reset password page $this->insertPage(array('title' => ucfirst(Language::lbl('ResetPassword')), 'type' => 'root', 'language' => $language), null, array('extra_id' => $resetPasswordId, 'position' => 'main'), array('extra_id' => $searchId, 'position' => 'top')); // resend activation email page $this->insertPage(array('title' => ucfirst(Language::lbl('ResendActivation')), 'type' => 'root', 'language' => $language), null, array('extra_id' => $resendActivationId, 'position' => 'main'), array('extra_id' => $searchId, 'position' => 'top')); // login page $this->insertPage(array('title' => ucfirst(Language::lbl('Login')), 'type' => 'root', 'language' => $language), null, array('extra_id' => $loginId, 'position' => 'main'), array('extra_id' => $searchId, 'position' => 'top')); // register page $this->insertPage(array('title' => ucfirst(Language::lbl('Register')), 'type' => 'root', 'language' => $language), null, array('extra_id' => $registerId, 'position' => 'main'), array('extra_id' => $searchId, 'position' => 'top')); // logout page $this->insertPage(array('title' => ucfirst(Language::lbl('Logout')), 'type' => 'root', 'language' => $language), null, array('extra_id' => $logoutId, 'position' => 'main'), array('extra_id' => $searchId, 'position' => 'top')); // index page $indexPageId = $this->insertPage(array('title' => ucfirst(Language::lbl('Profile')), 'type' => 'root', 'language' => $language), null, array('extra_id' => $indexId, 'position' => 'main'), array('extra_id' => $searchId, 'position' => 'top')); // settings page $this->insertPage(array('title' => ucfirst(Language::lbl('ProfileSettings')), 'parent_id' => $indexPageId, 'language' => $language), null, array('extra_id' => $settingsId, 'position' => 'main'), array('extra_id' => $searchId, 'position' => 'top')); // change email page $this->insertPage(array('title' => ucfirst(Language::lbl('ChangeEmail')), 'parent_id' => $indexPageId, 'language' => $language), null, array('extra_id' => $changeEmailId, 'position' => 'main'), array('extra_id' => $searchId, 'position' => 'top')); // change password page $this->insertPage(array('title' => ucfirst(Language::lbl('ChangePassword')), 'parent_id' => $indexPageId, 'language' => $language), null, array('extra_id' => $changePasswordId, 'position' => 'main'), array('extra_id' => $searchId, 'position' => 'top')); } } // restore the original locale if (!empty($originalLocale)) { Language::setLocale($originalLocale); } }
/** * Do authentication stuff * This method could end the script by throwing an exception */ private function validateLogin() { // check if the user is logged on, if not he shouldn't load any JS-file if (!Authentication::isLoggedIn()) { throw new Exception('Not logged in.'); } // set interface language BackendLanguage::setLocale(Authentication::getUser()->getSetting('interface_language')); }