/** * Affichage d'un article d'actualités. * */ public function newsItem($aMatches) { # module actuel $this->okt->page->module = 'news'; $this->okt->page->action = 'item'; # récupération de la page en fonction du slug if (!empty($aMatches[0])) { $sPostSlug = $aMatches[0]; } else { $this->serve404(); } # récupération de l'article $rsPost = $this->okt->news->getPost($sPostSlug, 1); if ($rsPost->isEmpty()) { $this->serve404(); } # is default route ? $bIsDefaultRoute = $this->isDefaultRoute(__CLASS__, __FUNCTION__, $sPostSlug); # permission de lecture ? if (!$this->okt->news->isPublicAccessible() || !$rsPost->isReadable()) { if ($this->okt->user->is_guest) { http::redirect(html::escapeHTML(usersHelpers::getLoginUrl($rsPost->url))); } else { $this->serve404(); } } # meta description if ($rsPost->meta_description != '') { $this->okt->page->meta_description = $rsPost->meta_description; } else { if ($this->okt->news->config->meta_description[$this->okt->user->language] != '') { $this->okt->page->meta_description = $this->okt->news->config->meta_description[$this->okt->user->language]; } else { $this->okt->page->meta_description = util::getSiteMetaDesc(); } } # meta keywords if ($rsPost->meta_keywords != '') { $this->okt->page->meta_keywords = $rsPost->meta_keywords; } else { if ($this->okt->news->config->meta_keywords[$this->okt->user->language] != '') { $this->okt->page->meta_keywords = $this->okt->news->config->meta_keywords[$this->okt->user->language]; } else { $this->okt->page->meta_keywords = util::getSiteMetaKeywords(); } } # title tag du module $this->okt->page->addTitleTag($this->okt->news->getTitle()); # début du fil d'ariane if (!$bIsDefaultRoute) { $this->okt->page->breadcrumb->add($this->okt->news->getName(), $this->okt->news->config->url); } # si les rubriques sont activées if ($this->okt->news->config->categories['enable'] && $rsPost->category_id) { # title tag de la rubrique $this->okt->page->addTitleTag($rsPost->category_title); # ajout de la hiérarchie des rubriques au fil d'ariane if (!$bIsDefaultRoute) { $rsPath = $this->okt->news->categories->getPath($rsPost->category_id, true, $this->okt->user->language); while ($rsPath->fetch()) { $this->okt->page->breadcrumb->add($rsPath->title, newsHelpers::getCategoryUrl($rsPath->slug)); } unset($rsPath); } } # title tag de la page $this->okt->page->addTitleTag($rsPost->title_tag == '' ? $rsPost->title : $rsPost->title_tag); # titre de la page $this->okt->page->setTitle($rsPost->title); # titre SEO de la page $this->okt->page->setTitleSeo($rsPost->title_seo); # fil d'ariane de la page if (!$bIsDefaultRoute) { $this->okt->page->breadcrumb->add($rsPost->title, $rsPost->url); } # affichage du template echo $this->okt->tpl->render($this->okt->news->getItemTplPath($rsPost->tpl, $rsPost->category_items_tpl), array('rsPost' => $rsPost)); }
# début Okatea : affichage des éventuelles erreurs if ($okt->error->notEmpty()) { ?> <div class="error_box"> <?php echo $okt->error->get(); ?> </div> <?php } # fin Okatea : affichage des éventuelles erreurs ?> <form id="login-form" class="userform" action="<?php echo html::escapeHTML(usersHelpers::getLoginUrl()); ?> " method="post"> <p class="field"><label for="user_id"><?php if ($okt->users->config->merge_username_email) { _e('c_c_Email'); } else { _e('c_c_user_Username'); } ?> </label> <input name="user_id" id="user_id" type="text" maxlength="225" value="<?php echo html::escapeHTML($user_id); ?> " /></p>
/** * Affichage de la page de profil utilisateur. * */ public function usersProfile() { # module actuel $this->okt->page->module = 'users'; $this->okt->page->action = 'profile'; # page désactivée ? if (!$this->okt->users->config->enable_profile_page) { $this->serve404(); } # invité non convié if ($this->okt->user->is_guest) { http::redirect(html::escapeHTML(usersHelpers::getLoginUrl(usersHelpers::getProfileUrl()))); } # données utilisateur $rsUser = $this->okt->users->getUser($this->okt->user->id); $aUserProfilData = array('id' => $this->okt->user->id, 'username' => $rsUser->username, 'email' => $rsUser->email, 'civility' => $rsUser->civility, 'lastname' => $rsUser->lastname, 'firstname' => $rsUser->firstname, 'language' => $rsUser->language, 'timezone' => $rsUser->timezone, 'password' => '', 'password_confirm' => ''); unset($rsUser); # Champs personnalisés $aPostedData = array(); $aFieldsValues = array(); if ($this->okt->users->config->enable_custom_fields) { $this->rsAdminFields = $this->okt->users->fields->getFields(array('status' => true, 'admin_editable' => true, 'language' => $this->okt->user->language)); # Liste des champs utilisateur $this->rsUserFields = $this->okt->users->fields->getFields(array('status' => true, 'user_editable' => true, 'language' => $this->okt->user->language)); # Valeurs des champs $rsFieldsValues = $this->okt->users->fields->getUserValues($this->okt->user->id); while ($rsFieldsValues->fetch()) { $aFieldsValues[$rsFieldsValues->field_id] = $rsFieldsValues->value; } # Initialisation des données des champs while ($this->rsUserFields->fetch()) { switch ($this->rsUserFields->type) { default: case 1: # Champ texte # Champ texte case 2: # Zone de texte $aPostedData[$this->rsUserFields->id] = !empty($_POST[$this->rsUserFields->html_id]) ? $_POST[$this->rsUserFields->html_id] : (!empty($aFieldsValues[$this->rsUserFields->id]) ? $aFieldsValues[$this->rsUserFields->id] : ''); break; case 3: # Menu déroulant $aPostedData[$this->rsUserFields->id] = isset($_POST[$this->rsUserFields->html_id]) ? $_POST[$this->rsUserFields->html_id] : (!empty($aFieldsValues[$this->rsUserFields->id]) ? $aFieldsValues[$this->rsUserFields->id] : ''); break; case 4: # Boutons radio $aPostedData[$this->rsUserFields->id] = isset($_POST[$this->rsUserFields->html_id]) ? $_POST[$this->rsUserFields->html_id] : (!empty($aFieldsValues[$this->rsUserFields->id]) ? $aFieldsValues[$this->rsUserFields->id] : ''); break; case 5: # Cases à cocher $aPostedData[$this->rsUserFields->id] = !empty($_POST[$this->rsUserFields->html_id]) && is_array($_POST[$this->rsUserFields->html_id]) ? $_POST[$this->rsUserFields->html_id] : (!empty($aFieldsValues[$this->rsUserFields->id]) ? $aFieldsValues[$this->rsUserFields->id] : ''); break; } } } # Suppression des cookies if (!empty($_REQUEST['cookies'])) { $aCookies = array_keys($_COOKIE); unset($aCookies[OKT_COOKIE_AUTH_NAME]); foreach ($aCookies as $c) { unset($_COOKIE[$c]); setcookie($c, null); } http::redirect(html::escapeHTML(usersHelpers::getProfileUrl())); } # Formulaire de changement de mot de passe if (!empty($_POST['change_password']) && $this->okt->checkPerm('change_password')) { $aUserProfilData['password'] = !empty($_POST['edit_password']) ? $_POST['edit_password'] : ''; $aUserProfilData['password_confirm'] = !empty($_POST['edit_password_confirm']) ? $_POST['edit_password_confirm'] : ''; $this->okt->users->changeUserPassword($aUserProfilData); http::redirect(html::escapeHTML(usersHelpers::getProfileUrl())); } # Formulaire de modification de l'utilisateur envoyé if (!empty($_POST['form_sent'])) { $aUserProfilData = array('id' => $this->okt->user->id, 'username' => isset($_POST['edit_username']) ? $_POST['edit_username'] : '', 'email' => isset($_POST['edit_email']) ? $_POST['edit_email'] : '', 'civility' => isset($_POST['edit_civility']) ? $_POST['edit_civility'] : '', 'lastname' => isset($_POST['edit_lastname']) ? $_POST['edit_lastname'] : '', 'firstname' => isset($_POST['edit_firstname']) ? $_POST['edit_firstname'] : '', 'language' => isset($_POST['edit_language']) ? $_POST['edit_language'] : '', 'timezone' => isset($_POST['edit_timezone']) ? $_POST['edit_timezone'] : ''); if ($this->okt->users->config->merge_username_email) { $aUserProfilData['username'] = $aUserProfilData['email']; } # peuplement et vérification des champs personnalisés obligatoires if ($this->okt->users->config->enable_custom_fields) { $this->okt->users->fields->getPostData($this->rsUserFields, $aPostedData); } if ($this->okt->users->updUser($aUserProfilData)) { # -- CORE TRIGGER : adminModUsersProfileProcess $this->okt->triggers->callTrigger('adminModUsersProfileProcess', $this->okt, $_POST); if ($this->okt->users->config->enable_custom_fields) { while ($this->rsUserFields->fetch()) { $this->okt->users->fields->setUserValues($this->okt->user->id, $this->rsUserFields->id, $aPostedData[$this->rsUserFields->id]); } } http::redirect(html::escapeHTML(usersHelpers::getProfileUrl())); } } # fuseaux horraires $aTimezone = dt::getZones(true, true); # langues $aLanguages = $this->getLanguages(); # title tag $this->okt->page->addTitleTag(__('c_c_user_profile')); # titre de la page $this->okt->page->setTitle(__('c_c_user_profile')); # titre SEO de la page $this->okt->page->setTitleSeo(__('c_c_user_profile')); # fil d'ariane if (!$this->isDefaultRoute(__CLASS__, __FUNCTION__)) { $this->okt->page->breadcrumb->add(__('c_c_user_profile'), usersHelpers::getProfileUrl()); } # affichage du template echo $this->okt->tpl->render($this->okt->users->getProfileTplPath(), array('aUserProfilData' => $aUserProfilData, 'aTimezone' => $aTimezone, 'aLanguages' => $aLanguages, 'aCivilities' => $this->getCivities(false), 'rsAdminFields' => $this->rsAdminFields, 'rsUserFields' => $this->rsUserFields, 'aPostedData' => $aPostedData, 'aFieldsValues' => $aFieldsValues)); }
/** * Retourne l'URL de la page de connexion en fonction de la configuration. * * @param string $sRedirectUrl * @return string * @deprecated */ public function getLoginUrl($sRedirectUrl = null) { return usersHelpers::getLoginUrl($sRedirectUrl); }
<?php } else { ?> <p> <?php _e('c_c_user_hello_you_are_not_logged'); ?> <?php # début Okatea : lien page connexion if ($okt->users->config->enable_login_page) { ?> - <a href="<?php echo html::escapeHTML(usersHelpers::getLoginUrl($okt->config->self_uri)); ?> "><?php _e('c_c_auth_login'); ?> </a> <?php } # fin Okatea : lien page connexion ?> <?php # début Okatea : lien page inscription if ($okt->users->config->enable_register_page) { ?> - <a href="<?php