<?php
class ScriptExtension extends PhonalisaRecord {

    public  
        $name,
        $extension,
        $javascript;
    
    public static function myAttributes() {
    
        return array(
                'name'=>'name',
                'extension'=>'extension',
                'javascript'=>'javascript'
        );
    }
    
    /**
     * Returns the static model of the specified AR class.
     * @param string $className active record class name.
     * @return Calendar the static model class
     */
    public static function model($className=__CLASS__)
    {
        return parent::model($className);
    }
    
    /**
     * @return string the associated database table name
     */
    public function tableName()
    {
        return strtolower('ScriptExtension');
    }
    
    /**
     * @return array validation rules for model attributes.
     */
    public function rules()
    {
        // NOTE: you should only define rules for those attributes that
        // will receive user inputs.
        return array(
            array('extension', 'ext.PhonalisaValidators.uniqueExtension', 'pattern' => '/^[1-9*#]/'),
            array('extension', 'match', 'pattern' => '/^[0-9*#]{1,}$/', 'message' => __('SCRIPT_EXTENSION_MODEL_NO_VALID_PHONE_KEY')),
            array('name', 'required'),
            array('name, extension, javascript', 'safe'), //FIXME
        );
    }
    
    /**
     * @return array relational rules.
     */
    public function relations()
    {
        // NOTE: you may need to adjust the relation name and the related
        // class name for the relations automatically generated below.
        return array(
        );
    }
    
    /**
     * @return array customized attribute labels (name=>label)
     */
    public function attributeLabels()
    {
        return array(
            'name' => __("SCRIPT_EXTENSION_MODEL_NAME"),
            'extension'=>__('SCRIPT_EXTENSION_MODEL_EXTENSION'),
            'javascript'=>__('SCRIPT_EXTENSION_MODEL_JAVASCRIPT'),
        );
    }
    
    /**
     * Retrieves a list of models based on the current search/filter conditions.
     * @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions.
     */
    public function search($order = 'id')
    {
        $criteria = new CDbCriteria;
        $filter = $this->getFilter($criteria, $order);
        
        return new CPhonalisaDataProvider($this, $filter);
    }
    
    public function getListData()
    {
        $models = $this->findAll();
        $listData = CHtml::listData($models, "id", "name");
        $listData = array_merge(array(""=>__("SCRIPT_EXTENSION_EMPTY")), $listData);
        return $listData;
    }
    
}