Upload
chamilo-association
View
693
Download
1
Embed Size (px)
DESCRIPTION
Presentación usada en el curso preparatorio para la prueba de certificación como administradores de Chamilo LMS realizada en el marco del Día del Usuario de Chamilo 2013 - Madrid.
Citation preview
Chamilo 1.9 para Administradores
-Preparación a la certificación
Fundamentos de administración con Chamilo LMS
Estructura de ficheros
Chamilo
Chamilo 1.8: Base de cursos de 84 tablas
Chamilo 1.9: Base de datos única
+ stats+ users
Chamilo 1.9: Una sola base de 209 tablas
Usuarios, grupos, sesiones
Cursos
Seguimiento
Globales
Bases de datos única y Caching
● Campos eficientes = ancho fijo● Tablas en Cache = memoria RAM++
Instalación
Scripts falsamente secretos
● Tests/– Solamente disponible en versión Mercurial– Permite generación de usuarios/cursos
● Main/cron/– Procesos automáticos / automatizables– Verificación de... cosas
Scripts
Hojas de referencia
http://beeznest.wordpress.com/2010/04/05/chamilo-developers-quick-reference-sheets/
http://beeznest.wordpress.com/?s=quickref
Recursos
● http://www.chamilo.org/forum● http://support.chamilo.org/projects/chamilo-18/wiki● http://support.chamilo.org● http://code.google.com/p/chamilo (classic)● Convenciones de código (wiki)● http://translate.chamilo.org (Chrome)
Plugin, tool e integración
● Plugin– Agrega funcionalidad– No modifica el código de Chamilo
● Tool– Agrega funcionalidad– Modifica el código de Chamilo
Plugin, tool, integración
● Integración
– Integrar tool o plugin dentro de Chamilo– Soportarlo en las versiones siguientes
● Ejemplos– Messages (tool)– Date (plugin)– Search (tool)– Glossary (tool)
Plugin, tool, integración
Desarrollemos uno!
● Ejemplo: Glosario● Necesitamos
– Un editor de textos (o de código PHP)– Un navegador– Una instalación de Chamilo– Una herramienta para consultar la BD
¿Desarrollamos uno?
● ¿Un glosario, qué es?– Un directorio de palabras– Con definiciones– Que puedo consultar como alumno– Que puedo modificar como profesor
¿Desarrollamos uno?
● En Chamilo necesito– Declarar este tool– Integrarlo dentro de la estructura– Darle una base de datos– Darle una interfaz– Darle unas funciones de acceso– Darle términos traducibles para la interfaz
¿Desarrollamos uno?
● Declarar– main/inc/lib/main_api.lib.php– define('TOOL_GLOSSARY', 'glossary');
¿Desarrollamos uno?
● Integración en la estructura– main/glossary/– Nuevo fichero main/glossary/index.php
¿Desarrollamos uno?
● Base de datos
CREATE TABLE glossary (id int auto_increment,
title varchar(200),
description text
);
¿Desarrollamos uno?
● Base de datos (2)– Para nuevas instalaciones
● main/inc/lib/add_course.lib.inc.php
– Para actualizaciones● main/install/migrate-db-1.8.8.4-1.9.0.pre.sql
– Para el enlace dentro de la página de cursoapi_sql_query("INSERT INTO `" . $tbl_course_homepage . "` (...)
VALUES ('" .TOOL_GLOSSARY."', 'glossary/index.php', 'glossary.gif', '1', '0', '', 'NO', '_self', 'authoring')");
¿Desarrollamos uno?
● Base de datos (3)– Declarar tabla dentro de
main/inc/lib/database.lib.php :// glossary tables
define('TABLE_GLOSSARY', 'glossary');
¿Desarrollamos uno?
● Interfaz<?php
/* License terms */
/**
* Description of the script
*/
require_once('../inc/global.inc.php');
$tool = TOOL_GLOSSARY;
$abc = 5 + 4; //code logic
Display::display_header($tool);
echo $abc; //display code
Display::display_footer();
¿Desarrollamos uno?
● Funciones de acceso– Si es de acceso general -> main/inc/lib– Si es de acceso local -> main/glossary/
● De preferencia una clase● main/glossary/glossary.class.php
class glossary {
public var $terms;
public static function glossary(...) {
...
}
public static function get_terms_for_display(...) {...}
}
¿Desarrollamos uno?
● Términos traducibles– Agregar main/lang/spanish/glossary.inc.php
● Agregar mis variables en forma
$MyLanguageVariable = “Mi variable de idioma”;
– Usar get_lang('MyLanguageVariable')
¿Desarrollamos uno?
● Interfaz (2)<?php
/* License terms */
/**
* Description of the script
*/
$language_files = array('glossary');
require_once('../inc/global.inc.php');
require_once('glossary.class.php');
$tool = TOOL_GLOSSARY;
$glossary = new glossary();
Display::display_header($tool);
echo $glossary -> get_terms_for_display($_GET['term_id']);
Display::display_footer();
¿Desarrollamos uno?
¿Desarrollamos uno?
Bugs y parches
http://support.chamilo.org/
Bugs y parches
● Elementos esenciales de un bug report– Evitar duplicados
– Título claro
– Descripción completa
– URL o nombre del script
– Parámetros del URL
– Como reproducir (desde el login)
– Captura de pantalla
– Mensaje de error (copiar y pegar)
Bugs y parches
Fin