SHARE
TWEET

Untitled

a guest Jan 7th, 2013 23 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2.  
  3. class Master_testimonials_model extends CI_Model
  4. {
  5.  
  6. public $language = 'english';
  7. public $incomplete_inputs = '';
  8. public $succesful_validation_msg = '';
  9.  
  10. function __construct()
  11. {
  12.  
  13.         parent::__construct();
  14.        
  15. }
  16.  
  17. /*============================*/
  18. // get_num_of_new_testimonials
  19. /*============================*/
  20. public function get_num_of_new_testimonials() {
  21.  
  22.         $num_of_new_testimonials_q = $this->db->get_where('nv_cms_testimonials',array('testimonial_approved'=>0));
  23.         return $num_of_new_testimonials_q->num_rows();
  24.        
  25. }
  26. /*============================*/
  27. // get_new_testimonials
  28. /*============================*/
  29. public function get_new_testimonials()
  30. {
  31.         $new_testimonials_q = $this->db->get_where('nv_cms_testimonials',array('testimonial_approved'=>0));
  32.         return $new_testimonials_q;
  33. }
  34. /*============================*/
  35. // get_all_testimonials_with_pagination
  36. /*============================*/
  37. public function get_all_testimonials_with_pagination($limit, $offset) {
  38.         $testimonials = $this->db->get_where('nv_cms_testimonials',array('testimonial_approved'=>1),$limit,$offset);
  39.         return $testimonials;
  40. }
  41. /*============================*/
  42. // get_all_testimonials
  43. /*============================*/
  44. public function get_all_testimonials() {
  45.  
  46.         $testimonials = $this->db->get_where('nv_cms_testimonials',array('testimonial_approved'=>1));
  47.         return $testimonials->num_rows();
  48.        
  49. }
  50.  
  51. /*========================*/
  52. //get_config_value_plain()
  53. /*========================*/
  54. public function get_config_value_plain($config_name) {
  55.         $config_value = $this->db->get_where('nv_cms_testimonials_config',array('config_name'=>$config_name))->row()->config_value;
  56.         return $config_value;
  57. }
  58. /*=======================*/
  59. //update_required_fields()
  60. /*=======================*/
  61. public function update_required_fields()
  62. {
  63.         $update = array("config_value"=>$this->input->post('tc_require_email'));
  64.         $this->db->where('config_name','tc_require_email');
  65.         $this->db->update('nv_cms_testimonials_config',$update);
  66.                                        
  67.         $update = array("config_value"=>$this->input->post('tc_require_website'));
  68.         $this->db->where('config_name','tc_require_website');
  69.         $this->db->update('nv_cms_testimonials_config',$update);
  70.        
  71.         $update = array("config_value"=>$this->input->post('tc_require_phone'));
  72.         $this->db->where('config_name','tc_require_phone');
  73.         $this->db->update('nv_cms_testimonials_config',$update);
  74.  
  75. }
  76. /*=========================*/
  77. //set_config_value_plain()
  78. /*=========================*/
  79. public function set_config_value_plain($config_name,$config_value) {
  80.  
  81. $update = array("config_value"=>$config_value);
  82. $this->db->where("config_name",$config_name);
  83. $this->db->update('nv_cms_testimonials_config',$update);
  84.        
  85. }
  86.  
  87. /*=========================*/
  88. // get_testimonial_by_id()
  89. /*=========================*/
  90. public function get_testimonial_by_id($id)
  91. {
  92.         $testimonial_q = $this->db->get_where('nv_cms_testimonials',array('id'=>$id));
  93.        
  94.         return $testimonial_q->row();
  95.  
  96. }
  97.  
  98. /*===========================*/
  99. // set_form_validation_rules
  100. /*===========================*/
  101. public function set_form_validation_rules($field) {
  102.  
  103.         if(strcasecmp($field, 'testimonial_author_email') == 0 )
  104.                 {
  105.                
  106.                         $tc_require_email = $this->get_config_value_plain('tc_require_email');
  107.                         $field_rules = $tc_require_email === 'true' ? 'required|valid_email' : '';
  108.                         return $field_rules;
  109.                
  110.                 }
  111.         elseif(strcasecmp($field, 'testimonial_author_phone') == 0 )
  112.                 {
  113.                         $tc_require_phone = $this->get_config_value_plain('tc_require_phone');
  114.                         $field_rules = $tc_require_phone === 'true' ? 'required': '';
  115.                         return $field_rules;
  116.                 }
  117.         elseif(strcasecmp($field, 'testimonial_author_website') == 0 )
  118.                 {
  119.                         $tc_require_website = $this->get_config_value_plain('tc_require_website');
  120.                         $field_rules = $tc_require_website === 'true' ? 'required': '';
  121.                         return $field_rules;
  122.                
  123.                 }
  124. }
  125.  
  126. /*======================*/
  127. // update_testimonial
  128. /*=====================*/
  129.         public function update_testimonial($id)
  130.         {
  131.        
  132.  
  133.                 $input_fields = array(
  134.                
  135.                array(
  136.                      'field'   => 'testimonial',
  137.                      'label'   => 'name',
  138.                      'rules'   => 'required'
  139.                   ),
  140.                array(
  141.                      'field'   => 'testimonial_author',
  142.                      'label'   => 'phone',
  143.                      'rules'   => 'required'
  144.                   ),
  145.                 array(
  146.                      'field'   => 'testimonial_author_email',
  147.                      'label'   => 'Email',
  148.                      'rules'   => $this->set_form_validation_rules('testimonial_author_email')
  149.                   ),
  150.                 array(
  151.                      'field'   => 'testimonial_author_phone',
  152.                      'label'   => 'phone',
  153.                      'rules'   => $this->set_form_validation_rules('testimonial_author_phone')
  154.                   ),
  155.                array(
  156.                      'field'   => 'testimonial_author_website',
  157.                      'label'   => 'email',
  158.                      'rules'   => $this->set_form_validation_rules('testimonial_author_website')
  159.                   )
  160.             );
  161.  
  162.         if($this->validate_form($input_fields,$this->language))
  163.                 {
  164.                
  165.                         /*manually map the inputs to the database table columns*/
  166.                        
  167.                         $update = array(
  168.                'testimonial' => $this->input->post('testimonial'),
  169.                'author_name' => $this->input->post('testimonial_author'),
  170.                'author_email' => $this->input->post('testimonial_author_email'),
  171.                'author_phone' => preg_replace("/[^0-9]/", "", $this->input->post('testimonial_author_phone')),
  172.                'author_website' => $this->input->post('testimonial_author_website')
  173.             );
  174.                         $this->db->where('id',$id);
  175.                         $this->db->update('nv_cms_testimonials', $update);
  176.                        
  177.                         echo json_encode(array('validation_status'=>true,'validation_message'=>$this->succesful_validation_msg));
  178.                 }
  179.                
  180.        
  181.         }
  182.        
  183.  
  184.        
  185.  
  186. /*=========================*/
  187. //      validate_form()
  188. /*=========================*/
  189.        
  190.         public function validate_form($input_fields,$language)
  191.         {
  192.        
  193.         if(strcasecmp($language, 'spanish') == 0)
  194.         {
  195.                 /*status messages*/
  196.                 $this->incomplete_inputs = 'Por favor de llenar todos los datos!';
  197.                 $this->succesful_validation_msg = 'Su formulario ha sido enviado! Mucha Gracias!';
  198.                
  199.         } elseif(strcasecmp($language, 'english') == 0){
  200.        
  201.                 /*status messages*/
  202.                 $this->incomplete_inputs = 'Please fill in all the fields!';
  203.                 $this->succesful_validation_msg = 'Your Settings have been saved! ';
  204.                 }
  205.                
  206.         //error if some or all of the fields are not completed
  207.         $incomplete_form_errors = array('validation_status'=>false,'validation_message'=>$this->incomplete_inputs);
  208.        
  209.         /*load form validation library*/
  210.         $this->load->library('form_validation');
  211.        
  212.         $this->form_validation->set_rules($input_fields);
  213.        
  214.         $this->form_validation->set_error_delimiters('', '');
  215.        
  216.         //counter to keep track of empty/invalid inputs
  217.         $inputs_incomplete_tracker=0; // start with 0, we assume all to have data in them...
  218.        
  219.         /*check that all $post inputs have data in them */
  220.         foreach($input_fields as $input)
  221.         {
  222.                 if(($this->input->post($input['field']) == FALSE) &&
  223.                 (strpos($input['rules'],'required') !== FALSE) )
  224.                 {
  225.                         $inputs_incomplete_tracker++;
  226.                         $incomplete_form_errors[$input['field'].'_error'] = true;
  227.                         $incomplete_form_errors[$input['field'].'_error_msg'] = $input['field'];
  228.                 }
  229.  
  230.         }
  231.        
  232.         if($inputs_incomplete_tracker == 0)//zero means there are 0 uncompleted inputs... all have been completed (filled in by user)
  233.         {
  234.         //all inputs have data in them.. so now we check the validity of the inputs/data....
  235.        
  236.                 if($this->form_validation->run() == TRUE)
  237.                         {
  238.                                        
  239.                                         //do what ever we need to do with the data here
  240.                                         return true;
  241.                         }//if
  242.                        
  243.                 else   
  244.                         {
  245.                        
  246.                         $json_error_msgs= array("validation_status"=>false,"validation_message"=>false);
  247.                        
  248.                                 foreach($input_fields as $input)
  249.                                         {
  250.                                                         $input_error_key = $input['field'].'_error';
  251.                                                         $input_error_msg = $input['field'].'_error_msg';
  252.                                                        
  253.                                                 if($this->form_validation->error($input['field']) !== '')// if there error message for a specific input is not blank then we have an error for said input
  254.                                                 {
  255.                                                         $json_error_msgs[$input_error_key] = true;
  256.                                                         $json_error_msgs[$input_error_msg] = $this->form_validation->error($input['field']);
  257.                                                        
  258.                                                 }//if
  259.                                                 else{
  260.                                                
  261.                                                                 $json_error_msgs[$input_error_key] = false;
  262.                                                                 $json_error_msgs[$input_error_msg] = null;
  263.                                                          }//else
  264.                                                
  265.                                         }//foreach
  266.                                        
  267.                                        
  268.                                                
  269.                                         //return all error messages back to the client-side js
  270.                                         echo json_encode($json_error_msgs);
  271.                                         return false;
  272.                         }//else
  273.        
  274.         }//if
  275.         else{
  276.        
  277.                
  278.                 echo json_encode($incomplete_form_errors);
  279.                
  280.                 return false;
  281.  
  282.         }//else
  283.        
  284. }//validate_form
  285.  
  286. }//Master_testimonials_model
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top