$okt->faq->filtersStart(); # ré-initialisation filtres if (!empty($_GET['init_filters'])) { $okt->faq->filters->initFilters(); http::redirect($okt->faq->config->url); } # paramètres personnalisés if (!empty($aFaqCustomParams) && is_array($aFaqCustomParams)) { $aFaqParams = array_merge($aFaqParams, $aFaqCustomParams); } # initialisation des filtres $okt->faq->filters->setQuestionsParams($aFaqParams); $okt->faq->filters->getFilters(); # initialisation de la pagination $iNumFilteredQuestions = $okt->faq->getQuestions($aFaqParams, true); $oFaqPager = new publicPager($okt->faq->filters->params->page, $iNumFilteredQuestions, $okt->faq->filters->params->nb_per_page); $iNumPages = $oFaqPager->getNbPages(); $okt->faq->filters->normalizePage($iNumPages); $aFaqParams['limit'] = ($okt->faq->filters->params->page - 1) * $okt->faq->filters->params->nb_per_page . ',' . $okt->faq->filters->params->nb_per_page; # récupération des questions $faqList = $okt->faq->getQuestions($aFaqParams); $count_line = 0; while ($faqList->fetch()) { $faqList->odd_even = $count_line % 2 == 0 ? 'even' : 'odd'; $count_line++; $faqList->url = $faqList->getQuestionUrl(); if (!$okt->faq->config->enable_rte) { $faqList->content = util::nlToP($faqList->content); } if ($okt->faq->config->public_truncat_char > 0) { $faqList->content = html::clean($faqList->content);
/** * Affichage de la liste des articles d'une rubrique. * */ public function newsCategory($aMatches) { # module actuel $this->okt->page->module = 'news'; $this->okt->page->action = 'category'; # si les rubriques ne sont pas actives -> 404 if (!$this->okt->news->config->categories['enable']) { $this->serve404(); } # récupération de la rubrique en fonction du slug if (!empty($aMatches[0])) { $sCategorySlug = $aMatches[0]; } else { $this->serve404(); } # récupération de la rubrique $rsCategory = $this->okt->news->categories->getCategories(array('active' => 1, 'language' => $this->okt->user->language, 'slug' => $sCategorySlug)); if ($rsCategory->isEmpty()) { $this->serve404(); } # permission de lecture ? if (!$this->okt->news->isPublicAccessible()) { if ($this->okt->user->is_guest) { http::redirect(html::escapeHTML(usersHelpers::getLoginUrl(newsHelpers::getCategoryUrl($rsCategory->slug)))); } else { $this->serve404(); } } # is default route ? $bIsDefaultRoute = $this->isDefaultRoute(__CLASS__, __FUNCTION__, $sCategorySlug); # formatage description rubrique if (!$this->okt->news->config->categories['rte']) { $rsCategory->content = util::nlToP($rsCategory->content); } # initialisation paramètres $aNewsParams = array('active' => 1, 'language' => $this->okt->user->language, 'category_id' => $rsCategory->id); # initialisation des filtres $this->okt->news->filtersStart('public'); # ré-initialisation filtres if (!empty($_GET['init_news_filters'])) { $this->okt->news->filters->initFilters(); http::redirect($this->okt->news->config->url); } # initialisation des filtres $this->okt->news->filters->setPostsParams($aNewsParams); $this->okt->news->filters->getFilters(); # initialisation de la pagination $iNumFilteredPosts = $this->okt->news->getPostsCount($aNewsParams); $oNewsPager = new publicPager($this->okt->news->filters->params->page, $iNumFilteredPosts, $this->okt->news->filters->params->nb_per_page); $iNumPages = $oNewsPager->getNbPages(); $this->okt->news->filters->normalizePage($iNumPages); $aNewsParams['limit'] = ($this->okt->news->filters->params->page - 1) * $this->okt->news->filters->params->nb_per_page . ',' . $this->okt->news->filters->params->nb_per_page; # récupération des articles $rsPostsList = $this->okt->news->getPosts($aNewsParams); # meta description if (!empty($rsCategory->meta_description)) { $this->okt->page->meta_description = $rsCategory->meta_description; } elseif (!empty($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 (!empty($rsCategory->meta_keywords)) { $this->okt->page->meta_keywords = $rsCategory->meta_keywords; } elseif (!empty($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(); } # ajout du numéro de page au title if ($this->okt->news->filters->params->page > 1) { $this->okt->page->addTitleTag(sprintf(__('c_c_Page_%s'), $this->okt->news->filters->params->page)); } # title tag $this->okt->page->addTitleTag(!empty($rsCategory->title_tag) ? $rsCategory->title_tag : $rsCategory->title); # fil d'ariane if (!$bIsDefaultRoute) { $this->okt->page->breadcrumb->add($this->okt->news->getName(), $this->okt->news->config->url); # ajout de la hiérarchie des rubriques au fil d'ariane $rsPath = $this->okt->news->categories->getPath($rsCategory->id, true, $this->okt->user->language); while ($rsPath->fetch()) { $this->okt->page->breadcrumb->add($rsPath->title, newsHelpers::getCategoryUrl($rsPath->slug)); } } # titre de la page $this->okt->page->setTitle($rsCategory->title); # titre SEO de la page $this->okt->page->setTitleSeo($rsCategory->title_seo); # raccourcis $rsPostsList->numPages = $iNumPages; $rsPostsList->pager = $oNewsPager; # affichage du template echo $this->okt->tpl->render($this->okt->news->getCategoryTplPath($rsCategory->tpl), array('rsPostsList' => $rsPostsList, 'rsCategory' => $rsCategory)); }
} $mail_body .= 'Cordialement' . PHP_EOL . PHP_EOL . '--' . PHP_EOL . 'Email automatique,' . PHP_EOL . 'ne repondez pas à ce message'; $oMail->message->setBody($mail_body); $dests = array_map('trim', explode(',', $okt->guestbook->config->emails_list)); $oMail->message->setTo($dests); $oMail->send(); } http::redirect($okt->guestbook->config->url . '?added=1'); } } } # signatures à afficher $aGuestbookParams = array('is_not_spam' => true, 'is_visible' => true, 'language' => $okt->user->language); # initialisation de la pagination $iPage = !empty($_GET['page']) ? intval($_GET['page']) : 1; $oGuestbookPager = new publicPager($iPage, $okt->guestbook->getSig($aGuestbookParams, true), $okt->guestbook->config->nbparpage_public); $iNumPages = $oGuestbookPager->getNbPages(); # récupération des signatures $aGuestbookParams['limit'] = ($iPage - 1) * $okt->guestbook->config->nbparpage_public . ',' . $okt->guestbook->config->nbparpage_public; $signaturesList = $okt->guestbook->getSig($aGuestbookParams); $aLanguages = array(); foreach ($okt->languages->list as $aLanguage) { if (isset($okt->guestbook->config->public_url[$aLanguage['title']])) { $aLanguages[$aLanguage['title']] = $aLanguage['title']; } } # formatage des données $num_sig = 0; while ($signaturesList->fetch()) { $signaturesList->number = ++$num_sig; # note
/** * Affichage de la liste des produits d'une rubrique. * */ public function catalogCategory($aMatches) { # si les rubriques ne sont pas actives -> 404 if (!$this->okt->catalog->config->categories_enable) { $this->serve404(); } # module actuel $this->okt->page->module = 'catalog'; $this->okt->page->action = 'category'; # récupération de la rubrique en fonction du slug if (!empty($aMatches[0])) { $slug = $aMatches[0]; } else { $this->serve404(); } $rsCategory = $this->okt->catalog->getCategories(array('slug' => $slug, 'visibility' => 1)); if ($rsCategory->isEmpty()) { $this->serve404(); } # route par défaut ? $bIsDefaultRoute = $this->isDefaultRoute(__CLASS__, __FUNCTION__, $slug); # initialisation des paramètres $aProductsParams = array('visibility' => 1, 'category_id' => $rsCategory->id); # initialisation des filtres $this->okt->catalog->filtersStart(); # ré-initialisation filtres if (!empty($_GET['catalog_init_filters'])) { $this->okt->catalog->filters->initFilters(); http::redirect($this->okt->catalog->config->url); } # initialisation des filtres $this->okt->catalog->filters->setCatalogParams($aProductsParams); $this->okt->catalog->filters->getFilters(); # initialisation de la pagination $num_filtered_products = $this->okt->catalog->getProds($aProductsParams, true); $oProductsPager = new publicPager($this->okt->catalog->filters->params->page, $num_filtered_products, $this->okt->catalog->filters->params->nb_per_page); $iNumPages = $oProductsPager->getNbPages(); $this->okt->catalog->filters->normalizePage($iNumPages); $aProductsParams['limit'] = ($this->okt->catalog->filters->params->page - 1) * $this->okt->catalog->filters->params->nb_per_page . ',' . $this->okt->catalog->filters->params->nb_per_page; # récupération des produits $productsList = $this->okt->catalog->getProds($aProductsParams); $count_line = 0; while ($productsList->fetch()) { $productsList->odd_even = $count_line % 2 == 0 ? 'even' : 'odd'; $count_line++; $productsList->url = $productsList->getProductUrl(); if (!$this->okt->catalog->config->rte_enable) { $productsList->content = util::nlToP($productsList->content); } if ($this->okt->catalog->config->public_truncat_char > 0) { $productsList->content = html::clean($productsList->content); $productsList->content = text::cutString($productsList->content, $this->okt->catalog->config->public_truncat_char); } $productsList->category_url = $productsList->getCategoryUrl(); } # meta description if ($this->okt->catalog->config->meta_description != '') { $this->okt->page->meta_description = $this->okt->catalog->config->meta_description; } else { $this->okt->page->meta_description = util::getSiteMetaDesc(); } # meta keywords if ($this->okt->catalog->config->meta_keywords != '') { $this->okt->page->meta_keywords = $this->okt->catalog->config->meta_keywords; } else { $this->okt->page->meta_keywords = util::getSiteMetaKeywords(); } # ajout du numéro de page au title if ($this->okt->catalog->filters->params->page > 1) { $this->okt->page->addTitleTag(sprintf(__('c_c_Page_%s'), $this->okt->catalog->filters->params->page)); } # title tag du module $this->okt->page->addTitleTag($this->okt->catalog->getTitle()); # fil d'ariane if (!$bIsDefaultRoute) { $this->okt->page->breadcrumb->add($this->okt->catalog->getName(), $this->okt->catalog->config->url); $rsPath = $this->okt->catalog->getPath($rsCategory->id, true); while ($rsPath->fetch()) { $this->okt->page->addTitleTag($rsPath->name); $this->okt->page->breadcrumb->add($rsPath->name, $this->okt->page->getBaseUrl() . $this->okt->catalog->config->public_catalog_url . '/' . $rsPath->slug); } } # titre de la page $this->okt->page->setTitle($rsCategory->name); # titre SEO de la page $this->okt->page->setTitleSeo($rsCategory->name); # raccourcis $productsList->numPages = $iNumPages; $productsList->pager = $oProductsPager; # affichage du template echo $this->okt->tpl->render('catalog_list_tpl', array('productsList' => $productsList, 'rsCategory' => $rsCategory)); }
/** * Affichage de la liste des questions. * */ public function faqList() { # module actuel $this->okt->page->module = 'faq'; $this->okt->page->action = 'list_questions'; # paramètres de base de selection des articles $aFaqParams = array('visibility' => 1, 'language' => $this->okt->user->language); # initialisation des filtres $this->okt->faq->filtersStart(); # ré-initialisation filtres if (!empty($_GET['init_filters'])) { $this->okt->faq->filters->initFilters(); http::redirect($this->okt->faq->config->url); } # initialisation des filtres $this->okt->faq->filters->setQuestionsParams($aFaqParams); $this->okt->faq->filters->getFilters(); # initialisation de la pagination $iNumFilteredQuestions = $this->okt->faq->getQuestions($aFaqParams, true); $oFaqPager = new publicPager($this->okt->faq->filters->params->page, $iNumFilteredQuestions, $this->okt->faq->filters->params->nb_per_page); $iNumPages = $oFaqPager->getNbPages(); $this->okt->faq->filters->normalizePage($iNumPages); $aFaqParams['limit'] = ($this->okt->faq->filters->params->page - 1) * $this->okt->faq->filters->params->nb_per_page . ',' . $this->okt->faq->filters->params->nb_per_page; # récupération des questions $faqList = $this->okt->faq->getQuestions($aFaqParams); $count_line = 0; while ($faqList->fetch()) { $faqList->odd_even = $count_line % 2 == 0 ? 'even' : 'odd'; $count_line++; $faqList->url = $faqList->getQuestionUrl(); if (!$this->okt->faq->config->enable_rte) { $faqList->content = util::nlToP($faqList->content); } if ($this->okt->faq->config->public_truncat_char > 0) { $faqList->content = html::clean($faqList->content); $faqList->content = text::cutString($faqList->content, $this->okt->faq->config->public_truncat_char); } } unset($count_line); # fil d'ariane if (!$this->isDefaultRoute(__CLASS__, __FUNCTION__)) { $this->okt->page->breadcrumb->add($this->okt->faq->getName(), $this->okt->faq->config->url); } # ajout du numéro de page au title if ($this->okt->faq->filters->params->page > 1) { $this->okt->page->addTitleTag(sprintf(__('c_c_Page_%s'), $this->okt->faq->filters->params->page)); } # title tag du module $this->okt->page->addTitleTag($this->okt->faq->getTitle()); # titre de la page $this->okt->page->setTitle($this->okt->faq->getName()); # titre SEO de la page $this->okt->page->setTitleSeo($this->okt->faq->getNameSeo()); # raccourcis $faqList->numPages = $iNumPages; $faqList->pager = $oFaqPager; # affichage du template if ($this->okt->faq->config->enable_categories) { $sTemplatename = 'faq_list_questions_with_categories_tpl'; } else { $sTemplatename = 'faq_list_questions_tpl'; } echo $this->okt->tpl->render($sTemplatename, array('faqList' => $faqList)); }
/** * Affichage de la page guestbook. * */ public function guestbookPage() { # module actuel $this->okt->page->module = 'guestbook'; $this->okt->page->action = 'list'; # -- CORE TRIGGER : publicModuleGuestbookControllerStart $this->okt->triggers->callTrigger('publicModuleGuestbookControllerStart', $this->okt, $this->okt->guestbook->config->captcha); $aSigData = array('language' => $this->okt->user->language, 'message' => '', 'nom' => '', 'email' => '', 'url' => 'http://', 'note' => 'nc'); # formulaire envoyé if (!empty($_POST['sign'])) { $aSigData = array('language' => isset($_POST['language']) ? $_POST['language'] : $this->okt->user->language, 'message' => isset($_POST['msg']) ? $_POST['msg'] : null, 'nom' => isset($_POST['nom']) ? $_POST['nom'] : null, 'email' => isset($_POST['email']) ? $_POST['email'] : null, 'url' => isset($_POST['url']) ? $_POST['url'] : 'http://', 'note' => isset($_POST['note']) ? $_POST['note'] : null, 'ip' => http::realIP(), 'visible' => $this->okt->guestbook->config->validation ? 0 : 1); $aSigData = $this->okt->guestbook->handleUserData($aSigData); # -- CORE TRIGGER : publicModuleGuestbookControllerFormCheckValues $this->okt->triggers->callTrigger('publicModuleGuestbookControllerFormCheckValues', $this->okt, $this->okt->guestbook->config->captcha); if (!$this->okt->error->hasError()) { if ($this->okt->guestbook->addSig($aSigData)) { if ($this->okt->guestbook->config->emails_list != '') { $oMail = new oktMail($this->okt); $oMail->setFrom(); $oMail->message->setSubject('Nouveau message sur le livre d’or de ' . util::getSiteTitle()); $mail_body = 'Bonjour,' . "\n\n" . 'Un utilisateur a laissé un nouveau message ' . 'sur le livre d’or de "' . util::getSiteTitle() . '".' . "\n\n"; if ($this->okt->guestbook->config->validation) { $mail_body .= 'Ce nouveau message peut être validé ' . 'en vous rendant sur l’administration.' . "\n\n"; } $mail_body .= 'Cordialement' . PHP_EOL . PHP_EOL . '--' . PHP_EOL . 'Email automatique,' . PHP_EOL . 'ne repondez pas à ce message'; $oMail->message->setBody($mail_body); $dests = array_map('trim', explode(',', $this->okt->guestbook->config->emails_list)); $oMail->message->setTo($dests); $oMail->send(); } http::redirect($this->okt->guestbook->config->url . '?added=1'); } } } # signatures à afficher $aGuestbookParams = array('is_not_spam' => true, 'is_visible' => true, 'language' => $this->okt->user->language); # initialisation de la pagination $iPage = !empty($_GET['page']) ? intval($_GET['page']) : 1; $oGuestbookPager = new publicPager($iPage, $this->okt->guestbook->getSig($aGuestbookParams, true), $this->okt->guestbook->config->nbparpage_public); $iNumPages = $oGuestbookPager->getNbPages(); # récupération des signatures $aGuestbookParams['limit'] = ($iPage - 1) * $this->okt->guestbook->config->nbparpage_public . ',' . $this->okt->guestbook->config->nbparpage_public; $signaturesList = $this->okt->guestbook->getSig($aGuestbookParams); $aLanguages = array(); foreach ($this->okt->languages->list as $aLanguage) { if (isset($this->okt->guestbook->config->public_url[$aLanguage['code']])) { $aLanguages[$aLanguage['title']] = $aLanguage['code']; } } # formatage des données $num_sig = 0; while ($signaturesList->fetch()) { $signaturesList->number = ++$num_sig; # note if ($this->okt->guestbook->config->chp_note) { if (!is_numeric($signaturesList->note)) { $signaturesList->note = 'nc'; } else { $signaturesList->note = ceil($signaturesList->note) . '/20'; } } else { $signaturesList->note = null; } } # meta description if ($this->okt->guestbook->config->meta_description[$this->okt->user->language] != '') { $this->okt->page->meta_description = $this->okt->guestbook->config->meta_description[$this->okt->user->language]; } else { $this->okt->page->meta_description = util::getSiteMetaDesc(); } # meta keywords if ($this->okt->guestbook->config->meta_keywords[$this->okt->user->language] != '') { $this->okt->page->meta_keywords = $this->okt->guestbook->config->meta_keywords[$this->okt->user->language]; } else { $this->okt->page->meta_keywords = util::getSiteMetaKeywords(); } # ajout du numéro de page au title if ($iPage > 1) { $this->okt->page->addTitleTag(sprintf(__('c_c_Page_%s'), $iPage)); } # title tag $this->okt->page->addTitleTag($this->okt->guestbook->getTitle()); # titre de la page $this->okt->page->setTitle($this->okt->guestbook->getName()); # titre SEO de la page $this->okt->page->setTitleSeo($this->okt->guestbook->getNameSeo()); # fil d'ariane de la page if (!$this->isDefaultRoute(__CLASS__, __FUNCTION__)) { $this->okt->page->breadcrumb->add($this->okt->guestbook->getName(), $this->okt->guestbook->config->url); } # raccourcis $signaturesList->numPages = $iNumPages; $signaturesList->pager = $oGuestbookPager; # affichage du template echo $this->okt->tpl->render('guestbook_tpl', array('aSigData' => $aSigData, 'signaturesList' => $signaturesList, 'aLanguages' => $aLanguages)); }
$okt->catalog->filtersStart(); # ré-initialisation filtres if (!empty($_GET['catalog_init_filters'])) { $okt->catalog->filters->initFilters(); http::redirect($okt->catalog->config->url); } # paramètres personnalisés if (!empty($aProductsCustomParams) && is_array($aProductsCustomParams)) { $aProductsParams = array_merge($aProductsParams, $aProductsCustomParams); } # initialisation des filtres $okt->catalog->filters->setCatalogParams($aProductsParams); $okt->catalog->filters->getFilters(); # initialisation de la pagination $num_filtered_products = $okt->catalog->getProds($aProductsParams, true); $oProductsPager = new publicPager($okt->catalog->filters->params->page, $num_filtered_products, $okt->catalog->filters->params->nb_per_page); $iNumPages = $oProductsPager->getNbPages(); $okt->catalog->filters->normalizePage($iNumPages); $aProductsParams['limit'] = ($okt->catalog->filters->params->page - 1) * $okt->catalog->filters->params->nb_per_page . ',' . $okt->catalog->filters->params->nb_per_page; # récupération des produits $productsList = $okt->catalog->getProds($aProductsParams); $count_line = 0; while ($productsList->fetch()) { $productsList->odd_even = $count_line % 2 == 0 ? 'even' : 'odd'; $count_line++; $productsList->url = $productsList->getProductUrl(); if (!$okt->catalog->config->rte_enable) { $productsList->content = util::nlToP($productsList->content); } if ($okt->catalog->config->public_truncat_char > 0) { $productsList->content = html::clean($productsList->content);