Manual del Programador en Español Elastix 1.0 Beta Para mayor información visite www.elastix.org Manual del Programador Elastix 1 ÍNDICE 1. Creando el Menú del Módulo 1.1. Crear el módulo en la base de datos 1.2. Revisar en la interfaz web 1.3. Definición de los lenguajes principales 1.4. Visualizando su nuevo módulo 2. Programación de un Módulo 2.1. Crear una carpeta 2.2. Copiar contenido 2.3. Permisos 3. Arquitectura Modular 3.1. Vista General 3.2. Detalle de index.php 3.3. Detalle de class.php 3.4. Detalle de default.conf.php Manual del Programador Elastix 2 1. Creando el Menú del Módulo 1.1.Crear el módulo en la base de datos $ sqlite3 /var/www/db/menu.db $ select * from menu; $ insert into menu values ('module_x', 'id_parent', 'link_framed', 'module x', 'module'); Nombre Tipo del del módulo: módulo ­ module ­ framed Id module Menú padre al cual va a pertenecer Si es de tipo framed usar un link Ej: $ insert into menu values ('example', 'extras','', 'Example', 'module'); $ .q $ sqlite3 /var/www/db/acl.db $ select * from acl_resource; $ insert into acl_resource (name, description) values ('example', 'Example'); $ .q Nombre del módulo Manual del Programador Elastix Id module 3 1.2.Revisar en la interfaz web • System --> User Management --> Group Permission • Ver por lo general al final de la lista. • Vera que existe una nueva casilla, márquela si no esta; Este es su nuevo módulo (menú). • Se dará cuenta que no se muestra el nombre de su módulo, es porque no ha definido los lenguajes principales. Manual del Programador Elastix 4 1.3.Definición de los lenguajes principales • En /var/www/html/lang • Edite el lang de su lenguaje natal. En este ejemplo editaremos el idioma inglés: en.lang • Vaya al final de este archivo y antes del símbolo que cierra el arreglo “);” agrege el nombre de su módulo. NOTA: Se recuerda que es programación php y se tiene entendido que conoce la sintaxis de arreglos en PHP. • En este caso agregamos “Example” => “Example”, //nombre del módulo. • Guarde y cierre Manual del Programador Elastix 5 1.4.Visualizando su nuevo módulo • Ahora en System --> User Management --> Group Permission, verá que el nombre de su modulo se visualiza, si no está marcado, márquelo y aplique los cambios. • Esto se vera reflejado si ingresa a su módulo a través del modulo padre. En este ejemplo fue extras, ingrese a extras y verá que aparece su nuevo módulo. • Al hacer click en el, se le presentará el siguiente error: Error: the module modules/examples/index.php could not be found. • Para cambiar este error necesita conocer el detalle de programación de un modulo descrito en la parte B de este manual. Manual del Programador Elastix 6 2. Programación de un Módulo 2.1.Crear una carpeta • En la ruta /var/www/html/modules/ • El nombre de la carpeta tiene que ser igual como el id module que puso en la base sqlite, en este caso fue example. $ mkdir –p /var/www/html/modules/example/ • Es importante mantener los permisos de la carpeta creada como usuario asterisk. $ chown asterisk:asterisk /var/www/html/example/ 2.2.Copiar contenido • De la carpeta example a la carpeta de su modulo. • example es un tar que contiene un module base para empezar una programación. 2.3.Permisos • Asegúrese que todo contenga los permisos asterisk $ chown -R asterisk:asterisk /var/www/html/modules/example/ Manual del Programador Elastix 7 3. Arquitectura Modular 3.1.Vista General default.conf.php ...class.php module ...class.php libs configs php file ...class.php folder ...class.php tpl 1 themes index.php tpl 2 tpl 3 tpl ... default lang en.lang fr.lang es.lang ...lang 3.2.Detalle de index.php 1._ lib/ framework (include/require). Propio del Elastix. 2._ lib/module (include/require). Propios del modulo. 3._ globals arrays.en.lang). 4._ language local del modulo (default 5._ template invocation. Function 6._ conexion base o files (no siempre). _moduleContent 7._ Repartir acciones con Switch Show (functions) Edit (functions) Delete (functions) Update (functions) Other Action (functions) 8._ return module 3.3.Detalle de class.php Constructor (recibe objeto conexión de bases o files) Atributo var _DB Atributo var errMsg Clase Funciones de acciones Propiamente descriptivas de la Clase. 3.4 Detalle de default.conf.php name_module Array theme = “default”