Tutorial Para Crear Un Modulo en Codeigniter

14
TUTORIAL PARA CREAR UN MODULO EN CODEIGNITER Christian A. Vázquez 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 configuración system\application\config \confi.php aquí es importante el poner el url de nuestra aplicación $config['base_url'] = "http://localhost/aplicacion/";

Transcript of Tutorial Para Crear Un Modulo en Codeigniter

Page 1: Tutorial Para Crear Un Modulo en Codeigniter

TUTORIAL PARA CREAR UN MODULO EN CODEIGNITER

Christian A. Vázquez 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 configuración

system\application\config \confi.php

aquí es importante el poner el url de nuestra aplicación

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

Page 2: Tutorial Para Crear Un Modulo en Codeigniter

system\application\config\database.php

$db['default']['hostname'] = "localhost";$db['default']['username'] = "root";$db['default']['password'] = "admin";$db['default']['database'] = "sistema";$db['default']['dbdriver'] = "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

<?phpclass Vacaciones extends Controller{

function Vacaciones(){parent::Controller();

$this->load->model('Vacaciones_model');

}

/// pantalla de bienvenida al modulo de vacaciones

function index(){

$data['seccion'] = "home";

Page 3: Tutorial Para Crear Un Modulo en Codeigniter

$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);}

Page 4: Tutorial Para Crear Un Modulo en Codeigniter

/// 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'])){ /// si el id tiene valor se actualiza el 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

$this->Vacaciones_model->addVacacionesData($dataSet); // se invoca funcion del modelo para agregar

redirect('vacaciones/admin', 'refresh');

}

}

}

// funcion para borrar un resgitro vacacional con id $id

function delete($id) {$this->load->model('Vacaciones_model');if ($this->Vacaciones_model->delete($id)){

redirect('vacaciones/admin', 'refresh');

}

}

}

?>

Page 5: Tutorial Para Crear Un Modulo en Codeigniter

4. Creando el modelo de nuestro modulo

Se debe crear un archivo con el nombre de vacaciones_model.php

models/ vacaciones_model.php

<?phpclass 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 vacaciones 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 vacaciones

function addVacacionesData($data) {

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

else {return false;

Page 6: Tutorial Para Crear Un Modulo en Codeigniter

}

}

/// funcion que actualiza un registro de vacaciones

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;} elsereturn false;}

}

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

Page 7: Tutorial Para Crear Un Modulo en Codeigniter

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><?phpecho 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>

Page 8: Tutorial Para Crear Un Modulo en Codeigniter

<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><th 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.

Page 9: Tutorial Para Crear Un Modulo en Codeigniter

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;

Page 10: Tutorial Para Crear Un Modulo en Codeigniter

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>

Page 11: Tutorial Para Crear Un Modulo en Codeigniter

<div id="footer2"> </div>

</div>

</body>

</html>

6. Probar la aplicación

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

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

Page 12: Tutorial Para Crear Un Modulo en Codeigniter

Suerte : )