| Server IP : 213.186.33.4 / Your IP : 216.73.216.59 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/Directory/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_Directory
* @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)
*/
/**
* Directory data helper
*
* @author Magento Core Team <core@magentocommerce.com>
*/
class Mage_Directory_Helper_Data extends Mage_Core_Helper_Abstract
{
protected $_countryCollection;
protected $_regionCollection;
protected $_regionJson;
protected $_currencyCache = array();
protected $_optionalZipCountries = null;
public function getRegionCollection()
{
if (!$this->_regionCollection) {
$this->_regionCollection = Mage::getModel('directory/region')->getResourceCollection()
->addCountryFilter($this->getAddress()->getCountryId())
->load();
}
return $this->_regionCollection;
}
public function getCountryCollection()
{
if (!$this->_countryCollection) {
$this->_countryCollection = Mage::getModel('directory/country')->getResourceCollection()
->loadByStore();
}
return $this->_countryCollection;
}
/**
* Retrieve regions data json
*
* @return string
*/
public function getRegionJson()
{
Varien_Profiler::start('TEST: '.__METHOD__);
if (!$this->_regionJson) {
$cacheKey = 'DIRECTORY_REGIONS_JSON_STORE'.Mage::app()->getStore()->getId();
if (Mage::app()->useCache('config')) {
$json = Mage::app()->loadCache($cacheKey);
}
if (empty($json)) {
$countryIds = array();
foreach ($this->getCountryCollection() as $country) {
$countryIds[] = $country->getCountryId();
}
$collection = Mage::getModel('directory/region')->getResourceCollection()
->addCountryFilter($countryIds)
->load();
$regions = array();
foreach ($collection as $region) {
if (!$region->getRegionId()) {
continue;
}
$regions[$region->getCountryId()][$region->getRegionId()] = array(
'code'=>$region->getCode(),
'name'=>$region->getName()
);
}
$json = Mage::helper('core')->jsonEncode($regions);
if (Mage::app()->useCache('config')) {
Mage::app()->saveCache($json, $cacheKey, array('config'));
}
}
$this->_regionJson = $json;
}
Varien_Profiler::stop('TEST: '.__METHOD__);
return $this->_regionJson;
}
public function currencyConvert($amount, $from, $to=null)
{
if (empty($this->_currencyCache[$from])) {
$this->_currencyCache[$from] = Mage::getModel('directory/currency')->load($from);
}
if (is_null($to)) {
$to = Mage::app()->getStore()->getCurrentCurrencyCode();
}
$converted = $this->_currencyCache[$from]->convert($amount, $to);
return $converted;
}
/**
* Return ISO2 country codes, which have optional Zip/Postal pre-configured
*
* @param bool $asJson
* @return array
*/
public function getCountriesWithOptionalZip($asJson = false)
{
if (null === $this->_optionalZipCountries) {
$this->_optionalZipCountries = preg_split('/\,/', Mage::getStoreConfig('general/country/optional_zip_countries'),
0, PREG_SPLIT_NO_EMPTY
);
}
if ($asJson) {
return Mage::helper('core')->jsonEncode($this->_optionalZipCountries);
}
return $this->_optionalZipCountries;
}
/**
* Check whether zip code is optional for specified country code
*
* @param string $countryCode
*/
public function isZipCodeOptional($countryCode)
{
$this->getCountriesWithOptionalZip();
return in_array($countryCode, $this->_optionalZipCountries);
}
}