SlideShare uma empresa Scribd logo
1 de 34
Baixar para ler offline
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

Mais conteúdo relacionado

Destaque

Red Colaborativa ATELIS; espacio de integración de comunidades de aprendizaje
Red Colaborativa ATELIS; espacio de integración de comunidades de aprendizajeRed Colaborativa ATELIS; espacio de integración de comunidades de aprendizaje
Red Colaborativa ATELIS; espacio de integración de comunidades de aprendizaje
Linda Martinez
 

Destaque (11)

Formación para certificado de administradores
Formación para certificado de administradoresFormación para certificado de administradores
Formación para certificado de administradores
 
Red Colaborativa ATELIS; espacio de integración de comunidades de aprendizaje
Red Colaborativa ATELIS; espacio de integración de comunidades de aprendizajeRed Colaborativa ATELIS; espacio de integración de comunidades de aprendizaje
Red Colaborativa ATELIS; espacio de integración de comunidades de aprendizaje
 
Claroline
ClarolineClaroline
Claroline
 
Chamilo vs-moodle-mensa-mx
Chamilo vs-moodle-mensa-mxChamilo vs-moodle-mensa-mx
Chamilo vs-moodle-mensa-mx
 
Registrarse en Chamilo
Registrarse en ChamiloRegistrarse en Chamilo
Registrarse en Chamilo
 
Chamilo 1.8.7.1 Manual del alumno - ES
Chamilo 1.8.7.1 Manual del alumno - ESChamilo 1.8.7.1 Manual del alumno - ES
Chamilo 1.8.7.1 Manual del alumno - ES
 
Instalacion chamilo-1.9
Instalacion chamilo-1.9Instalacion chamilo-1.9
Instalacion chamilo-1.9
 
Day 2: ¿Cómo personalizar mi Campus Virtual?
Day 2: ¿Cómo personalizar mi Campus Virtual?Day 2: ¿Cómo personalizar mi Campus Virtual?
Day 2: ¿Cómo personalizar mi Campus Virtual?
 
Evaluaciones en Chamilo - Flisol2014
Evaluaciones en Chamilo - Flisol2014Evaluaciones en Chamilo - Flisol2014
Evaluaciones en Chamilo - Flisol2014
 
Day 3: LMS Chamilo como caso de éxito en las diferentes unidades de negocio d...
Day 3: LMS Chamilo como caso de éxito en las diferentes unidades de negocio d...Day 3: LMS Chamilo como caso de éxito en las diferentes unidades de negocio d...
Day 3: LMS Chamilo como caso de éxito en las diferentes unidades de negocio d...
 
Qué es Chamilo - Ventajas y desventajas
Qué es Chamilo - Ventajas y desventajasQué es Chamilo - Ventajas y desventajas
Qué es Chamilo - Ventajas y desventajas
 

Semelhante a Chamilo para-desarrolladores-1.9

Presentación de zan php
Presentación de zan phpPresentación de zan php
Presentación de zan php
Carlos Zantana
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
betabeers
 
Exposicion Akelos
Exposicion AkelosExposicion Akelos
Exposicion Akelos
dokeosla
 
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdfPHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
Raaulroodriguez
 

Semelhante a Chamilo para-desarrolladores-1.9 (20)

MAnual de php básico
MAnual de php básicoMAnual de php básico
MAnual de php básico
 
Introducción a Php basico
Introducción a Php basicoIntroducción a Php basico
Introducción a Php basico
 
Construcción de Frameworks a partir de Smarty y PEAR
Construcción de Frameworks a partir de Smarty y PEARConstrucción de Frameworks a partir de Smarty y PEAR
Construcción de Frameworks a partir de Smarty y PEAR
 
Taller introduccion symfony2
Taller introduccion symfony2Taller introduccion symfony2
Taller introduccion symfony2
 
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
[DrupalCampSpain2023] Introducción al desarrollo de módulos en Drupal 10
 
Curso Php
Curso PhpCurso Php
Curso Php
 
Presentación de zan php
Presentación de zan phpPresentación de zan php
Presentación de zan php
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
 
Php
PhpPhp
Php
 
MasterClass Desarrollo Plantillas Joomla!
MasterClass Desarrollo Plantillas Joomla!MasterClass Desarrollo Plantillas Joomla!
MasterClass Desarrollo Plantillas Joomla!
 
Frameworks para Php Adwa
Frameworks para Php AdwaFrameworks para Php Adwa
Frameworks para Php Adwa
 
Presentación Jornada Drupal Sevilla Febrero 2015
Presentación Jornada Drupal Sevilla Febrero 2015Presentación Jornada Drupal Sevilla Febrero 2015
Presentación Jornada Drupal Sevilla Febrero 2015
 
Tema4.pdf
Tema4.pdfTema4.pdf
Tema4.pdf
 
Exposicion Akelos
Exposicion AkelosExposicion Akelos
Exposicion Akelos
 
El universo JavaScript en Drupal 8
El universo JavaScript en Drupal 8El universo JavaScript en Drupal 8
El universo JavaScript en Drupal 8
 
Funciones con PHP
Funciones con PHPFunciones con PHP
Funciones con PHP
 
Introduccion a php
Introduccion a phpIntroduccion a php
Introduccion a php
 
Los A-B-C de Multi-idioma en Drupal 7
Los A-B-C de Multi-idioma en Drupal 7Los A-B-C de Multi-idioma en Drupal 7
Los A-B-C de Multi-idioma en Drupal 7
 
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdfPHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
 

Mais de Chamilo Association

3er Congreso Internacional E-learning
3er Congreso Internacional E-learning3er Congreso Internacional E-learning
3er Congreso Internacional E-learning
Chamilo Association
 

Mais de Chamilo Association (20)

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

Último

Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
patriciaines1993
 

Último (20)

Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN  PARÍS. Por JAVIER SOL...
ACERTIJO LA RUTA DEL MARATÓN OLÍMPICO DEL NÚMERO PI EN PARÍS. Por JAVIER SOL...
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 4ºESO
 
prostitución en España: una mirada integral!
prostitución en España: una mirada integral!prostitución en España: una mirada integral!
prostitución en España: una mirada integral!
 
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docxPLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
PLAN DE REFUERZO ESCOLAR MERC 2024-2.docx
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
AEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptxAEC 2. Aventura en el Antiguo Egipto.pptx
AEC 2. Aventura en el Antiguo Egipto.pptx
 
Usos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicasUsos y desusos de la inteligencia artificial en revistas científicas
Usos y desusos de la inteligencia artificial en revistas científicas
 
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPCTRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
TRABAJO FINAL TOPOGRAFÍA COMPLETO DE LA UPC
 
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdfPlan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
Plan-de-la-Patria-2019-2025- TERCER PLAN SOCIALISTA DE LA NACIÓN.pdf
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...Louis Jean François Lagrenée.  Erotismo y sensualidad. El erotismo en la Hist...
Louis Jean François Lagrenée. Erotismo y sensualidad. El erotismo en la Hist...
 
Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024Tema 19. Inmunología y el sistema inmunitario 2024
Tema 19. Inmunología y el sistema inmunitario 2024
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
activ4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdfactiv4-bloque4 transversal doctorado.pdf
activ4-bloque4 transversal doctorado.pdf
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
Sesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdfSesión de clase APC: Los dos testigos.pdf
Sesión de clase APC: Los dos testigos.pdf
 

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