Los helper son basicamente funciones que nos ayudaran en el proceso del desarrollo que podemos llamar desde las vistas o controladores y no digo modelos por que no se deberia llamarlos desde hay.
crearlas son sumamente facil es mas si es que tienes una funcion ya escrita en php simplemente la puedes copiar y comodolar algunas cosas si es que esta trabajando con base de datos de lo contrario no deberia ser necesario mover nada y como suelo hacer poco floro y mas accion.
ubicamos la carpeta donde debemos tener los helper y no es nada dificil por que codeigniter ya viene con una carpeta con ese nombre.
ahora puedes crear un archivo php pero debe tener un sufijo «_helper» por ejemplo en la imagen tengo 2 helper que se llama sistema y web pero cumpliendo con el requisito de codeigniter se debe colocar «_helper» y entonces queda sistema_helper y web_helper.
ahora abrimos el archivo y comenzamos a programar y veran lo facil que es en este caso voy a crear 2 ejemplos de helper 1 basica y la otra utlizando base de datos.
1) crearemos un helper que nos ayude a crear url amigables una funcion que le pasen un string y te devuelva una cadena para que pase tranquilamente como url.
//esto no es obligatorio pero por un tema de seguridad que nos dice si BASEPATH no esta definido no va a cargar if (!defined('BASEPATH')){exit('No direct script access allowed');} //aqui es simple preguntamos si no existe la funcion urls_amigables la podemos crear de lo contrario no se crea if (!function_exists('urls_amigables')) { //creamos la funcion y no explico mas sobre que es cada linea por que eso ya es otro tema. function urls_amigables($url) { $url = strtolower($url); $find = array('á', 'é', 'Ã', 'ó', 'ú', 'ñ'); $repl = array('a', 'e', 'i', 'o', 'u', 'n'); $url = str_replace ($find, $repl, $url); $find = array(' ', '&', '\r\n', '\n', '+'); $url = str_replace ($find, '-', $url); $find = array('/[^a-z0-9\-<>]/', '/[\-]+/', '/<[^>]*>/'); $repl = array('', '-', ''); $url = preg_replace ($find, $repl, $url); return $url; } } |
2) queremos un helper que revise la base de datos y sepa cual es el ultimo codigo que se tiene y a ese codigo le sumamos 1 para que sea consecutivo la secuencia de codigos (lo especial es como instaciamos para poder trabajar con la base de datos)
//esto no es obligatorio pero por un tema de seguridad que nos dice si BASEPATH no esta definido no va a cargar if (!defined('BASEPATH')){exit('No direct script access allowed');} //aqui es simple preguntamos si no existe la funcion urls_amigables la podemos crear de lo contrario no se crea if (!function_exists('codigo_compra')) { function codigo_compra() { //para poder usar la base de datos en el helper debemos instanciar al core de codeigniter $CI= & get_instance(); //al ser instanciado es el equivalente a $this que se tiene en control //el siguiente proceso facil de entender igual no va al caso if ($CI->db->get("pedidos")->num_rows()>0) { $num=$CI->db->order_by("id","desc")->get("pedidos")->row_array(); $num= (int) $num["codigo"]; return str_pad($num+1, 8, "0", STR_PAD_LEFT); } else { return str_pad(1, 10, "0", STR_PAD_LEFT); } } } |
si ya tiene cu helper lo unico que falta es cargarlo en al carpeta config en el archivo autoload.php y buscamos la linea donde muestra:
$autoload['helper'] = array(); |
ahora solo debe colocar el nombre de tu helper para que cargue y no es necesario que coloques el sufijo «_helper»
$autoload['helper'] = array("mihelper"); |