Files
grzanieplus.pl/plugins/stLanguagePlugin/lib/model/LanguageHasDomainPeer.php
2025-03-12 17:06:23 +01:00

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;
}
}