first commit
This commit is contained in:
172
plugins/stCountriesPlugin/lib/helper/CountriesHelper.php
Normal file
172
plugins/stCountriesPlugin/lib/helper/CountriesHelper.php
Normal file
@@ -0,0 +1,172 @@
|
||||
<?php
|
||||
/**
|
||||
* SOTESHOP/stCountriesPlugin
|
||||
*
|
||||
* Ten plik należy do aplikacji stCountriesPlugin opartej na licencji (Professional License SOTE).
|
||||
* Nie zmieniaj tego pliku, jeśli chcesz korzystać z automatycznych aktualizacji oprogramowania.
|
||||
* Jeśli chcesz wprowadzać swoje modyfikacje do programu, zapoznaj się z dokumentacją, jak zmieniać
|
||||
* oprogramowanie bez zmiany kodu bazowego http://www.sote.pl/modifications
|
||||
*
|
||||
* @package stCountriesPlugin
|
||||
* @subpackage helpers
|
||||
* @copyright SOTE (www.sote.pl)
|
||||
* @license http://www.sote.pl/license/sote (Professional License SOTE)
|
||||
* @version $Id: CountriesHelper.php 4 2009-08-24 08:52:56Z marcin $
|
||||
* @author Marcin Olejniczak <marcin.olejniczak@sote.pl>
|
||||
*/
|
||||
|
||||
/**
|
||||
* Pobieranie nazwy kraju
|
||||
*
|
||||
* @param integer $country numer kraju
|
||||
* @return string nazwa kraju
|
||||
*/
|
||||
function getName($country)
|
||||
{
|
||||
$country = CountriesPeer::retrieveByPK($country);
|
||||
return $country->getName();
|
||||
}
|
||||
|
||||
/**
|
||||
* Pobieranie strefy kraju
|
||||
*
|
||||
* @param integer $country numer kraju
|
||||
* @return integer strefa kraju
|
||||
*/
|
||||
function getArea($country)
|
||||
{
|
||||
$c = new Criteria();
|
||||
$c->add(CountriesAreaHasCountriesPeer::COUNTRIES_ID , $country);
|
||||
$country_area = CountriesAreaHasCountriesPeer::doSelectOne($c);
|
||||
|
||||
return $country_area->getCountriesAreaId();
|
||||
}
|
||||
|
||||
function st_countries_select_tag($name, $value, array $params = array())
|
||||
{
|
||||
$iso = false;
|
||||
$countryName = false;
|
||||
|
||||
$optionsParams = array();
|
||||
|
||||
if (isset($params['include_custom']))
|
||||
{
|
||||
$optionsParams['include_custom'] = $params['include_custom'];
|
||||
unset($params['include_custom']);
|
||||
}
|
||||
|
||||
if (isset($params['include_custom']))
|
||||
{
|
||||
$optionsParams['include_custom'] = $params['include_custom'];
|
||||
}
|
||||
|
||||
if (isset($params['iso']))
|
||||
{
|
||||
$iso = $params['iso'];
|
||||
unset($params['iso']);
|
||||
}
|
||||
|
||||
if (isset($params['country_name']))
|
||||
{
|
||||
$countryName = $params['country_name'];
|
||||
unset($params['country_name']);
|
||||
}
|
||||
|
||||
if (!isset($params['all']))
|
||||
{
|
||||
$countries = CountriesPeer::doSelectActiveCached();
|
||||
|
||||
$eu = array();
|
||||
$outsideEu = array();
|
||||
|
||||
foreach ($countries as $country)
|
||||
{
|
||||
if ($countryName)
|
||||
{
|
||||
$id = $country->getOptName();
|
||||
}
|
||||
elseif ($iso)
|
||||
{
|
||||
$id = $country->getIsoA2();
|
||||
}
|
||||
else
|
||||
{
|
||||
$id = $country->getId();
|
||||
}
|
||||
|
||||
if ($country->isEU())
|
||||
{
|
||||
$eu[$id] = $country->getName();
|
||||
}
|
||||
else
|
||||
{
|
||||
$outsideEu[$id] = $country->getName();
|
||||
}
|
||||
}
|
||||
|
||||
$options = array("Unia Europejska" => $eu, "Państwa spoza Unii Europejskiej" => $outsideEu);
|
||||
}
|
||||
else
|
||||
{
|
||||
unset($params['all']);
|
||||
|
||||
CountriesPeer::setHydrateMethod(function(ResultSet $rs) use ($iso, $countryName) {
|
||||
$rs->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
$eu = array();
|
||||
$outsideEu = array();
|
||||
|
||||
while($rs->next())
|
||||
{
|
||||
$row = $rs->getRow();
|
||||
|
||||
$name = $row['NAME'] ? $row['NAME'] : $row['OPT_NAME'];
|
||||
$code = $row['ISO_A2'];
|
||||
|
||||
if ($countryName)
|
||||
{
|
||||
$id = $name;
|
||||
}
|
||||
elseif ($iso)
|
||||
{
|
||||
$id = $code;
|
||||
}
|
||||
else
|
||||
{
|
||||
$id = $row['ID'];
|
||||
}
|
||||
|
||||
if (CountriesPeer::isEuCountryCode($code))
|
||||
{
|
||||
$eu[$id] = $name;
|
||||
}
|
||||
else
|
||||
{
|
||||
$outsideEu[$id] = $name;
|
||||
}
|
||||
}
|
||||
|
||||
return array($eu, $outsideEu);
|
||||
});
|
||||
|
||||
$c = new Criteria();
|
||||
$c->addSelectColumn(CountriesPeer::ID);
|
||||
$c->addSelectColumn(CountriesPeer::ISO_A2);
|
||||
$c->addSelectColumn(CountriesPeer::OPT_NAME);
|
||||
$c->addSelectColumn(CountriesI18nPeer::NAME);
|
||||
$c->addAscendingOrderByColumn(CountriesI18nPeer::NAME);
|
||||
list($eu, $outsideEu) = CountriesPeer::doSelectWithI18n($c);
|
||||
|
||||
$options = array("Unia Europejska" => $eu, "Państwa spoza Unii Europejskiej" => $outsideEu);
|
||||
}
|
||||
|
||||
|
||||
|
||||
return select_tag($name, options_for_select($options, $value, $optionsParams), $params);
|
||||
}
|
||||
|
||||
function object_st_countries_select_tag($object, $method, array $params = array())
|
||||
{
|
||||
$value = _get_object_value($object, $method);
|
||||
return st_countries_select_tag(_convert_method_to_name($method, $params), $value, $params);
|
||||
}
|
||||
Reference in New Issue
Block a user