Añadir nuevas funciones a los helpers que vienen en CodeIgniter es realmente sencillo. Lo primero que tenemos que hacer es crearnos un archivo con el siguiente formato de nombre “prefijo_nombre_helper.php” en el directorio helpers de nuestra aplicación. El prefijo será usualmente MY, aunque esto es configurable. Vamos a ver un ejemplo y vamos a extender el helper html. Para ello creamos un archivo llamado MY_html_helper.php cuyo código es el siguiente:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); if( ! function_exists('link_tag_multiple')) { function link_tag_multiple($links) { $link_result = array(); if(is_array($links)) { if(count($links) > 0) { foreach($links as $link) { $link_result[] = link_tag($link); } } else { return FALSE; } } else { return FALSE; } return $link_result; } } if( ! function_exists('script')) { function script($src = '', $language = "JavaScript") { $CI = & get_instance(); $script = '<script '; if(is_array($src)) { $script .= 'language="'.$src['language'].'" src="'; if(strpos($src['src'],"://") == FALSE) { $script .= $CI->config->slash_item('base_url').$src['src']; } else { $script .= $src['src']; } } else { $script .= 'language="'.$language.'" src="'; if(strpos($src,"://") == FALSE) { $script .= $CI->config->slash_item('base_url').$src; } else { $script .= $src; } } $script .= '"></script>'; return $script; } } if( ! function_exists('script_multiple')) { function script_multiple($scripts) { $scripts_result = array(); if(is_array($scripts)) { if(count($scripts) > 0) { foreach($scripts as $script) { $scripts_result[] = script($script['src'], $script['language']); } } else { return FALSE; } } else { return FALSE; } return $scripts_result; } }
Bien como se puede ver con la primera linea evitamos el acceso directo a este archivo. Despues definimos tres nuevas funciones, siempre que no existieran antes. Acabamos de extender nuestro helper. Ahora al cargarlo disponemos de estas tres nuevas funciones.
Si a alguien le intereas esas tres funciones las uso para añadir multiples CSS en una vista y para añadir scripts de JavaScript.
Fe de erratas:
En el código original la función script_multiple hace una llamada a la función script y los parámetros estaban intercambiados. Es decir, antes de la corrección se pasaba $script[‘language’] y $script[‘src’] cuando debería ser $script[‘src’] y $script[‘language’]. Esto ya está corregido en esta edición.
Artículos relacionados:
Artículos relacionados:
Tags: CodeIgniter, PHP
Muy buen helper, han pasado los años y aún sirve. Sólo le hice un pequeño cambio y es usar la funcion implode de php para que con las funciones “multiple” también retorne un texto y asi usarlo directamente en las vistas.