chamilo para-desarrolladores-1.9

34
Chamilo 1.9 para desarrolladores

Upload: chamilo-association

Post on 19-Jun-2015

3.426 views

Category:

Education


2 download

TRANSCRIPT

Page 1: Chamilo para-desarrolladores-1.9

Chamilo 1.9 para desarrolladores

Page 2: Chamilo para-desarrolladores-1.9

Historia de versiones

1.8.6.21.8.7

1.8.7.11.8.8

1.8.8.21.8.8.4

1.9 -> noviembre 2011?

Page 3: Chamilo para-desarrolladores-1.9

Comunidad

LMS

AsociaciónSocios

Empleo

Software (libre)

Page 4: Chamilo para-desarrolladores-1.9

Comunidad

● 660,000 usuarios en el mundo (+1000/día)● 1100 portales● 300 activos en foros● 27 desarrolladores● 40 traductores● 50 “reporteros”/”consejeros”

Mejoran la calidad del software

Facilitan su aprendizaje

Page 5: Chamilo para-desarrolladores-1.9

Herramientas para programar

Page 6: Chamilo para-desarrolladores-1.9

● ¿Eclipse 3.2 + PHPEclipse + Subclipse ? ● Navegadores + Flash player 9● Bajo MS-Windows

● EasyPHP / WAMPP (Apache + PHP5 + MySQL)

● Bajo Ubuntu Linux● sudo apt-get install apache2 libapache2-mod-php5

mysql-server phpmyadmin● Descargar http://www.chamilo.org/es/download-es/

Herramientas

Page 7: Chamilo para-desarrolladores-1.9

Estructura

Page 8: Chamilo para-desarrolladores-1.9

Chamilo

Page 9: Chamilo para-desarrolladores-1.9

Base principal: 105 tablas

+ stats+ users

Page 10: Chamilo para-desarrolladores-1.9

Base cursos: 85 tablas

Page 11: Chamilo para-desarrolladores-1.9

Bases de datos y Caching

● Campos eficientes = ancho fijo● Tablas en Cache = memoria RAM++

Page 12: Chamilo para-desarrolladores-1.9

Hojas de referencia

http://beeznest.wordpress.com/2010/04/05/chamilo-developers-quick-reference-sheets/

http://beeznest.wordpress.com/?s=quickref

Page 13: Chamilo para-desarrolladores-1.9

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)

Page 14: Chamilo para-desarrolladores-1.9

Plugin, tool e integración

Page 15: Chamilo para-desarrolladores-1.9

● Plugin– Agrega funcionalidad– No modifica el código de Chamilo

● Tool– Agrega funcionalidad– Modifica el código de Chamilo

Plugin, tool, integración

Page 16: Chamilo para-desarrolladores-1.9

● 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

Page 17: Chamilo para-desarrolladores-1.9

Desarrollemos uno!

Page 18: Chamilo para-desarrolladores-1.9

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

Page 19: Chamilo para-desarrolladores-1.9

● ¿Un glosario, qué es?– Un directorio de palabras– Con definiciones– Que puedo consultar como alumno– Que puedo modificar como profesor

¿Desarrollamos uno?

Page 20: Chamilo para-desarrolladores-1.9

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

Page 21: Chamilo para-desarrolladores-1.9

● Declarar– main/inc/lib/main_api.lib.php– define('TOOL_GLOSSARY', 'glossary');

¿Desarrollamos uno?

Page 22: Chamilo para-desarrolladores-1.9

● Integración en la estructura– main/glossary/– Nuevo fichero main/glossary/index.php

¿Desarrollamos uno?

Page 23: Chamilo para-desarrolladores-1.9

● Base de datos

CREATE TABLE glossary (id int auto_increment,

title varchar(200),

description text

);

¿Desarrollamos uno?

Page 24: Chamilo para-desarrolladores-1.9

● Base de datos (2)– Para nuevas instalaciones

● main/inc/lib/add_course.lib.inc.php

– Para actualizaciones● main/install/migrate-db-1.8.8-1.8.9.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?

Page 25: Chamilo para-desarrolladores-1.9

● Base de datos (3)– Declarar tabla dentro de

main/inc/lib/database.constants.inc.php :// glossary tables

define('TABLE_GLOSSARY', 'glossary');

¿Desarrollamos uno?

Page 26: Chamilo para-desarrolladores-1.9

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

Page 27: Chamilo para-desarrolladores-1.9

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

Page 28: Chamilo para-desarrolladores-1.9

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

Page 29: Chamilo para-desarrolladores-1.9

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

Page 30: Chamilo para-desarrolladores-1.9

¿Desarrollamos uno?

Page 31: Chamilo para-desarrolladores-1.9

Bugs y parches

Page 32: Chamilo para-desarrolladores-1.9

http://support.chamilo.org/

Bugs y parches

Page 33: Chamilo para-desarrolladores-1.9

● 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

Page 34: Chamilo para-desarrolladores-1.9

Fin