Actions

Source Code of This Project

/lib/form/doctrine/NewsForm.class.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.
*/

/**
 * News form.
 *
 * @package    form
 * @subpackage News
 * @version    SVN: $Id: sfDoctrineFormTemplate.php 6174 2007-11-27 06:22:40Z fabien $
 */
class NewsForm extends BaseNewsForm
{
    public function configure()
    {
        // prepare data
        $request = sfContext::getInstance()->getRequest();
        $defalutParam = sfConfig::get('app_news_all_providers');
        $defalutNewsProviders[$defalutParam] = $defalutParam;
        $newsProviders = $defalutNewsProviders + DFactory::get('NewsProviders')->getTable()->getActiveFormChoice();
        $valueDateRange = $request->getParameter('date_range', sfConfig::get('app_news_all_date_range'));
        $latestNews = DFactory::get('News')->getBuilder()->getQuery()->orderBy('n.created_at DESC')->limit(1)->fetchOne();
        $earliestNews = DFactory::get('News')->getBuilder()->getQuery()->orderBy('n.created_at ASC')->limit(1)->fetchOne();
        unset(
                $this['id'], $this['title'],
                $this['description'], $this['hash'],
                $this['link'], $this['updated_at'],
                $this['news_providers_id'], $this['created_at']
        );

        // set widgets
        $this->widgetSchema['date_range'] = new myWidgetFormDateRangeJQueryUI(array(
                        'separator' => sfConfig::get('app_news_date_range_separate'),
                        'latestDate' => $latestNews->getDate(),
                        'earliestDate' => $earliestNews->getDate(),
                ), array('value' => $valueDateRange));
        $this->widgetSchema['news_providers'] = new sfWidgetFormChoice(array('choices' => $newsProviders));
        // validators
        $this->validatorSchema['date_range'] = new myValidatorDateRange(array(
                        'default_value' => sfConfig::get('app_news_all_date_range'),
                        'separator' => sfConfig::get('app_news_date_range_separate'
                )));
        $this->validatorSchema['news_providers'] = new sfValidatorChoice(array('choices' => $newsProviders));
        // set label fo widgets
        $this->widgetSchema->setLabels(array(
                'date_range'    => 'For the range',
                'news_providers'   => 'News provider'
        ));
    }
}