| 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/Core/Block/ |
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_Core
* @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)
*/
/**
* Base html block
*
* @category Mage
* @package Mage_Core
* @author Magento Core Team <core@magentocommerce.com>
*/
class Mage_Core_Block_Template extends Mage_Core_Block_Abstract
{
/**
* View scripts directory
*
* @var string
*/
protected $_viewDir = '';
/**
* Assigned variables for view
*
* @var array
*/
protected $_viewVars = array();
protected $_baseUrl;
protected $_jsUrl;
protected static $_showTemplateHints;
protected static $_showTemplateHintsBlocks;
/**
* Path to template file in theme.
*
* @var string
*/
protected $_template;
/**
* Internal constructor, that is called from real constructor
*
*/
protected function _construct()
{
parent::_construct();
/*
* In case template was passed through constructor
* we assign it to block's property _template
* Mainly for those cases when block created
* not via Mage_Core_Model_Layout::addBlock()
*/
if ($this->hasData('template')) {
$this->setTemplate($this->getData('template'));
}
}
/**
* Get relevant path to template
*
* @return string
*/
public function getTemplate()
{
return $this->_template;
}
/**
* Set path to template used for generating block's output.
*
* @param string $template
* @return Mage_Core_Block_Template
*/
public function setTemplate($template)
{
$this->_template = $template;
return $this;
}
/**
* Get absolute path to template
*
* @return string
*/
public function getTemplateFile()
{
$params = array('_relative'=>true);
$area = $this->getArea();
if ($area) {
$params['_area'] = $area;
}
$templateName = Mage::getDesign()->getTemplateFilename($this->getTemplate(), $params);
return $templateName;
}
/**
* Get design area
* @return string
*/
public function getArea()
{
return $this->_getData('area');
}
/**
* Assign variable
*
* @param string|array $key
* @param mixed $value
* @return Mage_Core_Block_Template
*/
public function assign($key, $value=null)
{
if (is_array($key)) {
foreach ($key as $k=>$v) {
$this->assign($k, $v);
}
}
else {
$this->_viewVars[$key] = $value;
}
return $this;
}
/**
* Set template location dire
*
* @param string $dir
* @return Mage_Core_Block_Template
*/
public function setScriptPath($dir)
{
$this->_viewDir = $dir;
return $this;
}
/**
* Check if dirrect output is allowed for block
* @return bool
*/
public function getDirectOutput()
{
if ($this->getLayout()) {
return $this->getLayout()->getDirectOutput();
}
return false;
}
public function getShowTemplateHints()
{
if (is_null(self::$_showTemplateHints)) {
self::$_showTemplateHints = Mage::getStoreConfig('dev/debug/template_hints')
&& Mage::helper('core')->isDevAllowed();
self::$_showTemplateHintsBlocks = Mage::getStoreConfig('dev/debug/template_hints_blocks')
&& Mage::helper('core')->isDevAllowed();
}
return self::$_showTemplateHints;
}
/**
* Retrieve block view from file (template)
*
* @param string $fileName
* @return string
*/
public function fetchView($fileName)
{
Varien_Profiler::start($fileName);
extract ($this->_viewVars);
$do = $this->getDirectOutput();
if (!$do) {
ob_start();
}
if ($this->getShowTemplateHints()) {
echo '<div style="position:relative; border:1px dotted red; margin:6px 2px; padding:18px 2px 2px 2px; zoom:1;"><div style="position:absolute; left:0; top:0; padding:2px 5px; background:red; color:white; font:normal 11px Arial; text-align:left !important; z-index:998;" onmouseover="this.style.zIndex=\'999\'" onmouseout="this.style.zIndex=\'998\'" title="'.$fileName.'">'.$fileName.'</div>';
if (self::$_showTemplateHintsBlocks) {
$thisClass = get_class($this);
echo '<div style="position:absolute; right:0; top:0; padding:2px 5px; background:red; color:blue; font:normal 11px Arial; text-align:left !important; z-index:998;" onmouseover="this.style.zIndex=\'999\'" onmouseout="this.style.zIndex=\'998\'" title="'.$thisClass.'">'.$thisClass.'</div>';
}
}
try {
include $this->_viewDir . DS . $fileName;
} catch (Exception $e) {
ob_get_clean();
throw $e;
}
if ($this->getShowTemplateHints()) {
echo '</div>';
}
if (!$do) {
$html = ob_get_clean();
} else {
$html = '';
}
Varien_Profiler::stop($fileName);
return $html;
}
/**
* Render block
*
* @return string
*/
public function renderView()
{
$this->setScriptPath(Mage::getBaseDir('design'));
$html = $this->fetchView($this->getTemplateFile());
return $html;
}
/**
* Render block HTML
*
* @return string
*/
protected function _toHtml()
{
if (!$this->getTemplate()) {
return '';
}
$html = $this->renderView();
return $html;
}
/**
* Get base url of the application
*
* @return string
*/
public function getBaseUrl()
{
if (!$this->_baseUrl) {
$this->_baseUrl = Mage::getBaseUrl();
}
return $this->_baseUrl;
}
/**
* Get url of base javascript file
*
* To get url of skin javascript file use getSkinUrl()
*
* @param string $fileName
* @return string
*/
public function getJsUrl($fileName='')
{
if (!$this->_jsUrl) {
$this->_jsUrl = Mage::getBaseUrl('js');
}
return $this->_jsUrl.$fileName;
}
/**
* Get data from specified object
*
* @param Varien_Object $object
* @param string $key
* @return mixed
*/
public function getObjectData(Varien_Object $object, $key)
{
return $object->getDataUsingMethod((string)$key);
}
/**
* Get cache key informative items
*
* @return array
*/
public function getCacheKeyInfo()
{
return array(
'BLOCK_TPL',
Mage::app()->getStore()->getCode(),
$this->getTemplateFile(),
'template' => $this->getTemplate()
);
}
}