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

98 lines
2.7 KiB
PHP

<?php
/**
* SOTESHOP/stTextPlugin
*
* Ten plik należy do aplikacji stTextPlugin opartej na licencji (Open License SOTE) Otwarta Licencja 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 stTextPlugin
* @subpackage libs
* @copyright SOTE (www.sote.pl)
* @license http://www.sote.pl/license/open (Open License SOTE) Otwarta Licencja SOTE
* @version $Id: TextPeer.php 617 2009-04-09 13:02:31Z michal $
* @author Bartosz Alejski <bartosz.alejski@sote.pl>
*/
/**
* Klasa TextPeer
*
* @package stTextPlugin
* @subpackage libs
*/
class TextPeer extends BaseTextPeer
{
public static function retrieveBySystemName($system_name)
{
$criteria = new Criteria(TextPeer::DATABASE_NAME);
$criteria->add(TextPeer::SYSTEM_NAME, $system_name);
$criteria->add(TextPeer::ACTIVE, 1);
$v = TextPeer::doSelect($criteria);
return !empty($v) > 0 ? $v[0] : null;
}
/**
* Przeciążenie metody pobierającej tekstów w odpowiedniej wersji jezykowej
*
* @param Criteria $c Kryteria
* @param mixed $culture Wersja językowa
* @param CreoleConnection $con Połączenie z bazą danych
* @return array Produkty
*/
public static function doSelectWithI18n(Criteria $c, $culture = null, $con = null)
{
if ($culture === null)
{
$culture = sfContext::getInstance()->getUser()->getCulture();
}
if ($c->getDbName() == Propel::getDefaultDB())
{
$c->setDbName(self::DATABASE_NAME);
}
TextPeer::addSelectColumns($c);
$startcol = (TextPeer::NUM_COLUMNS - TextPeer::NUM_LAZY_LOAD_COLUMNS) + 1;
TextI18nPeer::addSelectColumns($c);
$c->addJoin(TextPeer::ID, sprintf("%s AND %s = '%s'", TextI18nPeer::ID, TextI18nPeer::CULTURE, $culture), Criteria::LEFT_JOIN);
$rs = BasePeer::doSelect($c, $con);
$results = array();
while($rs->next())
{
$omClass = TextPeer::getOMClass();
$cls = Propel::import($omClass);
$obj1 = new $cls();
$obj1->hydrate($rs);
$obj1->setCulture($culture);
$omClass = TextI18nPeer::getOMClass($rs, $startcol);
$cls = Propel::import($omClass);
$obj2 = new $cls();
$obj2->hydrate($rs, $startcol);
$obj1->setTextI18nForCulture($obj2, $culture);
$obj2->setText($obj1);
$results[] = $obj1;
}
return $results;
}
public static function doCountWithI18n(Criteria $c, $con = null)
{
$c->addJoin(TextI18nPeer::ID, TextPeer::ID);
$c->add(TextI18nPeer::CULTURE, sfContext::getInstance()->getUser()->getCulture());
return self::doCount($c, $con);
}
}