SlideShare una empresa de Scribd logo
Chamilo 1.9 para desarrolladores
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?
Comunidad



Empleo                        LMS




Socios                      Asociación


         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
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/
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, tool, 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)
Desarrollemos uno!
¿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
¿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 curso
         api_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?
Bugs y parches
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)
Fin

Más contenido relacionado

PDF
Rapport de stage Genie Logiciel TCHINDA JOEL Encadreur - Kamleu Noumi Emeric.pdf
PDF
Chap I : Cours de Modélisation & Simulation des processus
PDF
Configuracion inicial-portal-chamilo-1-9
PDF
Como instalar chamilo lms en Hosting
PPT
Pluggin creation
PDF
PDF
Formación para certificado de administradores
PDF
Red Colaborativa ATELIS; espacio de integración de comunidades de aprendizaje
Rapport de stage Genie Logiciel TCHINDA JOEL Encadreur - Kamleu Noumi Emeric.pdf
Chap I : Cours de Modélisation & Simulation des processus
Configuracion inicial-portal-chamilo-1-9
Como instalar chamilo lms en Hosting
Pluggin creation
Formación para certificado de administradores
Red Colaborativa ATELIS; espacio de integración de comunidades de aprendizaje

Destacado (9)

PPTX
Claroline
PDF
Chamilo vs-moodle-mensa-mx
PDF
Registrarse en Chamilo
ODT
Chamilo 1.8.7.1 Manual del alumno - ES
PDF
Instalacion chamilo-1.9
PDF
Day 2: ¿Cómo personalizar mi Campus Virtual?
PPTX
Evaluaciones en Chamilo - Flisol2014
PDF
Day 3: LMS Chamilo como caso de éxito en las diferentes unidades de negocio d...
PPS
Qué es Chamilo - Ventajas y desventajas
Claroline
Chamilo vs-moodle-mensa-mx
Registrarse en Chamilo
Chamilo 1.8.7.1 Manual del alumno - ES
Instalacion chamilo-1.9
Day 2: ¿Cómo personalizar mi Campus Virtual?
Evaluaciones en Chamilo - Flisol2014
Day 3: LMS Chamilo como caso de éxito en las diferentes unidades de negocio d...
Qué es Chamilo - Ventajas y desventajas
Publicidad

Similar a Chamilo para-desarrolladores-1.9 (20)

PDF
MAnual de php básico
PDF
Introducción a Php basico
PPT
Construcción de Frameworks a partir de Smarty y PEAR
PPTX
Programación Server-Side - Intro PHP.pptx
ODP
Taller introduccion symfony2
PDF
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
PDF
Curso Php
PPTX
Presentación de zan php
PDF
Intro a cakephp
PDF
Intro a cakephp
DOCX
Php
PPTX
Clase 05 Tipos de accesos y listas de objetos.pptx
PDF
MasterClass Desarrollo Plantillas Joomla!
PDF
Frameworks para Php Adwa
PPTX
Presentación Jornada Drupal Sevilla Febrero 2015
PDF
Tema4.pdf
PDF
Exposicion Akelos
PDF
El universo JavaScript en Drupal 8
PPTX
Funciones con PHP
PPT
Introduccion a php
MAnual de php básico
Introducción a Php basico
Construcción de Frameworks a partir de Smarty y PEAR
Programación Server-Side - Intro PHP.pptx
Taller introduccion symfony2
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
Curso Php
Presentación de zan php
Intro a cakephp
Intro a cakephp
Php
Clase 05 Tipos de accesos y listas de objetos.pptx
MasterClass Desarrollo Plantillas Joomla!
Frameworks para Php Adwa
Presentación Jornada Drupal Sevilla Febrero 2015
Tema4.pdf
Exposicion Akelos
El universo JavaScript en Drupal 8
Funciones con PHP
Introduccion a php
Publicidad

Más de Chamilo Association (20)

PDF
3er Congreso Internacional E-learning
PDF
Recomendación ¿Cómo seleccionar un LMS?
PDF
Chamilo LMS 1.11.4 ¡Novedades!
PDF
Day 3: Skillms para RRHH: Capacita, Evalúa y Gestiona el talento en tu organi...
PDF
Day 3: Rompiendo paradigmas: ¡Hay un mundo más allá de Moodle!
PDF
Day 3: ¿Tu campus virtual es seguro? ¿Cómo ir un paso adelante de los hackers?
PDF
Day 3: ¿Cómo llevar un curso presencial a B-learning?
PDF
Day 2: Chamilo en Europa: Programa de formación para alumnos que trabajan
PDF
Day 2: Mobile learning “Aplicación nativa Chamilo”
PDF
Day 3: ¿Cómo transformar su portal Chamilo LMS en tienda on-line colaborativa?
PDF
Day 3: MOOCs de Salud en Chamilo LMS
PDF
Day 3: Aplicaciones de software libre integradas al eLearning: uso de mapas c...
PDF
Day 2: ¿Es posible impartir educación de calidad sin acceso a Internet?
PDF
Day 2: Herramienta de evaluaciones aplicado al sistema nacional de bachillera...
PDF
Day 2: ¿Cómo realizar un guión instruccional para crear contenidos multimedia...
PDF
Day 2: Creación de crucigramas en Chamilo LMS con HotPotatoes
PDF
Day 2: Explicación Actividades Chamilo Conference 2016
PDF
Day 2: Chamilo en Perú: Experiencia de 8 años usando Chamilo LMS
PDF
Day 2: Conferencia Magistral: Visión de Chamilo al 2020
PDF
Day 2: Bienvenida e Inauguración Chamilo Conference 2016
3er Congreso Internacional E-learning
Recomendación ¿Cómo seleccionar un LMS?
Chamilo LMS 1.11.4 ¡Novedades!
Day 3: Skillms para RRHH: Capacita, Evalúa y Gestiona el talento en tu organi...
Day 3: Rompiendo paradigmas: ¡Hay un mundo más allá de Moodle!
Day 3: ¿Tu campus virtual es seguro? ¿Cómo ir un paso adelante de los hackers?
Day 3: ¿Cómo llevar un curso presencial a B-learning?
Day 2: Chamilo en Europa: Programa de formación para alumnos que trabajan
Day 2: Mobile learning “Aplicación nativa Chamilo”
Day 3: ¿Cómo transformar su portal Chamilo LMS en tienda on-line colaborativa?
Day 3: MOOCs de Salud en Chamilo LMS
Day 3: Aplicaciones de software libre integradas al eLearning: uso de mapas c...
Day 2: ¿Es posible impartir educación de calidad sin acceso a Internet?
Day 2: Herramienta de evaluaciones aplicado al sistema nacional de bachillera...
Day 2: ¿Cómo realizar un guión instruccional para crear contenidos multimedia...
Day 2: Creación de crucigramas en Chamilo LMS con HotPotatoes
Day 2: Explicación Actividades Chamilo Conference 2016
Day 2: Chamilo en Perú: Experiencia de 8 años usando Chamilo LMS
Day 2: Conferencia Magistral: Visión de Chamilo al 2020
Day 2: Bienvenida e Inauguración Chamilo Conference 2016

Último (20)

PDF
Fundamentos_Educacion_a_Distancia_ABC.pdf
PDF
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
PDF
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
PDF
DI, TEA, TDAH.pdf guía se secuencias didacticas
PDF
Unidad de Aprendizaje 5 de Educacion para el Trabajo EPT Ccesa007.pdf
PDF
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
PDF
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
PDF
TRAUMA_Y_RECUPERACION consecuencias de la violencia JUDITH HERMAN
PDF
Gasista de unidades unifuncionales - pagina 23 en adelante.pdf
PDF
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
PDF
Punto Critico - Brian Tracy Ccesa007.pdf
PDF
Romper el Circulo de la Creatividad - Colleen Hoover Ccesa007.pdf
PDF
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
PPT
Cosacos y hombres del Este en el Heer.ppt
PPTX
AGENTES PATÓGENOS Y LAS PRINCIPAL ENFERMEAD.pptx
PDF
el - LIBRO-PACTO-EDUCATIVO-GLOBAL-OIEC.pdf
PDF
OK OK UNIDAD DE APRENDIZAJE 5TO Y 6TO CORRESPONDIENTE AL MES DE AGOSTO 2025.pdf
DOCX
V UNIDAD - SEGUNDO GRADO. del mes de agosto
PDF
Tomo 1 de biologia gratis ultra plusenmas
DOCX
UNIDAD DE APRENDIZAJE 5 AGOSTO tradiciones
Fundamentos_Educacion_a_Distancia_ABC.pdf
ACERTIJO Súper Círculo y la clave contra el Malvado Señor de las Formas. Por ...
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
DI, TEA, TDAH.pdf guía se secuencias didacticas
Unidad de Aprendizaje 5 de Educacion para el Trabajo EPT Ccesa007.pdf
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
TRAUMA_Y_RECUPERACION consecuencias de la violencia JUDITH HERMAN
Gasista de unidades unifuncionales - pagina 23 en adelante.pdf
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
Punto Critico - Brian Tracy Ccesa007.pdf
Romper el Circulo de la Creatividad - Colleen Hoover Ccesa007.pdf
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
Cosacos y hombres del Este en el Heer.ppt
AGENTES PATÓGENOS Y LAS PRINCIPAL ENFERMEAD.pptx
el - LIBRO-PACTO-EDUCATIVO-GLOBAL-OIEC.pdf
OK OK UNIDAD DE APRENDIZAJE 5TO Y 6TO CORRESPONDIENTE AL MES DE AGOSTO 2025.pdf
V UNIDAD - SEGUNDO GRADO. del mes de agosto
Tomo 1 de biologia gratis ultra plusenmas
UNIDAD DE APRENDIZAJE 5 AGOSTO tradiciones

Chamilo para-desarrolladores-1.9

  • 1. Chamilo 1.9 para desarrolladores
  • 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. Comunidad Empleo LMS Socios Asociación Software (libre)
  • 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
  • 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/
  • 9. Base principal: 105 tablas + stats + users
  • 10. Base cursos: 85 tablas
  • 11. Bases de datos y Caching ● Campos eficientes = ancho fijo ● Tablas en Cache = memoria RAM++
  • 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. Plugin, tool e integración
  • 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. 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)
  • 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. ¿Desarrollamos uno? ● ¿Un glosario, qué es? – Un directorio de palabras – Con definiciones – Que puedo consultar como alumno – Que puedo modificar como profesor
  • 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. ¿Desarrollamos uno? ● Declarar – main/inc/lib/main_api.lib.php – define('TOOL_GLOSSARY', 'glossary');
  • 22. ¿Desarrollamos uno? ● Integración en la estructura – main/glossary/ – Nuevo fichero main/glossary/index.php
  • 23. ¿Desarrollamos uno? ● Base de datos CREATE TABLE glossary ( id int auto_increment, title varchar(200), description text );
  • 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. ¿Desarrollamos uno? ● Base de datos (3) – Declarar tabla dentro de main/inc/lib/database.constants.inc.php : // glossary tables define('TABLE_GLOSSARY', 'glossary');
  • 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. ¿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. ¿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. ¿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();
  • 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. Fin