Source

cruge / models / data / CrugeField.php

Diff from to

File models/data/CrugeField.php

 <?php
 /**
- * CrugeField 
+ * CrugeField
  *
  * @property integer $idfield
  * @property string $fieldname
  * @property integer $fieldsize
  * @property integer $maxlength
  * @property integer $showinreports  si este campo es visible en listas de usuario del administrador
- * @property string $useregexp	expresion regular, dejar en blanco si no se usa.
- * @property string $useregexpmsg	mensaje cuando la expresion regular falla
- * @property string $predetvalue	valor predeterminado, usado ademas para llenar listas de opcion
- * 
+ * @property string $useregexp    expresion regular, dejar en blanco si no se usa.
+ * @property string $useregexpmsg    mensaje cuando la expresion regular falla
+ * @property string $predetvalue    valor predeterminado, usado ademas para llenar listas de opcion
+ *
  * @uses CActiveRecord
  * @author: Christian Salazar H. <christiansalazarh@gmail.com> @bluyell
  * @license protected/modules/cruge/LICENCE
-*/
-class CrugeField extends CActiveRecord 	
-	implements ICrugeField	
-		//,IModelErrorReport
+ */
+class CrugeField extends CActiveRecord
+    implements ICrugeField
+    //,IModelErrorReport
 {
-	
-
-	private $_value;
-	private $_errors;
-
-	/*
-		debido a que varios atributos aqui son sensibles los espacios entonces
-		se les hara trim a todos.
-	*/
-	public function onBeforeValidate($event){
-		foreach($this->getIterator() as $atributo=>$valor)
-			$this[$atributo] = trim($valor);
-	}
-	
-	
-	/*
-		devuelve un objeto que implementa a ICrugeField
-	*/
-	public static function loadModel($id){
-		return self::model()->findByPk($id);
-	}
-	public static function loadModelByName($name){
-		return self::model()->findByAttributes(array('fieldname'=>$name));
-	}
-	
-	/* entrega un array con los nombres de los atributos clave para orden, 	
-		colocar de primero el primaryKey
-	*/
-	public static function getSortFieldNames(){
-		return array('fieldname','longname','required');
-	}
-	
-	public function getRequiredName(){
-		if($this->required == 1)
-			return CrugeTranslator::t("Si");
-		return CrugeTranslator::t("");
-	}
-	
-	/**
-		devuelve un array de objetos que implementan a ICrugeField
-	*/
-	public static function listModels(){
-		return self::model()->findAllByAttributes(array(),array('order'=>'position ASC'));
-	}
-	
-	public function setFieldValue($value){
-		$this->_value = $value;
-	}
-	
-	public function getFieldValue(){
-		return $this->_value;
-	}
-
-	/*
-		pregunta si este campo es visible en listas de usuario del administrador
-	*/
-	public function isVisibleInAdminList(){
-		return $this->showinreports==1;
-	}
-	
-	/*
-		hace una validacion de este campo
-	*/
-	public function validateField(){
-		
-		$validateResult=true;
-		$_val = trim($this->getFieldValue());
-		
-		if(($_val == "") && ($this->required!=0)){
-			$validateResult=false;
-			$this->addError($this->fieldname
-				,CrugeTranslator::t("este campo es requerido").". [".$this->longname."]");
-		}
-		
-		if(strlen($_val) > $this->maxlength)
-		{
-			$validateResult=false;
-			$this->addError($this->fieldname
-				,CrugeTranslator::t("el tamano maximo permitido es")
-					.$this->maxlength." ".CrugeTranslator::t("caracteres o digitos")
-					.". [".$this->longname."]");
-		}
-		
-		
-		if((trim($this->useregexp) != "") && (trim($this->getFieldValue()) != ""))
-		{
-			// aplica regexp segun el usuario haya configurado el campo
-			if(preg_match("/".trim($this->useregexp)."/",$this->getFieldValue()))
-			{
-				// todo bien
-			}else{
-				$validateResult=false;
-				$this->addError($this->fieldname
-					,CrugeTranslator::t($this->useregexpmsg));
-			}
-		}
-		
-		return $validateResult;
-	}
-	
-	/**
-		retorna el nombre de la tabla
-	*/
-	public function tableName(){
-		return CrugeUtil::getTableName("field");
-	}
-
-	/*
-		devuelve "el valor" del indice primario
-	*/
-	public function getPrimaryKey(){
-		return $this->idfield;
-	}
-
-
-	/**
-	 * Returns the static model of the specified AR class.
-	 * @return CrugeField the static model class
-	 */
-	public static function model($className=__CLASS__)
-	{
-		return parent::model($className);
-	}
-
-
-	/**
-	 * @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('fieldname', 'length', 'max'=>20),
-			array('longname', 'length', 'max'=>50),
-			array('useregexp', 'length', 'max'=>512),
-			array('useregexpmsg', 'length', 'max'=>512),
-			array('predetvalue', 'length', 'max'=>4096),
-			
-			array('fieldname', 'match'
-				, 'pattern'=>'/^([a-zA-Z]{3,20})$/'
-				, 'message'=>CrugeTranslator::t("solo use de 3 a 20 letras (a-z), sin espacios")
-				),
-		
-			array('position, required, fieldtype, fieldsize, maxlength, showinreports'
-				, 'numerical', 'integerOnly'=>true),
-				
-			array('fieldname, longname, fieldtype, fieldsize, maxlength'
-				, 'required'),
-				
-			array('fieldname', 'unique'),
-				
-			array('position', 'numerical', 'min'=>0,'max'=>99),
-			array('fieldsize', 'numerical', 'min'=>1,'max'=>100),
-			array('maxlength', 'numerical', 'min'=>1,'max'=>512),
-			
-			
-			array('predetvalue', 'safe'),
-			
-			
-			
-			array('idfield, fieldname, longname, position, required, fieldtype', 'safe', 'on'=>'search'),
-		);
-	}
-
-	/**
-	 * @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(
-			'idfield' => 'Idfield',
-			'fieldname' => ucwords(CrugeTranslator::t('Nombre Interno')),
-			'longname' => ucwords(CrugeTranslator::t('Nombre Publico')),
-			'position' => ucwords(CrugeTranslator::t('Posicion')),
-			'required' => ucwords(CrugeTranslator::t('Requerido')),
-			'fieldtype' => ucwords(CrugeTranslator::t('Tipo')),
-			'fieldsize' => ucwords(CrugeTranslator::t('Ancho Caracteres')),
-			'maxlength' => ucwords(CrugeTranslator::t('Longitud Maxima')),
-			'showinreports' => ucwords(CrugeTranslator::t('Ver en Reportes')),
-			'useregexp'=> ucwords(CrugeTranslator::t('Expresion Regular')),
-			'useregexpmsg'=> ucwords(CrugeTranslator::t('Mensaje de error')),
-			'predetvalue'=> ucwords(CrugeTranslator::t('Valor Predeterminado / Opciones de Lista')), 
-		);
-	}
-
-	/**
-	 * 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()
-	{
-		// Warning: Please modify the following code to remove attributes that
-		// should not be searched.
-
-		$criteria=new CDbCriteria;
-
-		$criteria->compare('idfield',$this->idfield);
-		$criteria->compare('fieldname',$this->fieldname,true);
-		$criteria->compare('longname',$this->longname,true);
-		$criteria->compare('position',$this->position);
-		$criteria->compare('required',$this->required);
-		$criteria->compare('fieldtype',$this->fieldtype);
-
-		return new CActiveDataProvider($this, array(
-			'criteria'=>$criteria,
-			'sort'=>array(
-				'defaultOrder'=>array('position'=>false),
-			),
-		));
-	}
+
+
+    private $_value;
+    private $_errors;
+
+    /*
+        debido a que varios atributos aqui son sensibles los espacios entonces
+        se les hara trim a todos.
+    */
+    public function onBeforeValidate($event)
+    {
+        foreach ($this->getIterator() as $atributo => $valor) {
+            $this[$atributo] = trim($valor);
+        }
+    }
+
+
+    /*
+        devuelve un objeto que implementa a ICrugeField
+    */
+    public static function loadModel($id)
+    {
+        return self::model()->findByPk($id);
+    }
+
+    public static function loadModelByName($name)
+    {
+        return self::model()->findByAttributes(array('fieldname' => $name));
+    }
+
+    /* entrega un array con los nombres de los atributos clave para orden,
+        colocar de primero el primaryKey
+    */
+    public static function getSortFieldNames()
+    {
+        return array('fieldname', 'longname', 'required');
+    }
+
+    public function getRequiredName()
+    {
+        if ($this->required == 1) {
+            return CrugeTranslator::t("Si");
+        }
+        return CrugeTranslator::t("");
+    }
+
+    /**
+    devuelve un array de objetos que implementan a ICrugeField
+     */
+    public static function listModels()
+    {
+        return self::model()->findAllByAttributes(array(), array('order' => 'position ASC'));
+    }
+
+    public function setFieldValue($value)
+    {
+        $this->_value = $value;
+    }
+
+    public function getFieldValue()
+    {
+        return $this->_value;
+    }
+
+    /*
+        pregunta si este campo es visible en listas de usuario del administrador
+    */
+    public function isVisibleInAdminList()
+    {
+        return $this->showinreports == 1;
+    }
+
+    /*
+        hace una validacion de este campo
+    */
+    public function validateField()
+    {
+
+        $validateResult = true;
+        $_val = trim($this->getFieldValue());
+
+        if (($_val == "") && ($this->required != 0)) {
+            $validateResult = false;
+            $this->addError(
+                $this->fieldname
+                ,
+                CrugeTranslator::t("este campo es requerido") . ". [" . $this->longname . "]"
+            );
+        }
+
+        if (strlen($_val) > $this->maxlength) {
+            $validateResult = false;
+            $this->addError(
+                $this->fieldname
+                ,
+                CrugeTranslator::t("el tamano maximo permitido es")
+                    . $this->maxlength . " " . CrugeTranslator::t("caracteres o digitos")
+                    . ". [" . $this->longname . "]"
+            );
+        }
+
+
+        if ((trim($this->useregexp) != "") && (trim($this->getFieldValue()) != "")) {
+            // aplica regexp segun el usuario haya configurado el campo
+            if (preg_match("/" . trim($this->useregexp) . "/", $this->getFieldValue())) {
+                // todo bien
+            } else {
+                $validateResult = false;
+                $this->addError(
+                    $this->fieldname
+                    ,
+                    CrugeTranslator::t($this->useregexpmsg)
+                );
+            }
+        }
+
+        return $validateResult;
+    }
+
+    /**
+    retorna el nombre de la tabla
+     */
+    public function tableName()
+    {
+        return CrugeUtil::getTableName("field");
+    }
+
+    /*
+        devuelve "el valor" del indice primario
+    */
+    public function getPrimaryKey()
+    {
+        return $this->idfield;
+    }
+
+
+    /**
+     * Returns the static model of the specified AR class.
+     * @return CrugeField the static model class
+     */
+    public static function model($className = __CLASS__)
+    {
+        return parent::model($className);
+    }
+
+
+    /**
+     * @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('fieldname', 'length', 'max' => 20),
+            array('longname', 'length', 'max' => 50),
+            array('useregexp', 'length', 'max' => 512),
+            array('useregexpmsg', 'length', 'max' => 512),
+            array('predetvalue', 'length', 'max' => 4096),
+            array(
+                'fieldname',
+                'match'
+            ,
+                'pattern' => '/^([a-zA-Z]{3,20})$/'
+            ,
+                'message' => CrugeTranslator::t("solo use de 3 a 20 letras (a-z), sin espacios")
+            ),
+            array(
+                'position, required, fieldtype, fieldsize, maxlength, showinreports'
+            ,
+                'numerical',
+                'integerOnly' => true
+            ),
+            array(
+                'fieldname, longname, fieldtype, fieldsize, maxlength'
+            ,
+                'required'
+            ),
+            array('fieldname', 'unique'),
+            array('position', 'numerical', 'min' => 0, 'max' => 99),
+            array('fieldsize', 'numerical', 'min' => 1, 'max' => 100),
+            array('maxlength', 'numerical', 'min' => 1, 'max' => 512),
+            array('predetvalue', 'safe'),
+            array('idfield, fieldname, longname, position, required, fieldtype', 'safe', 'on' => 'search'),
+        );
+    }
+
+    /**
+     * @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(
+            'idfield' => 'Idfield',
+            'fieldname' => ucwords(CrugeTranslator::t('Nombre Interno')),
+            'longname' => ucwords(CrugeTranslator::t('Nombre Publico')),
+            'position' => ucwords(CrugeTranslator::t('Posicion')),
+            'required' => ucwords(CrugeTranslator::t('Requerido')),
+            'fieldtype' => ucwords(CrugeTranslator::t('Tipo')),
+            'fieldsize' => ucwords(CrugeTranslator::t('Ancho Caracteres')),
+            'maxlength' => ucwords(CrugeTranslator::t('Longitud Maxima')),
+            'showinreports' => ucwords(CrugeTranslator::t('Ver en Reportes')),
+            'useregexp' => ucwords(CrugeTranslator::t('Expresion Regular')),
+            'useregexpmsg' => ucwords(CrugeTranslator::t('Mensaje de error')),
+            'predetvalue' => ucwords(CrugeTranslator::t('Valor Predeterminado / Opciones de Lista')),
+        );
+    }
+
+    /**
+     * 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()
+    {
+        // Warning: Please modify the following code to remove attributes that
+        // should not be searched.
+
+        $criteria = new CDbCriteria;
+
+        $criteria->compare('idfield', $this->idfield);
+        $criteria->compare('fieldname', $this->fieldname, true);
+        $criteria->compare('longname', $this->longname, true);
+        $criteria->compare('position', $this->position);
+        $criteria->compare('required', $this->required);
+        $criteria->compare('fieldtype', $this->fieldtype);
+
+        return new CActiveDataProvider($this, array(
+            'criteria' => $criteria,
+            'sort' => array(
+                'defaultOrder' => array('position' => false),
+            ),
+        ));
+    }
 }