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

94 lines
2.1 KiB
PHP

<?php
/**
* Subclass for performing query and update operations on the 'st_blog' table.
*
*
*
* @package plugins.stBlogPlugin.lib.model
*/
class BlogPeer extends BaseBlogPeer
{
protected static $urlPool = array();
public static function retrieveByUrl($url)
{
if (!isset(self::$urlPool[$url]) && !array_key_exists($url, self::$urlPool))
{
$c = new Criteria();
$c->addSelectColumn(BlogI18nPeer::ID);
$c->add(BlogI18nPeer::URL, $url);
$c->setLimit(1);
$rs = BlogI18nPeer::doSelectRS($c);
if ($rs->next())
{
$row = $rs->getRow();
$c = new Criteria();
$c->add(self::ID, $row[0]);
$c->setLimit(1);
$tmp = self::doSelectWithI18n($c);
self::$urlPool[$url] = $tmp ? $tmp[0] : null;
}
}
return @self::$urlPool[$url];
}
public static function doCountWithI18n(Criteria $c, $con = null)
{
$c = clone $c;
$c->addJoin(BlogI18nPeer::ID, BlogPeer::ID);
$c->add(BlogI18nPeer::CULTURE, stLanguage::getHydrateCulture());
return self::doCount($c, $con);
}
public static function doSelectWithI18n(Criteria $c, $culture = null, $con = null)
{
if ($culture === null)
{
$culture = stLanguage::getHydrateCulture();
}
return parent::doSelectWithI18n($c, $culture, $con);
}
public static function clearCache()
{
$cache = new stFunctionCache('stBlogPlugin');
$cache->removeAll();
}
public static function doSelectBlogForTokenInput(Blog $blog)
{
return json_decode($blog->getRecommend());
}
public static function doSelectTokens(Criteria $c)
{
sfLoader::loadHelpers(array('Helper'));
$c = clone $c;
$c->addSelectColumn(self::ID);
$c->addSelectColumn(self::OPT_NAME);
$rs = self::doSelectRs($c);
$tokens = array();
while ($rs->next()) {
list($id, $name) = $rs->getRow();
$tokens[] = array('id' => $id, 'name' => $name);
}
return $tokens;
}
}