Successfully reported this slideshow.

Chamilo para-desarrolladores-1.9

5,311 views

Published on

Published in: Education
  • Be the first to comment

  • Be the first to like this

Chamilo para-desarrolladores-1.9

  1. 1. Chamilo 1.9 para desarrolladores
  2. 2. Historia de versiones 1.8.6.2 1.8.7 1.8.7.1 1.8.8 1.8.8.2 1.8.8.4 1.9 -> noviembre 2011?
  3. 3. ComunidadEmpleo LMSSocios Asociación Software (libre)
  4. 4. 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
  5. 5. Herramientas para programar
  6. 6. Herramientas● ¿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/
  7. 7. Estructura
  8. 8. Chamilo
  9. 9. Base principal: 105 tablas + stats + users
  10. 10. Base cursos: 85 tablas
  11. 11. Bases de datos y Caching● Campos eficientes = ancho fijo● Tablas en Cache = memoria RAM++
  12. 12. Hojas de referenciahttp://beeznest.wordpress.com/2010/04/05/chamilo-developers-quick-reference-sheets/ http://beeznest.wordpress.com/?s=quickref
  13. 13. 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)
  14. 14. Plugin, tool e integración
  15. 15. Plugin, tool, integración● Plugin – Agrega funcionalidad – No modifica el código de Chamilo● Tool – Agrega funcionalidad – Modifica el código de Chamilo
  16. 16. 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)
  17. 17. Desarrollemos uno!
  18. 18. ¿Desarrollamos 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
  19. 19. ¿Desarrollamos uno?● ¿Un glosario, qué es? – Un directorio de palabras – Con definiciones – Que puedo consultar como alumno – Que puedo modificar como profesor
  20. 20. ¿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
  21. 21. ¿Desarrollamos uno?● Declarar – main/inc/lib/main_api.lib.php – define(TOOL_GLOSSARY, glossary);
  22. 22. ¿Desarrollamos uno?● Integración en la estructura – main/glossary/ – Nuevo fichero main/glossary/index.php
  23. 23. ¿Desarrollamos uno?● Base de datos CREATE TABLE glossary ( id int auto_increment, title varchar(200), description text );
  24. 24. ¿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 curso api_sql_query("INSERT INTO `" . $tbl_course_homepage . "` (...) VALUES (" .TOOL_GLOSSARY.", glossary/index.php, glossary.gif, 1, 0, , NO, _self, authoring)");
  25. 25. ¿Desarrollamos uno?● Base de datos (3) – Declarar tabla dentro de main/inc/lib/database.constants.inc.php : // glossary tables define(TABLE_GLOSSARY, glossary);
  26. 26. ¿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();
  27. 27. ¿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(...) {...} }
  28. 28. ¿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)
  29. 29. ¿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();
  30. 30. ¿Desarrollamos uno?
  31. 31. Bugs y parches
  32. 32. Bugs y parcheshttp://support.chamilo.org/
  33. 33. 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)
  34. 34. Fin

×