Cformmodel

<?php

/*

  • To change this template, choose Tools | Templates

  • and open the template in the editor.

*/

/**

  • Description of CreateClassifiedsForm

  • @author info_000

*/

class CreateClassifiedsForm extends CFormModel{

//put your code here


 


public &#036;fields=array();


public &#036;labels=array();


//public  &#036;rules;


    public &#036;getFields;


    public &#036;getLabels;





    	public function rules()


{

// return array(

// // name, email, subject and body are required

// array(‘rubrika’, ‘required’),

// // email has to be a valid email address

// //array(‘email’, ‘email’),

// // verifyCode needs to be entered correctly

// //array(‘verifyCode’, ‘captcha’, ‘allowEmpty’=>!CCaptcha::checkRequirements()),

// );

                			&#036;required = array();


		&#036;numerical = array();


		&#036;float = array();		


		&#036;decimal = array();


		&#036;rules = array();


		


		&#036;model=self::getFields();


		//    print_r(&#036;model);


		foreach (&#036;model as &#036;field) {


                    


			&#036;field_rule = array();


			if (&#036;field-&gt;required==1)


				array_push(&#036;required,&#036;field-&gt;varname);


			if (&#036;field-&gt;field_type=='FLOAT')


				array_push(&#036;float,&#036;field-&gt;varname);


			if (&#036;field-&gt;field_type=='DECIMAL')


				array_push(&#036;decimal,&#036;field-&gt;varname);


			if (&#036;field-&gt;field_type=='INTEGER')


				array_push(&#036;numerical,&#036;field-&gt;varname);


			if (&#036;field-&gt;field_type=='VARCHAR'||&#036;field-&gt;field_type=='TEXT') {


				&#036;field_rule = array(&#036;field-&gt;varname, 'length', 'max'=&gt;&#036;field-&gt;field_size, 'min' =&gt; &#036;field-&gt;field_size_min);


				if (&#036;field-&gt;error_message) &#036;field_rule['message'] = UserModule::t(&#036;field-&gt;error_message);


				array_push(&#036;rules,&#036;field_rule);


			}


			if (&#036;field-&gt;other_validator) {


				if (strpos(&#036;field-&gt;other_validator,'{')===0) {


					&#036;validator = (array)CJavaScript::jsonDecode(&#036;field-&gt;other_validator);


					foreach (&#036;validator as &#036;name=&gt;&#036;val) {


						&#036;field_rule = array(&#036;field-&gt;varname, &#036;name);


						&#036;field_rule = array_merge(&#036;field_rule,(array)&#036;validator[&#036;name]);


						if (&#036;field-&gt;error_message) &#036;field_rule['message'] = UserModule::t(&#036;field-&gt;error_message);


						array_push(&#036;rules,&#036;field_rule);


					}


				} else {


					&#036;field_rule = array(&#036;field-&gt;varname, &#036;field-&gt;other_validator);


					if (&#036;field-&gt;error_message) &#036;field_rule['message'] = UserModule::t(&#036;field-&gt;error_message);


					array_push(&#036;rules,&#036;field_rule);


				}


			} elseif (&#036;field-&gt;field_type=='DATE') {


                if (&#036;field-&gt;required)


                    &#036;field_rule = array(&#036;field-&gt;varname, 'date', 'format' =&gt; array('yyyy-mm-dd'));


                else


                    &#036;field_rule = array(&#036;field-&gt;varname, 'date', 'format' =&gt; array('yyyy-mm-dd','0000-00-00'), 'allowEmpty'=&gt;true);





				if (&#036;field-&gt;error_message) &#036;field_rule['message'] = UserModule::t(&#036;field-&gt;error_message);


				array_push(&#036;rules,&#036;field_rule);


			}


			if (&#036;field-&gt;match) {


				&#036;field_rule = array(&#036;field-&gt;varname, 'match', 'pattern' =&gt; &#036;field-&gt;match);


				if (&#036;field-&gt;error_message) &#036;field_rule['message'] = UserModule::t(&#036;field-&gt;error_message);


				array_push(&#036;rules,&#036;field_rule);


			}


			if (&#036;field-&gt;range) {


				&#036;field_rule = array(&#036;field-&gt;varname, 'in', 'range' =&gt; self::rangeRules(&#036;field-&gt;range));


				if (&#036;field-&gt;error_message) &#036;field_rule['message'] = UserModule::t(&#036;field-&gt;error_message);


				array_push(&#036;rules,&#036;field_rule);


			}


		}


		


	if(&#33;empty(&#036;required))	array_push(&#036;rules,array(implode(',',&#036;required), 'required'));


	if(&#33;empty(&#036;numerical))	array_push(&#036;rules,array(implode(',',&#036;numerical), 'numerical', 'integerOnly'=&gt;true));


	if(&#33;empty(&#036;float))	array_push(&#036;rules,array(implode(',',&#036;float), 'type', 'type'=&gt;'float'));


	if(&#33;empty(&#036;decimal))	array_push(&#036;rules,array(implode(',',&#036;decimal), 'match', 'pattern' =&gt; '/^&#092;s*[-+]?[0-9]*&#092;.?[0-9]+([eE][-+]?[0-9]+)?&#092;s*&#036;/'));


                               //     array_push(&#036;rules,array(implode(',',&#036;required), 'safe'));


            return &#036;rules;


}


 public function attributeLabels()


{


    return


            self::getLabels();


            


}


    public function  __get(&#036;name)


{


    if (isset(&#036;this-&gt;&#036;name))


        return &#036;this-&gt;&#036;name;


    else


        return '';


}





public function  __set(&#036;name, &#036;value)


{


    &#036;this-&gt;&#036;name = &#036;value;


}





           public static function getFields() {


       


      &#036;fields = Categories::model()-&gt;findAllByAttributes(array('extension'=&gt;'cfilter','hide'=&gt;0));


      &#036;fd=array();


      foreach(&#036;fields as &#036;field){


          &#036;comFields=new stdClass();


          &#036;fparams=json_decode(&#036;field-&gt;params);


          list(&#036;s) = ClassifiedsFields::getWidgetsParams(&#036;field-&gt;metadata);


          &#036;ex = &#036;field-&gt;metadata;


          &#036;params = (object)&#036;s[&#036;ex];


             &#036;comFields-&gt;varname= IwFunctions::FromGeo(&#036;field-&gt;name);

// $comFields->varname= IwFunctions::FromGeo($field->name);

          &#036;comFields-&gt;field_type=&#036;params-&gt;field_type;


          &#036;comFields-&gt;required=&#036;fparams-&gt;required;


            //&#036;comFields-&gt;required=


         // &#036;comFields[]=array_merge(&#036;field,&#036;s);





          &#036;fd[]=&#036;comFields;


      }


      //&#036;this-&gt;fields = &#036;fd;


      return &#036;fd;





}


   public static function getLabels() {


    


      &#036;fields = Categories::model()-&gt;findAllByAttributes(array('extension'=&gt;'cfilter','hide'=&gt;0));


      &#036;fd=array();


      foreach(&#036;fields as &#036;field){


          &#036;fd[IwFunctions::FromGeo(&#036;field-&gt;name)]=&#036;field-&gt;name;


      }


      return &#036;fd;





}


    public function init() {





        &#036;this-&gt;getFields=self::getFields();


        &#036;this-&gt;getLabels=self::getLabels();


       


    }

}

?>