⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.45
Server IP:
185.238.29.86
Server:
Linux server2 6.8.12-6-pve #1 SMP PREEMPT_DYNAMIC PMX 6.8.12-6 (2024-12-19T19:05Z) x86_64
Server Software:
nginx/1.18.0
PHP Version:
8.1.31
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
var
/
www
/
olasjoys
/
controllers
/
front
/
Edit File: CmsController.php
<?php /** * Copyright since 2007 PrestaShop SA and Contributors * PrestaShop is an International Registered Trademark & Property of PrestaShop SA * * NOTICE OF LICENSE * * This source file is subject to the Open Software License (OSL 3.0) * that is bundled with this package in the file LICENSE.md. * It is also available through the world-wide-web at this URL: * https://opensource.org/licenses/OSL-3.0 * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to license@prestashop.com so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your * needs please refer to https://devdocs.prestashop.com/ for more information. * * @author PrestaShop SA and Contributors <contact@prestashop.com> * @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ class CmsControllerCore extends FrontController { public $php_self = 'cms'; public $assignCase; public $cms; /** @var CMSCategory */ public $cms_category; public $ssl = false; public function canonicalRedirection($canonicalURL = '') { if (Validate::isLoadedObject($this->cms) && ($canonicalURL = $this->context->link->getCMSLink($this->cms, $this->cms->link_rewrite, $this->ssl))) { parent::canonicalRedirection($canonicalURL); } elseif (Validate::isLoadedObject($this->cms_category) && ($canonicalURL = $this->context->link->getCMSCategoryLink($this->cms_category))) { parent::canonicalRedirection($canonicalURL); } } /** * Initialize cms controller. * * @see FrontController::init() */ public function init() { if ($id_cms = (int) Tools::getValue('id_cms')) { $this->cms = new CMS($id_cms, $this->context->language->id, $this->context->shop->id); } elseif ($id_cms_category = (int) Tools::getValue('id_cms_category')) { $this->cms_category = new CMSCategory($id_cms_category, $this->context->language->id, $this->context->shop->id); } if (Configuration::get('PS_SSL_ENABLED') && Tools::getValue('content_only') && $id_cms && Validate::isLoadedObject($this->cms) && in_array($id_cms, $this->getSSLCMSPageIds())) { $this->ssl = true; } parent::init(); $this->canonicalRedirection(); // assignCase (1 = CMS page, 2 = CMS category) if (Validate::isLoadedObject($this->cms)) { $adtoken = Tools::getAdminToken('AdminCmsContent' . (int) Tab::getIdFromClassName('AdminCmsContent') . (int) Tools::getValue('id_employee')); if (!$this->cms->isAssociatedToShop() || !$this->cms->active && Tools::getValue('adtoken') != $adtoken) { $this->redirect_after = '404'; $this->redirect(); } else { $this->assignCase = 1; } } elseif (Validate::isLoadedObject($this->cms_category) && $this->cms_category->active) { $this->assignCase = 2; } else { $this->redirect_after = '404'; $this->redirect(); } } /** * Assign template vars related to page content. * * @see FrontController::initContent() */ public function initContent() { if ($this->assignCase == 1) { $cmsVar = $this->objectPresenter->present($this->cms); $filteredCmsContent = Hook::exec( 'filterCmsContent', ['object' => $cmsVar], $id_module = null, $array_return = false, $check_exceptions = true, $use_push = false, $id_shop = null, $chain = true ); if (!empty($filteredCmsContent['object'])) { $cmsVar = $filteredCmsContent['object']; } $this->context->smarty->assign([ 'cms' => $cmsVar, ]); if ($this->cms->indexation == 0) { $this->context->smarty->assign('nobots', true); } $this->setTemplate( 'cms/page', ['entity' => 'cms', 'id' => $this->cms->id] ); } elseif ($this->assignCase == 2) { $cmsCategoryVar = $this->getTemplateVarCategoryCms(); $filteredCmsCategoryContent = Hook::exec( 'filterCmsCategoryContent', ['object' => $cmsCategoryVar], $id_module = null, $array_return = false, $check_exceptions = true, $use_push = false, $id_shop = null, $chain = true ); if (!empty($filteredCmsCategoryContent['object'])) { $cmsCategoryVar = $filteredCmsCategoryContent['object']; } $this->context->smarty->assign($cmsCategoryVar); $this->setTemplate('cms/category'); } parent::initContent(); } /** * Return an array of IDs of CMS pages, which shouldn't be forwared to their canonical URLs in SSL environment. * Required for pages which are shown in iframes. */ protected function getSSLCMSPageIds() { return [(int) Configuration::get('PS_CONDITIONS_CMS_ID'), (int) Configuration::get('LEGAL_CMS_ID_REVOCATION')]; } public function getBreadcrumbLinks() { $breadcrumb = parent::getBreadcrumbLinks(); if ($this->assignCase == 2) { $cmsCategory = new CMSCategory($this->cms_category->id_cms_category); } else { $cmsCategory = new CMSCategory($this->cms->id_cms_category); } if ($cmsCategory->id_parent != 0) { foreach (array_reverse($cmsCategory->getParentsCategories()) as $category) { $cmsSubCategory = new CMSCategory($category['id_cms_category']); $breadcrumb['links'][] = [ 'title' => $cmsSubCategory->getName(), 'url' => $this->context->link->getCMSCategoryLink($cmsSubCategory), ]; } } if ($this->assignCase == 1) { $breadcrumb['links'][] = [ 'title' => $this->context->controller->cms->meta_title, 'url' => $this->context->link->getCMSLink($this->context->controller->cms), ]; } return $breadcrumb; } public function getTemplateVarPage() { $page = parent::getTemplateVarPage(); if ($this->assignCase == 2) { $page['body_classes']['cms-id-' . $this->cms_category->id] = true; } else { $page['body_classes']['cms-id-' . $this->cms->id] = true; if (!$this->cms->indexation) { $page['meta']['robots'] = 'noindex'; } } return $page; } public function getTemplateVarCategoryCms() { $categoryCms = []; $categoryCms['cms_category'] = $this->objectPresenter->present($this->cms_category); $categoryCms['sub_categories'] = []; $categoryCms['cms_pages'] = []; foreach ($this->cms_category->getSubCategories($this->context->language->id) as $subCategory) { $categoryCms['sub_categories'][$subCategory['id_cms_category']] = $subCategory; $categoryCms['sub_categories'][$subCategory['id_cms_category']]['link'] = $this->context->link->getCMSCategoryLink($subCategory['id_cms_category'], $subCategory['link_rewrite']); } foreach (CMS::getCMSPages($this->context->language->id, (int) $this->cms_category->id, true, (int) $this->context->shop->id) as $cmsPages) { $categoryCms['cms_pages'][$cmsPages['id_cms']] = $cmsPages; $categoryCms['cms_pages'][$cmsPages['id_cms']]['link'] = $this->context->link->getCMSLink($cmsPages['id_cms'], $cmsPages['link_rewrite']); } return $categoryCms; } }
Simpan