Tutorial Para Crear Un Modulo en Codeigniter
-
Upload
maurangelc -
Category
Documents
-
view
319 -
download
1
Transcript of 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/";
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";
$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'])){ /// 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');
}
}
}
?>
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;
}
}
/// 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
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> </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><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.
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 aplicación
ir a la ruta http://localhost/aplicacion/vacaciones/
debe jalar como la que está en http://tecnologiasjava.com/aplicacion/vacaciones/
Suerte : )