*/ /** * Klasa Countries * * @package stCountriesPlugin * @subpackage libs */ class Countries extends BaseCountries { public function __sleep() { $data = array_keys($this->toArray(BasePeer::TYPE_FIELDNAME)); $data[] = 'current_i18n'; $data[] = 'culture'; return $data; } public function __wakeup() { $this->setNew(false); $this->resetModified(); } public function __serialize() { $data = $this->toArray(BasePeer::TYPE_FIELDNAME); $i18ns = array(); foreach ($this->current_i18n as $culture => $i18n) { $i18ns[$culture] = $i18n->toArray(BasePeer::TYPE_FIELDNAME); } $data['current_i18n'] = $i18ns; $data['culture'] = $this->culture; return $data; } public function __unserialize(array $data) { $this->fromArray($data, BasePeer::TYPE_FIELDNAME); foreach ($data['current_i18n'] as $culture => $i18nData) { $i18n = new CountriesI18n(); $i18n->fromArray($i18nData, BasePeer::TYPE_FIELDNAME); $i18n->resetModified(); $i18n->setNew(false); $this->setCountriesI18nForCulture($i18n, $culture); } $this->setCulture($data['culture']); $this->setNew(false); $this->resetModified(); } /** * Przekaztwanie nazwy kraju * * @return string */ public function __toString() { return $this->getName(); } /** * Przeciążenie hydrate * * @param ResultSet $rs * @param int $startcol * @return object */ public function hydrate(ResultSet $rs, $startcol = 1) { $this->setCulture(stLanguage::getHydrateCulture()); return parent::hydrate($rs, $startcol); } /** * Przeciążenie getName * * @return string */ public function getName() { if ($this->getCulture() == stLanguage::getOptLanguage()) { return stLanguage::getDefaultValue($this, __METHOD__); } $v = parent::getName(); if (is_null($v)) $v = stLanguage::getDefaultValue($this, __METHOD__); return $v; } /** * Przeciążenie setName * * @param string $v */ public function setName($v) { if ($this->getCulture() == stLanguage::getOptLanguage()) { stLanguage::setDefaultValue($this, __METHOD__, $v); } parent::setName($v); } /** * * Alias dla metody setName dodany na potrzeby admin generatora * * @param string $v Nazwa kraju */ public function setEditName($v) { $this->setName($v); } public function save($con = null) { if ($this->getIsDefault() && $this->isColumnModified(CountriesPeer::IS_DEFAULT)) { $country = CountriesPeer::doSelectDefault(new Criteria(), $con); if ($country) { $country->setIsDefault(false); $country->save($con); } } $ret = parent::save($con); self::clearCache(); return $ret; } public function delete($con = null) { $ret = parent::delete($con); self::clearCache(); return $ret; } public function isEU() { return CountriesPeer::isEuCountryCode($this->iso_a2); } public static function clearCache() { stFunctionCache::getInstance('stCountriesPlugin')->removeAll(); } }