add(LanguagePeer::ACTIVE, true); /** * @var LanguageHasDomain $languageHasDomain */ foreach (LanguageHasDomainPeer::doSelectJoinLanguage($c) as $languageHasDomain) { $domains[$languageHasDomain->getDomain()] = $languageHasDomain->getLanguage()->getShortcut(); } if (null === $sc) { $sc = stSimpleShopDataCache::getInstance(); } $sc->set('domains', $domains); return $sc; } public static function doSelectAll($con = null) { if (null === self::$doSelectAll) { $fc = stFunctionCache::getInstance('stLanguagePlugin'); self::$doSelectAll = $fc->cacheCall("LanguageHasDomainPeer::doSelectAllHelper", array($con)); } return self::$doSelectAll; } /** * Zwraca domenę po nazwie * * @param string $domain * @param Connection $con * @return void */ public static function doSelectByDomain($domain, $con = null) { $all = self::doSelectAll($con); if (isset($all[self::SELECT_BY_DOMAIN][$domain])) { $id = $all[self::SELECT_BY_DOMAIN][$domain]; return $all[self::SELECT_BY_ID][$id]; } return null; } /** * Zwraca listę domen po języku * * @param string $shortcut * @param Connection $con * @return LanguageHasDomain[] */ public static function doSelectByLanguageShortcut($shortcut, $con = null) { if (!isset(self::$languageByShortcut[$shortcut])) { $results = array(); $all = self::doSelectAll($con); if (isset($all[self::SELECT_BY_LANGUAGE_SHORTCUT][$shortcut])) { $ids = $all[self::SELECT_BY_LANGUAGE_SHORTCUT][$shortcut]; foreach ($ids as $id) { $results[] = $all[self::SELECT_BY_ID][$id]; } } $event = stEventDispatcher::getInstance()->notify(new sfEvent($results, 'stLanguageHasDomain.doSelectByLanguageShortcut', array())); if ($event->getReturnValue() != null) { $results = $event->getReturnValue(); } self::$languageByShortcut[$shortcut] = $results; } return self::$languageByShortcut[$shortcut]; } public static function doSelectAllHelper($con = null) { $results = array(); /** * @var LanguageHasDomain[] $domains */ $domains = LanguageHasDomainPeer::doSelectJoinLanguage(new Criteria(), $con); foreach ($domains as $domain) { $results[self::SELECT_BY_DOMAIN][$domain->getDomain()] = $domain->getId(); $results[self::SELECT_BY_LANGUAGE_SHORTCUT][$domain->getLanguage()->getShortcut()][$domain->getId()] = $domain->getId(); $results[self::SELECT_BY_ID][$domain->getId()] = $domain; } return $results; } }