0byt3m1n1
Path:
/
data
/
applications
/
aps
/
magento
/
1.1.3-2
/
standard
/
htdocs
/
app
/
code
/
core
/
Mage
/
Core
/
Block
/
[
Home
]
File: Template.php
<?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. * * @category Mage * @package Mage_Core * @copyright Copyright (c) 2008 Irubin Consulting Inc. DBA Varien (http://www.varien.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; public function getTemplate() { return $this->_getData('template'); } 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; } 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>'; } } include $this->_viewDir.DS.$fileName; 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() { Varien_Profiler::start(__METHOD__); $this->setScriptPath(Mage::getBaseDir('design')); $params = array('_relative'=>true); if ($area = $this->getArea()) { $params['_area'] = $area; } $templateName = Mage::getDesign()->getTemplateFilename($this->getTemplate(), $params); $html = $this->fetchView($templateName); Varien_Profiler::stop(__METHOD__); 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; } }