chamilo para-desarrolladores-1.9

Post on 19-Jun-2015

3.427 Views

Category:

Education

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Chamilo 1.9 para desarrolladores

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?

Comunidad

LMS

AsociaciónSocios

Empleo

Software (libre)

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

Herramientas para programar

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

Estructura

Chamilo

Base principal: 105 tablas

+ stats+ users

Base cursos: 85 tablas

Bases de datos y Caching

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

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

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

main/inc/lib/database.constants.inc.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

top related