1: <?php
2: /**
3: * Magento
4: *
5: * NOTICE OF LICENSE
6: *
7: * This source file is subject to the Open Software License (OSL 3.0)
8: * that is bundled with this package in the file LICENSE.txt.
9: * It is also available through the world-wide-web at this URL:
10: * http://opensource.org/licenses/osl-3.0.php
11: * If you did not receive a copy of the license and are unable to
12: * obtain it through the world-wide-web, please send an email
13: * to license@magentocommerce.com so we can send you a copy immediately.
14: *
15: * DISCLAIMER
16: *
17: * Do not edit or add to this file if you wish to upgrade Magento to newer
18: * versions in the future. If you wish to customize Magento for your
19: * needs please refer to http://www.magentocommerce.com for more information.
20: *
21: * @category Mage
22: * @package Mage_Adminhtml
23: * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24: * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25: */
26:
27: /**
28: * Adminhtml grid item renderer
29: *
30: * @category Mage
31: * @package Mage_Adminhtml
32: * @author Magento Core Team <core@magentocommerce.com>
33: */
34:
35: class Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Text
36: extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
37: {
38: /**
39: * Format variables pattern
40: *
41: * @var string
42: */
43: protected $_variablePattern = '/\\$([a-z0-9_]+)/i';
44:
45: /**
46: * Renders grid column
47: *
48: * @param Varien_Object $row
49: * @return mixed
50: */
51: public function _getValue(Varien_Object $row)
52: {
53: $format = ( $this->getColumn()->getFormat() ) ? $this->getColumn()->getFormat() : null;
54: $defaultValue = $this->getColumn()->getDefault();
55: if (is_null($format)) {
56: // If no format and it column not filtered specified return data as is.
57: $data = parent::_getValue($row);
58: $string = is_null($data) ? $defaultValue : $data;
59: return $this->escapeHtml($string);
60: }
61: elseif (preg_match_all($this->_variablePattern, $format, $matches)) {
62: // Parsing of format string
63: $formattedString = $format;
64: foreach ($matches[0] as $matchIndex=>$match) {
65: $value = $row->getData($matches[1][$matchIndex]);
66: $formattedString = str_replace($match, $value, $formattedString);
67: }
68: return $formattedString;
69: } else {
70: return $this->escapeHtml($format);
71: }
72: }
73: }
74: