Vous êtes sur la page 1sur 12

TUTORIAL PARA CREAR UN MODULO EN CODEIGNITER Christian A.

Vzquez Villanueva

Desarrollo de un modulo de registro de periodos vacacionales as como la prima correspondiente a estos periodos

1. Definir tabla en nuestra base datos ( creada previamente e.j sistema) Para crear la tabla hay dos opciones ir a localhost/phpmyadmin/ A) entrar a las base de datos sistema oprimir el boton sql y copiar el siguiente codigo CREATE TABLE IF NOT EXISTS `vacaciones` ( `id` int(11) NOT NULL auto_increment, `nombre` varchar(255) NOT NULL, `inicia` date NOT NULL, `termina` date NOT NULL, `prima` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

B) Crerala manualmente como se muestra en el video

2. Cofiguracion a) En codeigniter hay 2 archivos importantes para la configuracin system\application\config \confi.php

aqu es importante el poner el url de nuestra aplicacin


$config['base_url'] = "http://localhost/aplicacion/";

system\application\config\database.php
$db['default']['hostname'] $db['default']['username'] $db['default']['password'] $db['default']['database'] $db['default']['dbdriver'] = = = = = "localhost"; "root"; "admin"; "sistema"; "mysql";

b) En codeigniter hay 3 carpetas importates para el desarrollo de un modulo

system\application\controllers ---> aqu van los archivos controladores system\application\model s ----> aqu van los archivos modelo system\application\views ----> aqu van los archivos vista

3. Creando el controlador de nuestro modulo En la carpeta de controlador crear un archivo con el nombre de vacaciones.php

controllers/ vacaciones.php

<?php class Vacaciones extends Controller { function Vacaciones() { parent::Controller(); $this->load->model('Vacaciones_model'); } /// pantalla de bienvenida al modulo de vacaciones function index(){ $data['seccion'] = "home";

$partials = array('content'=>'vacaciones/home'); $this->template->load('plantilla', $partials, $data); } /// muestra todos los registros de vacaciones en una tabla function admin(){ $data['vacaciones'] = $this->Vacaciones_model->getTodos(); $partials = array('content'=>'vacaciones/Admin'); $this->template->load('plantilla', $partials, $data); }

// muestra formulario para sumar nuevo registro function add(){ $this->load->helper('form'); $data['css'] = array('js/datePicker/jquery.datepick.css'); $data['js'] = array('js/jquery.datepick.js', 'js/jquery.datepick-es.js', 'js/jquery.datepick.validation.pack.js', 'js/admin/banner.js'); $partials = array('content'=>'vacaciones/Add'); $this->template->load('plantilla', $partials, $data); }

// muestra formulario con campos llenos para editar un registro function edit(){ $this->load->helper('form'); if(is_numeric($this->uri->segment(3))){ $id = $this->uri->segment(3); $data['vacaciones'] = $this->Vacaciones_model->getDetalles($id); }else{ redirect('vacaciones/add', 'refresh'); } $data['css'] = array('js/datePicker/jquery.datepick.css'); $data['js'] = array('js/jquery.datepick.js', 'js/jquery.datepick-es.js', 'js/jquery.datepick.validation.pack.js', 'js/admin/banner.js'); $partials = array('content'=>'vacaciones/Add'); $this->template->load('plantilla', $partials, $data); }

/// funcion

para salvar un registro vacacional

function save(){ $this->load->helper('form'); $dataSet=$_POST; if(isset($dataSet['submit'])){ unset($dataSet['submit']); if(!empty($dataSet['id'])){ registro $id=$dataSet['id']; unset($dataSet['id']); $this->Vacaciones_model->saveVacacionesData($id,$dataSet); // se invoca funcion del modelo para actualizar redirect('vacaciones/admin', 'refresh'); } else { /// si no existe id se agrega el registro // se invoca /// si el id tiene valor se actualiza el

$this->Vacaciones_model->addVacacionesData($dataSet); funcion del modelo para agregar redirect('vacaciones/admin', 'refresh'); } } }

// funcion para borrar un resgitro vacacional con id function delete($id) { $this->load->model('Vacaciones_model'); if ($this->Vacaciones_model->delete($id)){ redirect('vacaciones/admin', 'refresh'); } } } ?>

$id

4. Creando el modelo de nuestro modulo Se debe crear un archivo con el nombre de vacaciones_model.php

models/ vacaciones_model.php

<?php class Vacaciones_model extends Model { function Vacaciones_model() { parent::Model(); } // funcion que extraee todas los registros de vacaciones function getTodos() { $query = $this->db->get('vacaciones'); return $query->result(); }

// funcion que extrae los detalles de un registro de function getDetalles($id) { $query = $this->db->where('id', $id); $query = $this->db->limit('1'); $query = $this->db->get('vacaciones'); if ($query->num_rows() == 1) { return $query->row(); } return false; } /// funcion que inserta un nuevo registro de function addVacacionesData($data) {

vacaciones

vacaciones

if ($this->db->insert('vacaciones', $data)) { // ejecutamos el insert return true; // } else { return false;

} /// funcion que actualiza un registro de function saveVacacionesData($id, $data) { $this->db->where('id', $id); if ($this->db->update('vacaciones', $data)) { return true; // } else { return false; } } // funcion que borra un registro de vaciones con id $id function delete($id) { $this->db->where('id', $id); if ($this->db->delete('vacaciones')) { return true; } else return false; } vacaciones

5. Creando las vistas de nuestro

Se debe crear un carpeta dentro de views llamada vacaciones en donde debemos agregar 4 archivos

views/vacaciones/Add.php views/vacaciones/Admin.php views/vacaciones/home.php

views/vacaciones/Detalles.php

Add.php <form id="form1" name="form1" method="post" action="<?=base_url(); ?>vacaciones/save"> <table width="411" border="1"> <tr> <td width="172"></td> <td width="223"> <?php if (isset($vacaciones->id)): ?> <p><?php echo form_label('ID:','id'); echo form_input('id',$vacaciones->id,'readOnly=\'readonly\''); ?></p> <?php endif; ?></td> </tr> <tr> <td>nombre</td> <td><label> <input name="nombre" type="text" id="nombre" value="<?=isset($vacaciones->nombre)? $vacaciones->nombre : '' ?>"/> </label></td> </tr> <tr> <td>inicia</td> <td><label> <input name="inicia" type="text" id="inicia" value="<?=isset($vacaciones->inicia)? $vacaciones->inicia : '' ?>"/> </label> AAAA/MM/DD</td> </tr> <tr> <td>termina</td> <td><label> <input name="termina" type="text" id="termina" value="<?=isset($vacaciones->termina)? $vacaciones->termina : '' ?>"/> </label> AAAA/MM/DD</td> </tr> <tr> <td>prima</td> <td><label> <input name="prima" type="text" id="prima" value="<?=isset($vacaciones->prima)? $vacaciones->prima : '' ?>"/> </label></td> </tr> <tr> <td>&nbsp;</td> <td><label>

<input type="submit" name="submit" value="Enviar" /> </label></td> </tr> </table> </form>

Admin.php
<div class="admin-menu"> <span class="button"> <?php echo anchor('vacaciones/add', 'Nuevo registro'); ?> </span> </div> <table class="admin" id="adminTable"> <tr> <th>ID</th><th>nombre</th><th>inicia</th><th>termina</th><th>prima</th><t h colspan='2'>Accion</th> </tr> <tbody id="bodyTable"> <?php foreach($vacaciones as $row): ?> <tr> <td><?= $row->id ?></td> <td><?= $row->nombre ?></td> <td><?= $row->inicia ?></td> <td><?= $row->termina ?></td> <td><?= $row->prima ?></td> <td><?= anchor('vacaciones/edit/'.$row->id, img(array('src'=>'css/admin/ico_edit_16.png', 'border'=>'0', 'alt'=>'Eliminar')))?> </td> <td><?= anchor('vacaciones/delete/'.$row->id, img(array('src'=>'css/admin/ico_delete_16.png', 'border'=>'0', 'alt'=>'Eliminar')), array('class'=>'del', 'rel'=>$row->id))?></td> </tr> <?php endforeach; ?> </tbody> </table>

home.php <p>Bienvenido al panel de Vacaciones</p>

6. Creacion de un archivo plantilla en views para visualizacion de las vistas.

views/plantilla.php plantilla.php
<!doctype html> <html> <head> <title>Plantilla</title> <meta charset="utf-8" /> <meta generator="csscreator.com" />

<!--[if IE]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]-->

<style> /* ******************************************************************** */ /* Generated by: http://csscreator.com */ /* ******************************************************************** */ html, body{ margin:0; padding:0; text-align:center; background-color:#808080; } #pagewidth{ width:800px; text-align:left; margin:0 auto; } #maincol{ background-color:white; height:500px; position: relative; } #footer{ height:50px;

background-color:#FFFFFF; clear:both; display:block; overflow:auto; }

/* ******************************************************************** */ /* Clearfix: http://csscreator.com/attributes/containedfloat.php */ /* ******************************************************************** */ .clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } .clearfix{display: inline-block;} /* Hides from IE-mac \*/ * html .clearfix{height: 1%;} .clearfix{display: block;} /* End hide from IE-mac */ </style> </head> <body> <div id="pagewidth" > <div id="wrapper" class="clearfix"> <div id="maincol"> <a href="<?=base_url()?>vacaciones/index/">Home</a> <a href="<?=base_url()?>vacaciones/admin/">Administracion de vacaciones</a> <br></br> <br></br> <?=$content;?> </div> </div> <div id="footer2"> </div>

</div> </body> </html>

6. Probar la aplicacin

ir a la ruta http://localhost/aplicacion/vacaciones/

debe jalar como la que est en http://tecnologiasjava.com/aplicacion/vacaciones/

Suerte : )

Vous aimerez peut-être aussi