00001 <?php 00002 /** 00003 * Magento 00004 * 00005 * NOTICE OF LICENSE 00006 * 00007 * This source file is subject to the Open Software License (OSL 3.0) 00008 * that is bundled with this package in the file LICENSE.txt. 00009 * It is also available through the world-wide-web at this URL: 00010 * http://opensource.org/licenses/osl-3.0.php 00011 * If you did not receive a copy of the license and are unable to 00012 * obtain it through the world-wide-web, please send an email 00013 * to license@magentocommerce.com so we can send you a copy immediately. 00014 * 00015 * DISCLAIMER 00016 * 00017 * Do not edit or add to this file if you wish to upgrade Magento to newer 00018 * versions in the future. If you wish to customize Magento for your 00019 * needs please refer to http://www.magentocommerce.com for more information. 00020 * 00021 * @category Mage 00022 * @package Mage_Customer 00023 * @copyright Copyright (c) 2008 Irubin Consulting Inc. DBA Varien (http://www.varien.com) 00024 * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) 00025 */ 00026 00027 00028 /** 00029 * Address format renderer default 00030 * 00031 * @category Mage 00032 * @package Mage_Customer 00033 * @author Magento Core Team <core@magentocommerce.com> 00034 */ 00035 class Mage_Customer_Block_Address_Renderer_Default extends Mage_Core_Block_Abstract implements Mage_Customer_Block_Address_Renderer_Interface 00036 { 00037 /** 00038 * Format type object 00039 * 00040 * @var Varien_Object 00041 */ 00042 protected $_type; 00043 00044 /** 00045 * Retrive format type object 00046 * 00047 * @return Varien_Object 00048 */ 00049 public function getType() 00050 { 00051 return $this->_type; 00052 } 00053 00054 /** 00055 * Retrive format type object 00056 * 00057 * @param Varien_Object $type 00058 * @return Mage_Customer_Model_Address_Renderer_Default 00059 */ 00060 public function setType(Varien_Object $type) 00061 { 00062 $this->_type = $type; 00063 return $this; 00064 } 00065 00066 public function getFormat(Mage_Customer_Model_Address_Abstract $address=null) 00067 { 00068 $countryFormat = is_null($address) ? false : $address->getCountryModel()->getFormat($this->getType()->getCode()); 00069 $format = $countryFormat ? $countryFormat->getFormat() : $this->getType()->getDefaultFormat(); 00070 return $format; 00071 } 00072 00073 /** 00074 * Render address 00075 * 00076 * @param Mage_Customer_Model_Address_Abstract $address 00077 * @return string 00078 */ 00079 public function render(Mage_Customer_Model_Address_Abstract $address, $format=null) 00080 { 00081 $address->getRegion(); 00082 $address->getCountry(); 00083 $address->explodeStreetAddress(); 00084 00085 $formater = new Varien_Filter_Template(); 00086 $data = $address->getData(); 00087 if ($this->getType()->getHtmlEscape()) { 00088 foreach ($data as $key => $value) { 00089 $data[$key] = $this->htmlEscape($value); 00090 } 00091 } 00092 $formater->setVariables(array_merge($data, array('country'=>$address->getCountryModel()->getName()))); 00093 00094 $format = !is_null($format) ? $format : $this->getFormat($address); 00095 00096 return $formater->filter($format); 00097 } 00098 00099 }