Академический Документы
Профессиональный Документы
Культура Документы
CODEIGNITER
1
ELABORACION DE UN BLOG EN EL FRAMEWORK
CODEIGNITER
2
Indice
NDICE
ELABORACION DE UN BLOG EN EL FRAMEWORK CODEIGNITER..................1
Capitulo 1..................................................................................................................4
1.1 Introduccin.....................................................................................................4
1.2.1 Antecedentes................................................................................................5
1.3 Justificacin.....................................................................................................6
1.3.1.......................................................................................................................6
1.4 Objetivos.........................................................................................................7
3
Captulo 1
1.1 Introduccin
Se realizara la elaboracin de un Web Blog dinmico con la finalidad de compartir
informacin de inters dentro de la empresa. A si como opiniones, sugerencias,
comentarios con la finalidad de compartir conocimiento que sea de utilidad para
los empleados de la empresa. Para ello se empleara el uso de las tecnologas
web mediante un FRAMEWORK llamado codeigniter el cual utiliza las tecnologas
de
HTML5 , PHP, CSS .
4
1.2 Anlisis de la situacin
1.2.1 Antecedentes.
La empresa Click It Smart Technologies fue fundada hace 2 aos por el ingeniero
en sistemas Alfonso Mauro Valds Carrales con la finalidad de ofrecer soluciones
web para todos los negocios que necesiten publicidad web as como el desarrollo
de aplicaciones mviles y mantenimiento a servidores.
Gran Cantidad de
El Personal tiene dificultades en
Desarrolladores y
cuanto el idioma ingls.
programadores. Falta personal mejor capacitado.
Clientes Satisfechos Falta de responsabilidad del
Accesibilidad.
personal.
No es muy popular la empresa
Muchos competidores
Gran demanda de sitios web Nuevas empresas ofreciendo
Gran cantidad de clientes
los mismos servicios
solicitan los servicios de la
empresa
5
1.3 Justificacin
1.3.1
En el tiempo transcurrido laborando dentro de la empresa se observ que no
contaba con un medio para el compartimiento de informacin, tutoriales, opiniones
de temas de inters etc. Para eso se propuso la elaboracin de un Web Blog con
la finalidad de la interaccin y apoyo entre los mismos empleados de la empresa
para poder ayudar a los nuevos empleados as como para reforzar el
conocimiento y promover el aprendizaje de nuevas tecnologas.
1.4 Objetivos
El Objetivo de este proyecto es promover la comunicacin y colaboracin entre
los integrantes de la empresa para una mejor capacitacin ms fcil con ayuda
del mismo personal que cuenta con ms experiencia esto beneficiara a los nuevos
empleados en capacitacin.
6
1. Promover la comunicacin de informacin de inters entre los mimos
miembros de la empresa.
2. Facilitar la capacitacin del nuevo personal.
3. Ampliar la comunicacin entre los empleados con el fin de aprender y
reforzar conocimientos.
CAPTULO 2
2.1.1 METODOLOGA
7
Lluvia de ideas: Este apartado se dio para captar las ideas de cmo llevar acabo
la creacin del proyecto y as poderlas plasmar de manera correcta y evitar las
correcciones lo menor posible.
Desarrollo: Cuando ya est listo la parte de las ideas se empez con la parte del
desarrollo, este apartado se trat de creacin y modificaciones del blog conforme
se fueran dando.
8
9
2.1.2 MARCO TERICO
Elementos de un Blog.
En un blog los artculos aparecen ordenados cronolgicamente, pero en sentido
inverso; lo ms reciente es lo que se encuentra publicado en la parte superior de
la pgina, inmediatamente despus del ttulo del blog. Todos los artculos estn en
una columna central y por lo general pueden leerse completos sin necesidad de
acceder a otro enlace. Tambin se puede observar una columna lateral con
10
informacin extra; datos de identificacin del autor, enlaces de inters a otras
pginas y blogs, acceso al archivo de lo anteriormente publicado, buscador, Chat,
lbum de fotos, libro de visitas, estadsticas; etc., todo lo que el autor considere
apropiado para la temtica de la pgina o su gusto personal.
La estructura bsica de los artculos es similar a una noticia de prensa, con titular,
fecha y cuerpo del artculo.
En la parte inferior del mismo se puede encontrar el nombre del autor, la
categora, etiquetas (palabras claves) y un elemento que permite la interaccin
entre el autor y el lector: los comentarios.
Al igual que el resto de las utilidades del blog, la manera en que se van a manejar
los comentarios puede ser definida por el autor.
Por eso encontramos blogs que tienen acceso libre para comentar incluso de
manera annima y en otros hay que ser usuario registrado del servidor del
servicio de blog, Tambin el autor tiene la opcin de moderar los comentarios que
sern publicados, o solicitar una clave de confirmacin para evitar comentarios
automticos o spa.
Lo que no puede el autor es limitar el libre acceso a su blog una vez creado; de
ser esa su intencin le estara quitando la esencia al blog como medio de
comunicacin.
Creacin y publicacin de un blog.
Para crear un blog se puede seleccionar entre los proveedores de servicio
gratuito. Segn Gallego Torres (2006) los ms populares son:
Bleger (www.blogger.com)
Bitcoras (www.bitacoras.com)
Blog ala (www.blogalia.com)
Blog (www.myblog.es) Hay que llenar un formato de registro, similar al que se
utiliza para abrir una cuenta de correo electrnico; una vez registrado el usuario
tiene la posibilidad de crear uno o ms blogs, asignarle un ttulo segn la temtica
el gusto del autor y acceder a las opciones del panel, desde el cual se administra
el blog: creacin de artculos, seleccin y edicin de la plantilla, moderacin de
comentarios e incluso compartir el manejo del blog con otros autores.
11
Adems de esas opciones bsicas, cada proveedor de blogs ofrece servicios
particulares, una seccin de ayuda y preguntas frecuentes, tutoriales e incluso un
blog sobre el uso del servicio. A continuacin una breve descripcin de las
opciones principales:
Creacin de artculos: Es la opcin base de todo blog, permite publicar toda la
informacin que desee el autor, ya sea al instante o guardarlas como borrador
para publicacin posterior. Adems, toda informacin puede ser editada
posteriormente.
Se necesita de algunos conocimientos bsicos de HTML para darle un uso ms
profesional y personal y es lo que permite, adems de textos, poder incorporar
imgenes y sonido; el autor puede apoyarse en la seccin de ayuda del panel, la
cual ofrece ejemplos sencillos.
Seleccin y edicin de la plantilla: La plantilla es el aspecto visual-esttico del
blog y la base a la que puede personalizar agregando cuantas opciones considere
necesarias segn el uso que quiera dar leal blog (enlaces, lbum de fotos, libros
de visitas, estadsticas, etc.) En el panel de control el proveedor pone a
disposicin algunos modelos de plantillas, los cuales requieren de conocimientos
bsicos en HTML para ser modificadas; tambin puede consultarse la seccin de
ayuda para lo referente a partes y cdigos de la plantilla que pueden ser
modificados. La mayora de los proveedores de servicio blog ofrecen la opcin de
moderar los comentarios antes de ser publicados, el acceso de usuarios
registrados e incluso permitir comentarios annimos si el administrador del blog lo
desea.
CodeIgniter
CodeIgniter, un FRAMEWORK PHP para el desarrollo rpido de aplicaciones
web.
Codeigniter es un FRAMEWORK para el desarrollo de aplicaciones en PHP que
utiliza el MVC. Permite a los programadores Web mejorar la forma de trabajar y
hacerlo a mayor velocidad.
Al igual que cualquier FRAMEWORK est pensado para gente que tiene un
dominio, al menos medio, del lenguaje de programacin PHP. Siempre hay que
12
controlar PHP a pelo para empezar a trabajar de forma eficiente con este
FRAMEWORK (o cualquier otro).
Qu es MVC?
El Modelo Vista Controlador es un estilo de programacin en el que la aplicacin
est dividida en 3 capas:
Modelo: es dnde se procesa y obtienen los datos, la conexin con la bd.
Vista: presenta los datos en pantalla, es donde va el cdigo HTML.
Controlador: controla los datos, dicho de forma rpida obtiene datos de un
modelo, los procesa, y se los pasa a la vista.
13
Facilidad para crear nuevos mdulos, pginas o funcionalidades.
Acceso a libreras pblicas y clases. Entre otras, hay libreras para el login,
paginador, calendarios, fechas,.
Estandarizacin del cdigo. Fundamental cuando hay que tocar cdigo hecho por
otra persona o cuando trabaja ms de una persona en un mismo proyecto.
URLs amigables con SEO. Hoy en da creo que nadie duda de la importancia del
posicionamiento web.
Separacin de la lgica y arquitectura de la web, el MVC.
CodeIgniter es bastante menos rgido que otros FRAMEWORKs. Define una
manera de trabajar, pero podemos seguirla o no(esto puede convertirse en un
inconveniente tambin)
Cualquier servidor que soporte PHP+MySQL sirve para CodeIgniter.
CodeIgniter se encuentra bajo una licencia open source, es cdigo libre.
CodeIgniter usa una versin modificada del Patrn de Base de Datos Active
Record. Este patrn permite obtener, insertar y actualizar informacin in tu base
de datos con mnima codificacin. Permite queries ms seguras, ya que los
valores son escapadas automticamente por el sistema.
HTML 5
Diseado para ser utilizable por todos los desarrolladores de Open Web, esta
pgina referenca a numerosos recursos sobre las tecnologas de HTML5, que se
clasifican en varios grupos segn su funcin.
CSS3: Nos ofrece una nueva gran variedad de opciones para hacer
diseos ms sofisticados.
PHP
PHP es un lenguaje de cdigo abierto muy popular, adecuado para desarrollo web
y que puede ser incrustado en HTML. Es popular porque un gran nmero de
pginas y portales web estn creadas con PHP. Cdigo abierto significa que es de
uso libre y gratuito para todos los programadores que quieran usarlo. Incrustado
en HTML significa que en un mismo archivo vamos a poder combinar cdigo PHP
con cdigo HTML, siguiendo unas reglas.
PHP se utiliza para generar pginas web dinmicas. Recordar que llamamos
pgina esttica a aquella cuyos contenidos permanecen siempre igual, mientras
que llamamos pginas dinmicas a aquellas cuyo contenido no es el mismo
siempre. Por ejemplo, los contenidos pueden cambiar en base a los cambios que
haya en una base de datos, de bsquedas o aportaciones de los usuarios, etc.
15
Cmo trabaja PHP? El lenguaje PHP se procesa en servidores, que son
potentes ordenadores con un software y hardware especial. Cuando se escribe
una direccin tipo http://www.aprenderaprogramar.com/index.PHP en un
navegador web como Internet Explorer, Firefox o Chrome, qu ocurre? Se
envan los datos de la solicitud al servidor que los procesa, rene los datos (por
eso decimos que es un proceso dinmico) y el servidor lo que devuelve es una
pgina HTML como si fuera esttica.
En resumen:
Por regla general este tipo de lenguaje suele ser utilizado para crear contenido
dinmico y poder interactuar con el usuario.
16
2.1.3 Desarrollo
17
Al finalizar la instalacin se continu con el curso donde se vieron las
caractersticas y como utilizar la interfaz del mismo para la visualizacin de los
archivos que este software proporciona fue necesario instalar un editor de texto
llamado Sublime Text el cual proporciona un gestor de archivos de texto en
leguajes de programacin.
Una vez realizada la instalacin del editor de texto se comenz con el anlisis de
los archivos proporcionados por el software empezando por la seccin de
archivos de configuracin del FRAMEWORK.
18
configuracin llamado Autoload se encuentran las libreras, modelos, funciones,
bases de datos, configuraciones etc.
En el proyecto se emple el uso de este archivo para cargar las bases de datos,
libreras y helpers para poder utilizar unas funciones requeridas por los modelos.
En la siguiente etapa del desarrollo del sitio web se implement la conexin con
una base de datos creada en el gestor de bases de datos MYSQL.
19
Esta base de datos es llamada blog para realizar esta conexin se utilizo el
archivo llamado Database el cual nos es proporcionado por el FRAMEWORK.
Para realizar conexiones con bases de datos y poder implementar esta base de
datos en todo el sitio web sin necesidad de generar una conexin cada vez que
sea utilizada la estructura del archivo es la siguiente:
En la
siguiente <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
lnea:
$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'blog';
$db['default']['dbdriver'] = 'mysql';
$db['default']['hostname'] = 'localhost'; .
Se define el hostname o direccin donde nuestra base de datos se encuentra
alojada en el proyecto se implement de forma local utilizando un software para
crear un servidor local llamado XAMPP.
20
En la lnea: $db['default']['database'] = 'blog'; se define el nombre de la base
de datos de nuestro proyecto, la base de datos utilizada tiene el nombre de Blog.
21
La clase <?php
Blog if (!defined('BASEPATH'))
como se exit('No direct script access allowed');
visualiza en
la lnea: class Blog extends CI_Controller
class Blog
{
extends
function __construct()
{
parent::__construct();
$this->load->helper('form');
$this->load->model('menu_model');
}
}
CI_CONTROLLER con la extensin CI_CONTROLLER haciendo referencia a
que se est declarando un archivo CONTROLLER contendr casi toda la
estructura del sitio web donde se definirn las funciones, libreras, helpers, y
views que se requieren para el desarrollo del sitio web.
22
Como se <?php
haba if (!defined('BASEPATH'))
exit('No direct script access allowed');
function __construct()
{
parent::__construct();
$this->load->database();
}
mencionado la funcin principal de este modelo es para la interaccin con la base
de datos de nuestro proyecto en la siguiente lnea: class Menu_model extends
CI_Model se est definiendo una clase llamada Menu_Model con la
terminacin CI_Model para hacer referencia a que se est declarando un archivo
tipo model.
function inicio()
La funcin {
llamada
23
$this->load->view('menu');
}
nicio est siendo utilizada para llamar a la vista con el nombre de men en
esta vista anterior mente mencionada se visualizara el contenido inicial del sitio
web.
<!DOCTYPE html>
<html>
<head>
<title>Blog</title>
En este esta vista nicamente una estructura HTML 5 simple donde se define el
ttulo del sitio web la funcin ndex solo se est utilizando la vista men.
24
En este <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
controlador
se declara class Menu extends CI_Controller {
una funcin function __construct()
llamada {
ndex, en
parent::__construct();
esta
$this->load->helper('form');
funcin se
$this->load->model('menu_model');
estn
}
cargando
las vistas function index()
men, {
header y if($this->session->userdata('logged_in'))
registrarse. {
redirect('blog/entradas');
En la vista
Men }else{
como $this->load->view('menu');
$this->load->view('header');
$this->load->view('registrarse');
}
}
}
?>
anteriormente se haba mencionado solo contiene el inicio del archivo HTML 5 y el
nombre del sitio web.
En la vista Header se estn cargando los archivos de conexin con el CDN del
FRAMEWORK Bootsrap , Un archivo CSS y adems del men principal que ser
visualizado en la pgina de inicio el cual contiene la siguiente estructura:
25
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
</ul>
26
electrnico, contrasea y la confirmacin de la contrasea, el correo electrnico
ingresado ser nico y no se podr registrar otro usuario con el mismo correo
electrnico se deber utilizar uno diferente
</div>
</div>
27
Cada vez que un nuevo usuario se registra en el sitio sus datos son enviados a la
base de datos llamada Blog y se guardan en la tabla llamada Usuarios donde
se visualiza el nombre de usuario, contrasea encriptada y la cuenta de correo
electrnico.
El siguiente elemento del men inicial es el de Ver entradas, este elemento del
men est dirigido a otra vista llamada contenido donde se visualizan todo el
28
contenido que ha sido publicado por usuarios en el sitio web, su estructura es la
siguiente:
En la vista llamada contenido de la pgina entradas se agreg cdigo PHP para
poder visualizar las entradas que han sido publicadas por otros usuarios el
contendi
<?php echo $this->session->flashdata('correcto'); ?>
de todas
<?php echo $this->session->flashdata('bienvenido');?>
las
<?php
entradas se
encuentra if (empty($entradas)):
29
base_url('blog/entradas/' . $entrada->id) ?>">'. se est utilizando cdigo PHP para
recibir datos del campo de nuestra tabla entradas llamado titulo.
En el ltimo elemento del men inicial del modo usuario annimo llamado Iniciar
sesin, est dirigido a otra vista llamada Veryfilogin esta vista contiene un
formulario de acceso para que cuando el usuario annimo opte registrarse en el
sitio web para ser un usuario privilegiado pueda ingresar sus datos y acceder a
todo el contenido del sitio web.
La pgina principal del sitio web con todos los elementos anteriormente
mencionados se puede encontrar en el anexo (3).
30
Se continu con el desarrollo del CONTROLLER Blog en el cual se defini la
segunda funcin en la cual se carga las vistas llamadas nueva y registrado la
estructura de la funcin es la siguiente:
En la function nueva()
funcin {
nueva se if ($this->session->userdata('logged_in')) {
cargan 3 $session_data = $this->session->userdata('logged_in');
vistas $data['id_user'] = $session_data['id_user'];
adems $data['username'] = $session_data['username'];
para que el
$dato['email'] = $session_data['email'];
usuario
$this->load->view('entradas', $data);
tenga
$this->load->view('header');
acceso a
$this->load->view('nueva', $dato);
estas
pginas es } else {
31
privilegios para realizar nuevas publicaciones y comentarios sobre las
publicaciones ya existentes , la estructura del archivo es la siguiente:
vista se <div>
encuentra <img src="<?= base_url() ?>application/views/img/Blog.png">
la nueva
estructura </div>
del men <ul>
que solo se
<li><a href="http://localhost/blog/index.php/blog/nueva">Nueva
puede
entrada</a></li>
visualizar si
<li><a href="http://localhost/blog/index.php/blog/entradas">Ver
el usuario
entradas</a></li>
accede con
su cuenta
</ul>
en la
pgina de <div id="login2">
32
insercin de datos a la base de datos del proyecto en la tabla llamada Nuevas
entradas la estructura de la pgina entradas es la siguiente:
function recibirdatos()
En esta
{
funcin se
estn
<?= form_open('blog/recibirdatos')?>
$data = array(
recibiendo
los datos <div id="titulo">
'titulo' => $this->input->post('titulo',TRUE),
que el <h1>Titulo:<?= form_input($titulo) ?></h1>
'contenido' => $this->input->post('contenido',TRUE),
usuario ha </div>
'autor' => $this->input->post('autor',TRUE),
enviado en <div id="contenido">
'fecha' => date('Y-m-d H:i:s',TRUE)
la
); <h1>Contenido:<br>
<?= form_textarea($contenido)?>
$this->menu_model->nuevaEntrada($data);
</h1>
</div>
$this->session->set_flashdata('correcto', '<div align="center" class="alert
<div id="autor">
alert-success">
<h1>Autor:
<a href="#" class="close" data-dismiss="alert" aria-
<input type="text" name="autor" value="<?php echo $username; ?>"></h1>
label="close">×</a>
</div>
<strong>La entrada se ah publicado correctamenre</strong>
<input class="btn-lg"type="submit" value="Publicar" ></input>
</div>');
</div> redirect('blog/entradas', 'refresh');
<?= form_close()?>
}
33
publicacin, estos datos son recibidos y almacenados en un arreglo asociativo
llamado data con las siguientes variables: titulo en esta variable se almacena el
ttulo de la nueva publicacin, contenido en la variable llamada contenido es
donde se almacena todo el contenido de la entrada realizada por el usuario,
autor en la variable autor se almacena el nombre del usuario autor de la
publicacin, fecha en la variable fecha se almacena la fecha y hora de la
publicacin.
Todos estos datos son enviados al modelo Menu_model donde son procesados
y guardados en la base de datos del proyecto dentro de una tabla llamada
Entradas dentro de esta tabla se encuentran los campos: ttulo, contenido, autor
y fecha todos estos datos son guardados en la base de datos por una funcin
llamada nuevaEntrada y su estructura es la siguiente:
function nuevaEntrada($data)
{
En esta
$this->db->insert('entradas', array(
funcin se
'titulo' => $data['titulo'],
est
'contenido' => $data['contenido'],
recibiendo
la variable 'autor' => $data['autor'],
34
<title>Entradas</title>
En la lnea <div class="col-md-10">
de cdigo:
<?php echo $this->session->flashdata('correcto'); ?>
<?php
<?php
echo $this-
foreach ($entradas->result() as $entrada) { ?>
>session-
<div id="titulo">
<h1><a href="<?= base_url('index.php/blog/entradas/'.$entrada->id)?
>"><?= $entrada->titulo;?></a></h1>
</div>
<div id="contenidop">
<textarea disabled><?php echo $entrada->contenido;?></textarea>
</div>
<div id="fecha">
<h1><?= $entrada->fecha;?></h1>
</div>
<hr>
<div id="autor">
<h5>By:<?= $entrada->autor;?></h5>
</div>
<?php }
?>
>flashdata('correcto'); ?> se est utilizando un comando PHP para indicar cuando
una publicacin se ha realizado de manera exitosa de ser as se muestra el
siguiente mensaje La entrada se ha publicado correctamente este comando se
encuentra dentro de la funcin recibir datos del CONTROLLER Blog.
35
En la lnea: <h1><a href="<?= base_url('index.php/blog/entradas/'.$entrada->id)?
>"><?= $entrada->titulo;?></a></h1> se utilizan 2 comandos PHP uno llamado
base_url('index.php/blog/entradas/) esta lnea de comando nos permitir
acceder a cada una de las publicaciones o entradas que estn actualmente en la
base de datos mediante un id que cada una de las publicaciones tiene en la base
de datos, el siguiente comando $entrada->id)?> se encarga de mostrar el ttulo
de todas las publicaciones que actualmente se encuentran en la base de datos
adems de permitirnos acceder a las entradas individuales con la ayuda del
comando base_url('index.php/blog/entradas/ '.$entrada->id). Dentro de
cada entrada individual se encuentra una caja de comentarios para que los
usuarios registrados puedan realizar comentarios sobre las entradas que se
encuentran en el sitio.
Para poder utilizar esta API fue necesario crear una cuenta en
https://www.mailgun.com ,una vez creada la cuenta se cre un dominio
SANDBOX para poder asociar a donde sern enviados los correos utilizando
tambin una API KEY generada automticamente despus de crear la cuenta de
usuario ,despus instalar un manejador de dependencias llamado COMPOSER
despus de instalar COMPOSER se tuvo que descargar una librera llamada
MAILGUN.
36
Para poder
enviar los <?php
datos se function maile($autor, $text, $email_comentario,$email_autor)
tiene que {
hacer uso try{
de una
# Instantiate the client.
variable
$mgClient = new Mailgun('key-6e1864e0bbbf6e20133372ec5d0e8787');
llamada
$domain = "sandbox41165099550640ebad5da087fb66be92.mailgun.org";
$mgClient
# Make the call to the client.
la cual
contiene la $result = $mgClient->sendMessage($domain, array(
dominio SANDBOX al cual son dirigidos los emails para poder ser enviados a los
usuarios.
El helper Envial_helper se reciben los datos que sern enviados por correo
electrnico y son recibidos mediante parmetros por la funcin maile en las
variables: ($subject, $autor, $text, $email_comentario,$email_autor).
Estas variables contendrn los datos del usuario autor de la entrada, el usuario
autor del comentario, el ttulo de la entrada que fue comentada y el comentario
37
que se realiz en esta entrada estos datos son enviados mediante las siguientes
lneas:
Bibliografas:
https://sites.google.com/site/psiccabrejos/3---marco-teorico
http://codeigniter.com/
https://developer.mozilla.org/es/docs/HTML/HTML5
http://aprenderaprogramar.com/index.PHP?
option=com_content&view=article&id=492:ique-es-PHP-y-ipara-que-sirve-un-
potente-lenguaje-de-programacion-para-crear-paginas-web-
cu00803b&catid=70:tutorial-basico-programador-web-PHP-desde-
cero&Itemid=193/
38
http://mantenimientosdeunapc.blogspot.mx/2011/11/que-es-xampp-y-para-que-
sirve.html
http://www.desarrolloweb.com/articulos/CONTROLLERs-codeigniter.html
http://blogandweb.com/PHP/code-igniter-vistas/
http://www.desarrolloweb.com/articulos/modelos-codeIgniter.html
https://alanchavez.com/si-eres-desarrollador-web-debes-utilizar-bootstrap-y-punto/
http://www.desarrolloweb.com/articulos/helpers-codeigniter.html
39