Vous êtes sur la page 1sur 10

Manual de Desarrollado de Mdulos en Espaol

Version 1.0-4 Beta

Escrito por: Bruno Macias V.


(bomv.27@gmail.com)
MduloDeveloper
Introduccin
Estegranmdulodistribuidoentressubmduloshastalapresentefecha,hasidodesarrollado
pararealizaraccionesdecreacin(BuildModule),eliminacin(DeleteModule)y
mantenimientodeloslenguages(LanguageAdmin)parausodedesarrolladoresqueconocenel
frameworkElastix,lenguajedeprogramacinPHP,basesdedatosMySQLySQLite.

Estaherramientaconstituyeunahorroencodificacinytransparenciaenprocesosrutinariosal
empezaradesarrollarunmoduloparalaGUIdeElastix.

SerecomiendatenerconocimientosdearquitecturaMVC2(ModelodeCapas),conocimientoen
programacinorientadaaobjetosPOO,conocerlastecnologaswebtantoparaelladodel
clienteyparaelladodeservidorcomohtml,style,javascript,ajax,etc.

Detalles
BuildModule:
Esteeselprincipalsubmdulosparadeveloper,generaunmdulobaseoesqueletoparaluego
continuarconeldesarrollodelalgicaoelfinqueelmodulopresenta.Estoayudaentomarel
tiempodebidoalalgicaofuncionalidad,porendedetallesdediseoytareasrepetitivas
(codificacionessimilaresoidnticas)notomaranmayortiempoencrearlas.
AlcrearunmoduloconelBuildModulevaagenerardoscosasenlaplataformaGUIElastix
basandoensuframework:

Generacindelmenomenssegnseaelniveldondeestarelmodulo.Sontresniveles
queElastixmanejaparasusmens.
Generacindelaprogramacinesqueletoubicadoenlacarpetamodulesdelframework
Elastix,estanuevomdulosucarpetatieneelnombredelidquesehallaelegidoenla
interfazdeBuildModuleyestenodeberepetirse.

Hayquenotarquelageneracindelesqueletocontieneprogramacindinmica,que
inteligentementesecreasegnladescripcindelmdulo,yaseaesteunreporte(grip),un
formularioounframed(paraintegrarotrossoftwaredentrodelaGUIElastixmedianteeluso
deunframe).

ElBuildModuleestaseccionadoentrespartes:

InformacinGeneral
Localizacin
Descripcindelmdulo
PresentacingeneraldelavistadeBuildModule:

InformacinGeneral
Estaseccinnosayudaendefinicindenombreeidentificadornicodelmdulo,datosdela
personaquecreaelmoduloparacomentarlasenlascabecerasdecadaarchivodeprogramacinen
PHPyelniveldevisinparalosusuariosdeestemdulo.

Parmetro Descripcin
ModuleName NombredelMdulo,iniciandolaprimeraletradecadapalabraconmayscula
IdentificadordelMdulo,debeserenletraminsculayseparadaporunsub
ModuleId
guintalcomosemuestraenlafiguradearriba.
Estaopcinpermiteelegirelgradodeaccesibilidaddelosusuariosaeste
GroupPermission
mdulo.
YourName Definimoselnombredequienhizoelmdulo.
Youremail Direccindecorreoelectrnicodequienhizoelmdulo.
Location
Enestaseccinindicadondevamosaubicarelmendelnuevomdulo.Elastixmanejatresniveles
demensporendedebemostenerunpocodecuidadoenelingresodelosdatos,laimagenmuestra
aeleccindemendenivel3ysequierequeseunmentotalmentenuevo.Acontinuacinse
explicacomollenarestoscampos.

AlmomentodeubicarunmduloenelmenElastixsepuedenpresentarcuatroalternativas:

Nivel1 Nivel2 Nivel3 Descripcindelmenacrear


Existe Acrear Nosedaelcaso Unmendesegundonivelconunmenpadrede
nivel1queyaexiste,enelcasoparticularde
Elastixlosmenspadresson:System,PBX,Fax,
Email,IM,Reports,Extras,AgendayDeveloper.
NoExiste Acrear Nosedaelcaso Unmendesegundonivelconunnuevomen
padredenivel1,enestecasoelmenpadreno
existeyseracreadoparaellohayqueingresarsu
nombreysuidenlosrespectivoscamposdeLevel
1ParentNameyLevel1ParentId.
Existe Existe Acrear Alcrearelmendetercernivelexistentantoel
padredelsegundoyprimernivel,enestecasosolo
seseleccionalosrespectivosmenspadresdelos
combosqueaparecen.
Existe NoExiste Acrear Enestecasohabrqueingresarlosdatospara
creartantoelnuevomencomoeldelpadredel
mismo,paraelloestnloscampos,Level2Parent
NameyLevel2ParentId.
NoExiste NoExiste Acrear Esteeselcasoenquesedeseaunmenudetercer
nivelperototalmenetenuevoencategoriasdelos
mensparaelloestanloscampos:
Level2ParentNameyLevel2ParentId.
Level1ParentNameyLevel1ParentId.
Creacindeunmduloenunmendesegundonivelconpadredenivel1existente.

Creacindeunmduloenunmendesegundonivelconpadrenoexistente.

Creacindeunmduloenunmendetercernivel,tantolospadresdenivel1ynivel2existen.
Creacindeunmduloenunmendetercernivel,enestecasohayqueingresarlosdatosparael
mendesegundonivelquenoexisteperoeldeprimernivelsiexiste.

Crearunmduloenunmendetercerniveldondesuspadresnoexisten.

Parmetro Descripcin
ModuleLevel Aquidefinimoselniveldelmoduloestepuedeser23
Estaopcinesmuyimportantepuesaquidefinimossielmoduloacreartiene
un"mdulopadredenivel1existente".
Si:Escogemosel"mdulopadre".
Level1ParentExists
No:Procederemosaingresarinformacinen2camposadicionalesque
aparecen.
Level1ParentNameyLevel1ParentId
Definimoselnombredel"ModuloPadre"siguiendoelmismoformatoes
Level1ParentName
decirsololaprimerapalabraconletramayscula
Definimoselidentificadordel"ModuloPadre"siguiendoelmismoformatoes
Level1ParentId
decirconletraminsculayseparadadesubguionessiesnecesario.
Estaopcinesmuyimportantepuesaquidefinimossielmoduloacreartiene
un"mdulopadredenivel2existente".
Si:Escogemosel"mdulopadre".
Level2ParentExists
No:Procederemosaingresarinformacinen2camposadicionalesque
aparecen.
Level2ParentNameyLevel2ParentId
Definimoselnombredel"ModuloPadre"siguiendoelmismoformatoes
Level2ParentName
decirsololaprimerapalabraconletramayscula
Definimoselidentificadordel"ModuloPadre"siguiendoelmismoformatoes
Level2ParentId
decirconletraminsculayseparadadesubguionessiesnecesario.
ModuleDescription
Estaseccinsuimportanciaestaenquesedefinequetipodemdulovaacrear,entreellotenemos
detrestipos:
Formulario
Reporte
Frame

Tiposdecamposquesepuedencrearenladefinicindeunmdulotipoformulario:

NOTA:Conlosbotones">>","<<"podemosaadiroquitarloscamposainsertarennuestro
formulario.Ademas,cuandoesdetipogridelcampo"FieldType"esoculto,solobastaconescribir
en"FieldName"quesonlosnombresdelascolumnasapresentar.

Parmetro Descripcin
Estaopcinnospermiteelegireltipodemoduloquedeseamos
crear,tenemostrestipos.
ModuleType Form:Creaciondeunmduloformulario.
Grid:Creacindeunmduloreporte
Framed:Creacindeunmduloparacontenerdeframe.
FieldName Definimoselnombredelcampoacrear
FieldType Definimoseltipodelcampoacrear
Alguardarlosdatosestablecidosparaelnuevomduloyenespeciallosdetipoformularioy
reporteestocrearaelsiguienterboldedirectoriosenlarutadocumentRoot/modulesdonde
documentRootes/var/www/htmlparaElastix:

Comopodrnotarunmodulotienelamismaarquitecturageneraldel
framework,arquitecturawebMVC2porendesedefineaestocomoun
MVC2dentrodeotroMVC2unadefinicinderecursividaddegrado2.
Enquenosayudaesto,esquepodemosdeformainmediatahacersimilitud
quelascarpetastienenlassiguientesrelaciones:
themeseslacapavista
index.phpeslacapacontrol
libseslacapamodelo
Carpetascomolangssonimportantesrecalcaryaqueaqusedefinirnlas
traduccionesparaelmdulo.

DeleteModule:
Elsubmen"DeleteModule"delmdulo"Developer"enElastixnospermiteeliminar
mdulosentodossusniveles.Primerotendrqueeliminarlossubmdulosqueexistan
enelmdulopadreparapodereliminarloporcompleto.

Nota:
TenerprecaucinalescogerlaopcinDeleteFilesqueestoeliminarelcontenidode
losmdulosporcompleto,usteddebeestarseguroalaplicarestaopcin.
LanguageAdmin:
Elsubmdulo"LanguageAdmin"delmdulo"Developer"nospermiteadministrarlosdiferentes
idiomasdelosmdulosenElastix.
Podemosconsultarsiexisteunlenguajedefinidoparaunmdulo,tambienparaelFRAMEWORK y
observarunalistadepalabrasconsurespectivatraduccincomolopodemosobservarenlafigura
deabajo.Estosvalorespuedensermodificadosdeacuerdoalidiomaquedeseetraduciryguardar
loscambiospresionandoelbotn"Saveall".

Agregarnuevastraduccionesy/olenguajesaunmdulo
ParaagregartraduccionesodefinicionesdelenguajesenElastixexistelasiguienteventana:

Estaventananosindicasivamosacrearunanuevatraduccionesaunlenguajeexistenteosivamos
acreartotalmenteunnuevolenguaje,algodenotaresquesielejimosunnuevolenguajeparaun
mdulodadoesteestableceralaspalabrasotraduccionesbasandosedellenguajeeningles,porende
cuandoustedcreesunuevolenguajenotarqueestallenoeninglesydeahipodrhacerla
traduccionesasuidioma.
Tambinnospermitelatraduccinaotroidiomapalabraporpalabradeunmdulocomolo
podemosobservarenlafigura.