Archivo de la categoría: CodeIgniter

Implementar JQuery Gantt en nuestros proyectos

Hace poco en un proyecto me toco trabajar con un sistema de gestión de proyectos y era necesario mostrar un gráfico Gantt para mostrar las actividades del mismo, luego de una búsqueda intensiva en la web, encontramos la librería JQuery Gantt desarrollada por Roberto Bicchierai, aunque había opciones mas interesantes la mayoría son privativas, mientras que esta es Open Source.

img-jquery-gantt-view

Muestra de como se ve el Gráfico Gantt.

En mi caso me toco integrarlo con CodeIgniter (PHP), necesitaba persistir la misma en MySQL aquí que genere unos script SQL a partir de la documentación oficial, la cual aunque no es del todo clara funciona y permite realizar tus ajustes.

Los fuentes de este proyecto puedes encontrarlos en Github.

Para mostrar el gráfico, ejecuta el controlador Gantt la url debería ser algo así como: http//TUBASEURL/Gantt o   http//TUBASEURL/index.php/Gantt.

Si tienes problemas para visualizar algunas imágenes dentro de la vista gantt.php se encuentra la variable Javascript – GANTT_URL_RESOURCE ; colocar tu url, por defecto tiene base_url().

Si te gusta comparte, si necesitas ayuda con gusto puedo ayudarte.

Puedes consultar la documentación oficial aquí.

Anuncios

Registro de Auditoria/logs de sistema.

Actualmente estoy un sistema web empleando CodeIgniter (CI), PostgreSQL, JQuery y Bootstrap. Como todo sistema es necesario llevar un registro de las operaciones realizadas por los usuarios.

Imagen-auditoria-shutterstock

Busque alguna librería de CI que permitiera llevar este registro, pero no conseguí.

Así que me pregunte ¿qué datos de la operación en curso necesito almacenar?:
¿Cuál? URL.
¿Cuándo? Timestamp.
¿Quién? Usuario.
¿Desde dónde? Dirección IP.

Esos serian los datos más básicos, también podríamos almacenar: Navegador, Versión de Navegador, Sistema Operativo, entre otros.

En mi caso, es extremadamente necesario guardar los datos manejados en la operación y el resultado de la misma (ACCESS, SUCCESS y FAILURE).

Nota: para este post se tomo en cuenta que los lectores ya tiene un conocimiento previo sobre CI.

Me decidí crear una librería el cual pudiera llamar desde cualquier parte del sistema y así almacenar esta info. Identifique que CI posee dos librerías de las cuales podemos sacar la mayoría de la información, las cuales son: Input Class y User Agent Class.

Librería audit para CI.

Librería de CI para registro de Auditoria/Logs

Librería de CI para registro de Auditoria/Logs

Modelo para librería audit

Clase que provee el acceso a datos de la librería de CI Audit

Clase que provee el acceso a datos de la librería de CI Audit

Para implementar la librería, cárgala en tu controlador y en cada método donde necesites registrar la auditoria pega esta línea

$this->audit->register();

Para registrar el ID del usuario, utiliza la siguiente linea:

$this->session->set_userdata('user_id', IDUSUARIO); Si ya tienes registrado tu ID de usuario en session, pues cámbialo en la librería.

Si tu operación trabaja con datos recuerda llamar antes del método register() a:

$this->audit->setResult($result);
$this->audit->setData($data);

Con esas dos líneas registra los datos y el resultado de la operación.

En el caso del método setResult(),  recibe un Boolean, para indicar si el almacenamiento fue exitoso o no.

En mi caso yo centralice la salida de CI con el callback de controlador _output($output), allí coloque mi método register() y solo me preocupo por llamar los métodos setResult() y setData() donde es estrictamente necesario.

Descarga todo el código mas ejemplo aquí

Instrucciones copia el contenido de la carpeta application en tu carpeta application de CI (Ojo verifica bien no vayas a sobre escribir tu trabajo). Ejecuta los script en tu BD y listo.

Nota: Esto no es un log de los errores cometidos dentro del sistema, sino el registro de las paginas y que datos utilizo el usuario dentro del sistema.

Entrada Original: José Rodríguez