*/ /** * 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); } }