Actions

Source Code of This Project

/lib/model/DBuilder/Model/News.php

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

}