| Server IP : 213.186.33.4 / Your IP : 216.73.216.193 Web Server : Apache System : Linux webm006.cluster103.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64 User : awebpaca ( 35430) PHP Version : 8.5.0 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/awebpaca/boutiques/app/code/core/Mage/Cms/Helper/ |
Upload File : |
<?php
/**
* Magento
*
* 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.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/osl-3.0.php
* 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@magentocommerce.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade Magento to newer
* versions in the future. If you wish to customize Magento for your
* needs please refer to http://www.magentocommerce.com for more information.
*
* @category Mage
* @package Mage_Cms
* @copyright Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
*/
/**
* CMS Page Helper
*
* @category Mage
* @package Mage_Cms
* @author Magento Core Team <core@magentocommerce.com>
*/
class Mage_Cms_Helper_Page extends Mage_Core_Helper_Abstract
{
const XML_PATH_NO_ROUTE_PAGE = 'web/default/cms_no_route';
const XML_PATH_NO_COOKIES_PAGE = 'web/default/cms_no_cookies';
const XML_PATH_HOME_PAGE = 'web/default/cms_home_page';
/**
* Renders CMS page on front end
*
* Call from controller action
*
* @param Mage_Core_Controller_Front_Action $action
* @param integer $pageId
* @return boolean
*/
public function renderPage(Mage_Core_Controller_Front_Action $action, $pageId = null)
{
return $this->_renderPage($action, $pageId);
}
/**
* Renders CMS page
*
* @param Mage_Core_Controller_Front_Action $action
* @param integer $pageId
* @param bool $renderLayout
* @return boolean
*/
protected function _renderPage(Mage_Core_Controller_Varien_Action $action, $pageId = null, $renderLayout = true)
{
$page = Mage::getSingleton('cms/page');
if (!is_null($pageId) && $pageId!==$page->getId()) {
$delimeterPosition = strrpos($pageId, '|');
if ($delimeterPosition) {
$pageId = substr($pageId, 0, $delimeterPosition);
}
$page->setStoreId(Mage::app()->getStore()->getId());
if (!$page->load($pageId)) {
return false;
}
}
if (!$page->getId()) {
return false;
}
$inRange = Mage::app()->getLocale()->isStoreDateInInterval(null, $page->getCustomThemeFrom(), $page->getCustomThemeTo());
if ($page->getCustomTheme()) {
if ($inRange) {
list($package, $theme) = explode('/', $page->getCustomTheme());
Mage::getSingleton('core/design_package')
->setPackageName($package)
->setTheme($theme);
}
}
$action->getLayout()->getUpdate()
->addHandle('default')
->addHandle('cms_page');
$action->addActionLayoutHandles();
if ($page->getRootTemplate()) {
$handle = ($page->getCustomRootTemplate()
&& $page->getCustomRootTemplate() != 'empty'
&& $inRange) ? $page->getCustomRootTemplate() : $page->getRootTemplate();
$action->getLayout()->helper('page/layout')->applyHandle($handle);
}
Mage::dispatchEvent('cms_page_render', array('page' => $page, 'controller_action' => $action));
$action->loadLayoutUpdates();
$layoutUpdate = ($page->getCustomLayoutUpdateXml() && $inRange) ? $page->getCustomLayoutUpdateXml() : $page->getLayoutUpdateXml();
$action->getLayout()->getUpdate()->addUpdate($layoutUpdate);
$action->generateLayoutXml()->generateLayoutBlocks();
$contentHeadingBlock = $action->getLayout()->getBlock('page_content_heading');
if ($contentHeadingBlock) {
$contentHeadingBlock->setContentHeading($page->getContentHeading());
}
if ($page->getRootTemplate()) {
$action->getLayout()->helper('page/layout')
->applyTemplate($page->getRootTemplate());
}
foreach (array('catalog/session', 'checkout/session') as $class_name) {
$storage = Mage::getSingleton($class_name);
if ($storage) {
$action->getLayout()->getMessagesBlock()->addMessages($storage->getMessages(true));
}
}
if ($renderLayout) {
$action->renderLayout();
}
return true;
}
/**
* Renders CMS Page with more flexibility then original renderPage function.
* Allows to use also backend action as first parameter.
* Also takes third parameter which allows not run renderLayout method.
*
* @param Mage_Core_Controller_Varien_Action $action
* @param $pageId
* @param $renderLayout
* @return bool
*/
public function renderPageExtended(Mage_Core_Controller_Varien_Action $action, $pageId = null, $renderLayout = true)
{
return $this->_renderPage($action, $pageId, $renderLayout);
}
/**
* Retrieve page direct URL
*
* @param string $pageId
* @return string
*/
public function getPageUrl($pageId = null)
{
$page = Mage::getModel('cms/page');
if (!is_null($pageId) && $pageId !== $page->getId()) {
$page->setStoreId(Mage::app()->getStore()->getId());
if (!$page->load($pageId)) {
return null;
}
}
if (!$page->getId()) {
return null;
}
return Mage::getUrl(null, array('_direct' => $page->getIdentifier()));
}
}