= MVC y otros... == models * la clase ha de extender de CI_Model * se carga con ''$this->load->model(''[,''][,'TRUE']);'' * el tercer parámetro obliga a la conectar al cargar el modelo (si está a TRUE) * en lugar de TRUE se le pueden pasar los parámetros de conexión si no se van a utilizar los definidos en ''/config/database.php'' * h[[ttp://codeigniter.com/user_guide/general/models.html]] == controllers * la clase ha de extender de ''CI_Controller'' * cargar helper -> ''$this->load->helper('')'' * crear archivo PHP con el mismo nombre que la clase (en minúsculas) * la función ''index'' se ejecuta "automáticamente" al invocar a la clase * podemos cargar una vista con ''$this->load->view()'' * añadir en el contructor ''$this->load->scaffolding(tabla)'' * añadir en ''index()'' la carga de la tabla -> ''$data['query'] = $this->db->get(tabla)'' == views * para cargar una vista -> ''$this->load->view('');'' * crear archivo con el nombre de la clase y "_view" (no obligatorio, por normativa) * utilizar sintaxis PHP para mostrar datos del controller en la vista * recorrer los registros de la tabla on ''$query->result()'' y ''$row->campo'' * añadir función del helper **URL** ''id,'comentarios');?>'' que se encargará de llamar a la función ''comments'' de la clase ''Blog'' == helper * para cargar helper(s) * ''$this->load->helper('');'' * ''$this->load->helper(array('','');'' * disponibles * url (poner ''echo'' delante) * anchor('') -> enlace al ''controlador[/método]'' * $this->uri->segment(n) <- recoge el parámetro posición n de la URL * form (poner ''echo'' delante) * form_open('') <- ''controlador[/método]'' es quien recoge los datos * form_label('','') * form_input(array('name' => 'nombre', 'id' => 'nombre', 'size' => '50', 'value' => set_value('nombre'))) <- set_value sirve para la recarga de datos en el formulario * form_password(array('name' => 'password', 'id' => 'password', 'size' => '50')); * form_submit('',''); * form_close() == library * ''$this->load->library('');'' * ''$this->load->library(array('',''));'' * disponibles * form_validation * ''$this->form_validation->set_rules('','','validador|validador|funcion_php')'' * ''$array = array("name" => "trim|required","email" => "trim|required|valid_email"); $this->form_validation->set_rules($array)'' * se pueden encadenar validadores y funciones PHP en cualquier orden * los cambios que efectuen las funciones PHP se mantienen al recuperar el campo * validadores: required, valid_email, matches[], min_length[n], etc... * http://codeigniter.com/user_guide/libraries/form_validation.html#rulereference * se puede crear una fución PHP para validar, al margen de las vistas con ''callback_funcion_check''. Solo hay que crear la ''funcion_check'' en el controlador * http://codeigniter.com/user_guide/libraries/form_validation.html#callbacks * http://codeigniter.com/user_guide/libraries/form_validation.html#validationrules * se pueden crear grupo de validadores en ''application/config/form_validation.php'' para su uso global y automatizado * ese fichero ha de contener un array $config y arrays contenidos, con etiqueta y dentro las reglas a validar * se puede llamar automaticamente al hacer un ''$this->form_validation->run()'' * se ejecuta automaticamente al hacer un ''$this->form_validation->run()'' si existe una etiqueta de grupo que coincida con la clase/método * http://codeigniter.com/user_guide/libraries/form_validation.html#savingtoconfig * funciones "evidentes": trim, md5, sha1 * ''$this->form_validation->set_message('',''' * ''$this->form_validation->run()'' * ''$this->input->post('')'' -> recupera los campos, con las modificaciones que se hayan podido efectuar en ''set_rules'', con protección XSS si está activo en ''config/config.php'' * pagination * ''$this->load->library('pagination');'' * ''$config = array("base_url","total_rows","per_page","uri_segment"];'' <- rellenar * ''$this->pagination->initialize($config);'' * ''$data['pagination'] = $this->pagination->create_links();'' * unit_test * ''$this->unit->run(,,);'' * test = array de pruebas * resultado = array (o no) de resultados * se ejecuta un ''foreach'' del array test ejecutando el ''$this->unit->run'' * ''$this->unit->report();'' * table * session * ''$this->session->sess_destroy();'' * ''$this->session->sess_create();'' * ''$this->session->set_userdata(array(....));'' * ''$this->session->userdata();'' * email * [[http://codeigniter.com/user_guide/libraries/email.html]] * [[web:php:codeigniter:day3|]] * creación de una librería * en el constructor, hacer una instancia:''$this->CI = & get_instance();'' para poder acceder a todas las funciones de CodeIgniter (CI puede ser cualquier nombre, solo hay que referenciarse a él) * por ejemplo, ''$this->CI->db->getwhere(....)''