138 lines
3.8 KiB
PHP
138 lines
3.8 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Subclass for performing query and update operations on the 'st_language_has_domain' table.
|
|
*
|
|
*
|
|
*
|
|
* @package plugins.stLanguagePlugin.lib.model
|
|
*/
|
|
class LanguageHasDomainPeer extends BaseLanguageHasDomainPeer
|
|
{
|
|
protected static $doSelectAll = null;
|
|
|
|
protected static $languageByShortcut = array();
|
|
|
|
const SELECT_BY_ID = 0;
|
|
const SELECT_BY_DOMAIN = 1;
|
|
const SELECT_BY_LANGUAGE_SHORTCUT = 2;
|
|
|
|
/**
|
|
* Aktualizuje podstawową pamięć podręczną sklepu
|
|
*
|
|
* @param stSimpleShopDataCache|null $sc
|
|
* @return stSimpleShopDataCache
|
|
* @throws PropelException
|
|
*/
|
|
public static function doSimpleStoreUpdate(stSimpleShopDataCache $sc = null)
|
|
{
|
|
$domains = array();
|
|
$c = new Criteria();
|
|
$c->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;
|
|
}
|
|
} |