<?php
/*
* This file is part of the pwp package.
* (c) 2009-2010 Victor Rad' <victor.v.rad[at]gmail.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
/**
* See DBuilder
*
* @package pwp
* @subpackage DBuilder
* @author Victor Rad'
*/
class DBuilder_Model_News extends DBuilder
{
// instance of filter class
public $filter;
public function __construct(DBuilder_Query $query, DBuilder_Filter_News $filter, $indexBy = null)
{
parent::__construct($query);
// do base request
$this->getQuery()->from('News n' . ((null !== $indexBy) ? ' INDEXBY n.' . $indexBy : ''))->select('n.*');
// assign filter instance
$this->filter = $filter;
}
public function reorganize(sfRequest $request = null)
{
// check and prepare data
$q = $this->getQuery();
$order = $request->getParameter('order', 'DESC');
// design query
$q->orderBy('n.created_at '.$order);
return $this;
}
public function joinProvides()
{
// check and prepare data
$q = $this->getQuery();
$q->addSelect('p.*')
->leftJoin('n.NewsProviders p');
return $this;
}
}