Вы находитесь на странице: 1из 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 : )

Вам также может понравиться