Mis estimados amigos, bienvenidos a esta primera parte de como usar el framework para PHP: CodeIgniter. En esta primera parte veremos cómo configurar CI y cómo usar su sistema de views, ademas de intentar conseguir una novia para Pley();.
CI es un framework orientado a objetos, aplicando el patrón de diseño Modelo Vista Controlador. Voy a dar como supuesto que todos manejan medianamente bien php y que, al igual que yo, jamas en su vida habían usado un framework. Empecemos descargando codeignaiter. Descomprimanlo y subanlo a su hosting favorito (localhost). Renombren la carpeta con el nombre del proyecto que en este caso y en honor a "Pley();" se llamara "quiero-novia" el cual sera un catalogo para una florería.
Tenemos la carpeta user_guide, system e index.php. La guía es la misma que se encuentra en su sitio oficial. El index es el mismo que se usara en este proyecto y en system está todo lo que hará funcionar el sistema, por tanto solo nos interesan los 2 últimos.
Por ultimo, creen una base de datos para el proyecto en MySQL llamada "garageflash".
Ya todo esto listo, ¡manos a la obra! la carpeta en la cual programaremos nuestra aplicación es justamente application, alojada en la carpeta system.
Empezaremos editando los archivos de configuración que necesitaremos para empezar a programar
database.php
Editaremos los datos para la conexión a nuestra DB favorita: garageflash en MySQL.
El 'default_controller' se refiere a el controlador o pagina principal **cof cof clase cof cof ** en la cual programaremos nuestra aplicación, mas adelante ahondaremos en esto.
'scafolding_trigger' sirve para usar los mentados scafolding (administración pre-fabricada), pero como no me gusta usarlos por fundadas razones dejaremos esta opción en blanco ¿razones?:
No se me da la gana.
Son muy estáticas, difíciles de adaptar.
Inseguras, dentro de el apartado adaptar me referías integrarlas a un sistema de usuarios.
En el video tutorial (en ingles) muestran como usarlas, pero como a mi no me gustan.
Empezando a programar el proyecto
Recordarás que a 'default_controller' le asignamos 'floreria'. Así se llamara nuestra clase. Creamos el archivo 'floreria.php' en la carpeta system/aplication/controllers, en el cual crearemos nuestra clase que obviamente heredara de la clase controladores.
Código :
class Floreria extends Controller {
function Floreria ()
{
parent::Controller();
}
function index()
{
$this->load->view('floreria');
}
}
Dentro de esta clase está la función que siempre se llamara index. En esta clase pondremos todo lo que queremos que se muestre en la primera pantalla de nuestra clase. Si eres buen observador te darás cuenta que se esta llamando a la clase view, que es la que usaremos para manejar nuestros templates. Como primer paso, escribiremos el titulo y encabezado en nuestro template. Este código debe ir en un archivo nuevo en: system/aplication/views/floreria.php. Ese será nuestro template:
Código :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<head>
<title>Quiero Novia</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<h1>Flores Para Conseguir Novia</h1>
</body>
</html>
Grabamos y vemos el resultado en nuestro navegador.
Ahora nos toca enviar variables a nuestro template, para esto modificaremos nuestro template del siguiente modo:
Y luego modificaremos nuestra función index() del siguiente modo para poder enviarle las variables requeridas:
Código :
class Floreria extends Controller {
function Floreria ()
{
parent::Controller();
}
function index()
{
$datos['titulo']='Quiero Novia';
$datos['encabezado']='Una Novia para Pley';
$this->load->view('floreria',$datos);
}
}
A la función view, además del nombre del template, le entregamos un array donde sus vectores serán las variables que se usaran en dicho template. Mira el resultado en el navegador.
Para en un futuro aplicarle formato a esta cosa y mantener la misma estructura en todo el sitio, separaremos el template en 3 partes:
Ahora nuestra función index() de la clase florería quedaría así:
Código :
function index()
{
$datos['titulo']='Quiero Novia';
$datos['encabezado']='Una Novia para Pley';
$this->load->view('header',$datos);
$this->load->view('floreria',$datos);
$this->load->view('foot);
}
Ahora subiremos datos a nuestro sistema, para lo cual crearemos una segunda clase llamada 'admin' en la cual administraremos el sistema. En este paso voy a obviar el infaltable sistema de usuarios, para el cual pueden seguir esta serie de tutoriales que trata a profundidad el tema.
Juas ! Oye, esta muuuy bueno, y colorido ademas. Lo checare en detalle... Enhorabuena ! Por:M@U
... O incluso si van a ser caítulos no seria mejor un curso? o sino un tutorial, porque se supone que los tips son cosas pequeñas truquitos, me parece muy extenso el que estas haciendo, mmmm como que esta fuera de lugar, es olo mi humilde opinion Por:drarock
WOOOOW drarock va a hacer un nuevo curso *c-o-m-p-l-e-t-o* de C.I. y le va a dar un formato espectacular!! resumido, interesante, con imagenes y tecnicamente perfecto!! te felicito drarock! gracias por ser parte de la solucion y no del problema!! Por:siddharta
Bueno, bueno si se malinterpretó lo que quize decir, disculpen, y sí me parece un tema interesante, he escuchado que CodeIgniter es un buen framework, y espero yo en el futuro poder postear algo igual sobre CakePHP cuando lo termine de aprender y poder compartir el conocimiento. Por:drarock
Muy bueno, Inyaka. Casi, casi dejas de apestar con esto!!! drarock. En parte tienes razón, es posible que estas cosas vayan mejor en un tutorial o un curso (aunque eso realmente dependerá de hasta dónde quiera llegar Inyaka con los artículos), pero él está en su derecho de publicarlo como tip (seguramente porque no quiere entrar en la interminable cola de tutoriales pendientes de revisión); si se considera que debería ser un tuto, ya F se encargará de publicarlo como tal (como le pasó a elichinet). En cualquier caso, tu observación es apreciada. Parece que éste va a ser otro de esos experimentos de tips concatenados, esperaré ansioso el segundo, a ver si me animo con el CI. Por:The Fricky!
The Fricky! :
pero él está en su derecho de publicarlo como tip (seguramente porque no quiere entrar en la interminable cola de tutoriales pendientes de revisión)
O por que esta en búsqueda de una dotación el triple de grande de ClabLvL para llenarse de C_C, tanto como le sea posible... Juas! Que cosas...
Como sea el esta en su derecho de publicarlos como quiera, siempre y cuando lo haga rápido! Por:M@U
Y tu tip ha sido publicado. Medio doloroso de editar... Por:Freddie
yo hace poco descubri cakephp, y me encanto. Trate codeigniter primero, pero no me funciono en IIS. Por:argonauta-blog
Inyaka buen inicio
*Pero con un tutorial hubieras tenido más clablevel Por:Otaku RzO
Otaku RzO :
*Pero con un tutorial hubieras tenido más clablevel
¿por que se interesan mas en mi clablevel que en el tip que hice con tanto esmero ? Por:Inyaka
weputaa!!! meses buscando un tuto para iniciarme en codeigniter porque mi jefe me lo pedia y tenia que ser cristalab, gracias! Por:panchokira-blog
Ami me parece bueno el tuto (o tip).. CI es muy buen framework... a ver si logro terminar mi cms para subirlo al group de google Por:CarlosN
Excelente Framework, es el que uso en TODOS mis proyectos, ya llevo rato utilizándolo, si alguien tiene alguna duda sobre el, no dude en preguntárme, mi mail es:
Yo compre un domonio .com, como creo la base de datos en MySQL?
Lo unico que encontré en el panel de control plesk de mi domonio fue una opcion que dice crear base de datos y me deja crearla, pero solo me pone el nombre y ya se autocrea...
Pero me conecto por FTP y no se donde quedan guardadas las bases de datos... me pueden asesorar en ese aspecto? Por:Disculpa mi ignorancia pe
está bueno Por:avali2-blog
Muy bueno el tip! =D minutos de encontrar este tip había descargado el CI pero no le di bola pq no sabia por donde empezar... pero ya despues de leer esto... estoy probando todo... Gracias Por:Zull
tengo un problema, e intentado realizar una plantilla con frames (marcos cabeza,menu_izquierdo,cuerpo), el problema esta en como llamar desde mi index a esas paginas, ya que mi index es el contenedor de las etiquetas frames, espero que se entienda. no se si Tubieras algun Ejemplo al REspecto
Gracias Por:Nando-blog
se pueden usar frames, tecnicamente de poder se puede hacer
¡pero por amor lo mas sagrado olvida esa absurda idea! :sock: ¡usar frames en pleno año 2008 ! Por:Inyaka