Beruflich Dokumente
Kultur Dokumente
Prctico
Versin
14.3
Laguatotal
TrucosyfuncionesdelFrameworkparaobtenerelmximoprovecho!
Unmanualparalageneracinrpidadeaplicacionesweb
sin
conocimientosdeprogramacin
...otambinunframework
completoypersonalizableparaaquellosmsexperimentados.
Documentacinoficial.
Notadelautor:
Sibienestedocumentointentamantenersealaparconlasfuncionalidadeslanzadasencadaversin,la
actualizacindeltextoesunatareaextensa(einterminable).Unresmendecadafuncionalidadlanzadapodrserencontradaenel
CHANGELOGyenlarevisionesdeversiones,apartirdeahelusuariopodridentificaryexplorarcadafuncionalidadnuevayquepor
motivosdetiemponohayasidoincluidaanenestemanual.
AVISOSDECOPYRIGHT
LicenciaGNUFDL1.3
Se garantiza permiso para copiar, distribuir y modificar este documento segn los
trminos de la GNU Free Documentation License, Version 1.31 o cualquiera
posteriormente publicada por la Free Software Foundation, sin secciones invariantes ni
textos de cubierta delantera o trasera. Una copia de la licencia puede ser encontrada
comorecursoenlneapormediode
esteenlace
.
1
2
LicenciaGNUFDLversin1.3.FreeSoftwareFoundation.Disponibleenhttp://www.gnu.org/licenses/fdl1.3.html
LicenciaGNUGPLversin2.0.FreeSoftwareFoundation.Disponibleenhttp://www.gnu.org/licenses/gpl2.0.html
Visite
practico.org
paramsinformacin
Documentacinoficial.
ndicegeneral
1.Introduccin
1.1.Agradecimientos
1.2.Prefacio
1.2.1.Sobreestedocumento
1.2.2.QuesPrctico?
1.2.3.VentajasdeusarPrctico
1.2.4.QuotrosaspectosautomatizaPrctico?
2.EmpezandoconPrctico
2.1.Requisitosmnimos
2.2.InstalacinfrescadePrctico
2.2.1.Obteniendolaltimaversinestable
2.2.2.Descomprimiendoelarchivoensuservidorweb
2.2.3.Iniciandoelasistentedeinstalacin
Pantalladebienvenidayseleccindeidioma
Revisindelalicencia
Verificacindeconfiguraciones
Configuracingeneraldelaherramienta
2.3.Instalacionesdeintegracinconotrasaplicaciones
Cmohagolaintegracin?
2.4.Aplicacindeparchesdeactualizacin
2.4.1.QuesunParche?
2.4.2.Recomendacionespreliminares
2.4.3.Procesodeaplicacindeparches
Identificandomiversinactual
Descargandoelarchivodeactualizacinadecuado
Aplicandoelparchedeactualizacinamisistema
2.5.Consideracionesparaunareinstalacin
3.Construyendosusaplicaciones
3.1.Definiendounabasededatos
3.1.1.Adicindetablas
Manualmente
Pormediodelasistente
3.1.2.Adicindecamposaunatabla
Consideracionesespecialessobrelostiposdedatoyvalidaciones
3.2.Generandoformularios
3.2.1.Formulariosdedatos
Matrizdescriptivadepropiedadesporcampo
3.2.2.Accionesycomandos
Agregandounabotonesconaccionesycomandosaunformulario
Detallesobrelostiposdeaccionesdisponibles
Visite
practico.org
paramsinformacin
Documentacinoficial.
3.2.3.Formularioscombinados
3.2.4.Formularioscomoinformes
3.2.5.Scriptspersonalizablesentiempodeejecucin(JavaScript)
3.3.Diseandoinformes
3.3.1.Informesdetipotabladedatos
3.3.2.Informesgrficos
3.3.3.Informescombinados
3.3.4.Accionesycomandoseninformestabulares
3.3.5.Mduloscomplementariosdeinformes
3.4.Gestindemensyopcionesdeusuario
3.4.1.Generalidadessobrelosmens
3.4.2.Comandosespeciales
3.4.3.Tpicosavanzados:Enrutamientodeusuariosacomandosinternos
3.5.Usuariosypermisos
3.5.1.Creacindeusuarios
3.5.2.Asignacindepermisos
3.5.3.Losusuariosespecialescomoplantilladepermisos
4.AmpliandolasposibilidadesdePrctico
4.1.Mdulosadicionales(oficiales)
4.1.1.Sistemademonitoreo
4.1.1.SeguimientosporGoogleAnalyticsBeacon
4.2.Paquetesdeiconos
4.3.Plantillasgrficas
4.3.1.PlantillasparaPC
4.3.2.Plantillasparadispositivosmviles,tabletas(touch)
5.Tpicosavanzados
5.1.CambiandomimotordeautenticacinaLDAP
5.2.IntegrandolaautenticacinconproveedoresOAuth
5.3.Prcticocomoservidordeautenticacin
5.4.Autenticacinfederada
5.5.Creacindefuncionespersonalizadas
5.6.Creacindemdulospropios
5.7.Generandoelementospblicos
5.8.TrabajandopatronesMVCconPrctico
5.9.FuncionesdisponiblesdelFramework
5.9.1.Funcionesgeneralesdebasededatos
ejecutar_sql:
ejecutar_sql_unaria:
ejecutar_sql_procedimiento:
5.9.2.Funcionesespecficasdebasededatos
existe_valor:
ContarRegistros:
5.9.3.FuncionesgeneralesdisponiblesenPHP
auditar:
CodigoQR:
Visite
practico.org
paramsinformacin
Documentacinoficial.
TextoAleatorio:
enviar_correo:
5.9.4.FuncionesgeneralesdisponiblesenJavaScript
PCO_ObtenerContenidoAjax:
PCOJS_MostrarMensaje:
PCO_VentanaPopup:
PCO_AgregarElementoDiv:
PCO_AgregarElementoDiv:
5.9.5.Funcionesdeformatoypresentacin
abrir_ventana:
cerrar_ventana:
abrir_barra_estado:
cerrar_barra_estado:
5.9.6.Variablesdeentornoyvariablesdeusuario
Variablesdesesion:
Variablesentiempodeejecucin:
Variablessegnelcontexto:
Otrasvariablesespeciales:
5.10.Administracindelidioma
5.11.Clonacinrpidadeaplicaciones
5.11.1.Clonacindeformularioseinformes
Clonacin"Enlnea"
XMLconIDactual:
XMLconIDDinmico:
Pasosparaclonarunformulariooinforme:
6.Complementarios
6.1.Arquitecturadelaaplicacin
6.2.Capadedatos
6.3.Lgicadeprogramacin
6.4.Escenariosparadesplieguedeaplicaciones
6.4.1.Servidordewebybasededatosdedicadoaproduccin
6.4.2.Servidorwebydebasededatosdedicadoaproduccinypruebas
6.4.3.Servidordewebybasededatosindependientesdedicadosaproduccin
6.4.4.Servidordewebybasededatosindependientesdedicadosaproduccinypruebas
6.4.5.DespliegueenHeroku
6.4.6.Mododedemostracin
Glosario
Referencias
Visite
practico.org
paramsinformacin
Documentacinoficial.
1.Introduccin
1.1.Agradecimientos
A todalacomunidaddesoftwarelibrequetrabajaalrededordePrctico,consusconstantesrealimentaciones,
sus preguntas en foros de discusin, reporte de errores, aportes a nuevas funcionalidades, sugerencias y
demsaportesqueenmayoromenorgradoayudanalmejoramientocontinuodelaherramienta.
Tambin agradecemos a las empresas que se han vinculado al proyecto mediante donaciones en dinero y
trabajoparalarevisindeseguridadyfuncionalidaddelasdiferentesversiones.
Gracias!
1.2.Prefacio
1.2.1.Sobreestedocumento
La Gua total de Prctico se encuentra en constante edicin para corresponder con las funcionalidades en
cada lanzamiento de la herramienta y espera dar a conocer las posibilidadesconquecuentaeldesarrollador
en el Framework mediante los procedimientos bsicos y tambin algunos avanzadosparala ejecucindelas
tareascomunesdeunprogramadorcuandoimplementaaplicacionesweb.
Explicade maneraclaracadafuncionalidaddemaneraqueustedseadeceaunescenarioquelesimplificar
la forma en que construye y despliega aplicaciones web de menor o mayor complejidad, disminuyendo por
muchoeltiempoquenormalmenterequeraparasusproyectos.
1.2.2.QuesPrctico?
Prctico es un proyecto de software libre publicado bajo licencia GNU GPL v2.0 para la creacin de
Visite
practico.org
paramsinformacin
Documentacinoficial.
aplicaciones web de una manera completamente visual, rpida y sin mayores conocimientos previos de
programacin.
Como framework para diseo, implementacin y despliegue de aplicaciones web sin necesidad de digitar
cdigo o programar en un lenguaje determinado, se enfoca en la necesidad sentida de disminuir los tiempos
para los desarrollos web, en los que normalmentesedebedigitaryreutilizarcdigoencontrandoquemuchas
delasoperacionespuedenserparametrizablesdealgunamanera.
1.2.3.VentajasdeusarPrctico
Visite
practico.org
paramsinformacin
Documentacinoficial.
10. Responsive! Todo su diseo y las aplicaciones generadas se construyen sobre la base de otros
frameworks comoBootStrap,permitiendoquesuaplicacin seacompatibleconmltiplesdispositivosy
ademsseafcilmentepersonalizable.
11. Aplicaciones robustas en el sector privado y gubernamental diseadas y ejecutadas por Prctico
generanconstantesmejorasderivadasdesudaada.
1.2.4.QuotrosaspectosautomatizaPrctico?
Plantillasdelaaplicacin
Validacindedatos
InteraccinAJAX
GeneracindeFormularioseInformes
Seguridadymonitoreos
InteraccinconelmotordebasededatossoportadoenPDOpara:
MariaDB/MySQL
PostgreSQL
SQLite
ODBC
DB2
Oracle
Firebird
FreeTDS/Sybase/MSSQL
Unalistacompletayactualizadadelasfuncionalidadesdelaherramientaascomootrosmdulosexistentes
puedeserencontradaenelsitioweboficialysusespaciosdeWikiydocumentacin.
Visite
practico.org
paramsinformacin
Documentacinoficial.
2.EmpezandoconPrctico
2.1.Requisitosmnimos
ComosemencionarribaPrcticoesmuyfcilyenestesentidolosrequerimientosparahacerfuncionarel
frameworksonmnimos,acontinuacinselistan:
Deinters...
ServidorWeb.Apache,Cherokee,Lighttpd,IISocualquieracon
soporteparaelpreprocesadordehipertextoPHP3 .
Posibilidaddeescrituradearchivosycambiodepermisossobreel
servidorweb.Noobligatorioperosrecomendado.
IntrpretePHP(versin5.3+).Puedenrequerirsealgunas
extensionesdePHPadicionalesparagenerarimgenes,PDF,Web
Services,etc.
MotordebasededatosysudriverparaPHPPDOcorrespondiente.
Aunquesehaprobadosu
funcionamientoendiversas
plataformas,eldesarrollode
Prcticosellevaacabosobreun
servidorwebApacheymotorde
basededatosMariaDB/MySQL
2.2.InstalacinfrescadePrctico
En esta seccin, se explican los pasos a seguir, para poner a funcionar el framework en nuestrosambientes
dedesarrolloyproduccin.
Aunque en esencia todas las instalaciones se realizan con el mismo asistente, la seleccin de ciertas
opciones hace que se obtengan resultados totalmente diferentes segn el escenario deseado para su
aplicacin. Los procedimientos especficos segn ciertos escenarios (integracin con otras aplicaciones,
reinstalacin,actualizacin,etc)serndescritosenapartadossiguientes.
Seasumequeelusuariocuentaconunservidorwebinstalado.EncasodenoseraspodrrealizarsuinstalacinbajoLinuxoWindowssiguiendo
cualquierdelosprocedimientosdescritosenlaweb.ComoporejemplolainstalacindeXAMPPenWindowsoinstalacindeLAMPparalinux
Visite
practico.org
paramsinformacin
Documentacinoficial.
2.2.1.Obteniendolaltimaversinestable
ParainstalarelFramework,sedebedescargarsuarchivocomprimidodesdelaseccindedescargasdelsitio
oficial
http://www.practico.org/
paraobtenersuversinmsreciente.
Vayaalsitioweboficial,localiceelenlacededescargasyhagaclicsobrel.Tengaencuentaquela
presentacindeunsitiowebpuedecambiarconfacilidad,asquesigaestospasosdemaneragenrica.
Con esto su navegador ser redireccionado a GitHub, donde residen los repositorios de cdigo y descargas
del proyecto. All encontrar el nmero de la ltima versin disponible y una lista de cambios y mejoras
incluidosenlamisma.
Visite
practico.org
paramsinformacin
10
Documentacinoficial.
Enlalistadedescargasdisponiblespuedequeencuentrediferentesarchivos.Paraunainstalacinfresca
seleccioneaquelqueindicasolamentelaversinainstalar.Otrosarchivospuedensernicamentepara
actualizacindesdeversionespreviasoaplicaractualizacionesyaliberadasparalaversinactualsegn
comoloindiquesunombre.
SideseaversionesanteriorespodrencontrarlasenlapginageneraldeReleasesdelproyecto:
https://github.com/unix4you2/practico/releases
dondeencontrarlaltimaversinestableyhaciaabajoen
ordencronolgicolasversionesanteriores.
2.2.2.Descomprimiendoelarchivoensuservidorweb
Acontinuacinguardeelarchivoeneldirectoriorazdesuservidorweb(DocumentRoot).
Para asegurar cierta uniformidad en el documento, en todos los ejemplos que requieran referenciar archivos
especficosasumiremosquesehadescomprimidoelpaquetedelframeworkeneldirectorio
practico/
.
Al finalizar la descompresin del archivo tendr una estructura similar a la siguiente (los tamaos y archivos
puedenvariarentreversiones):
Visite
practico.org
paramsinformacin
11
Documentacinoficial.
En general, un usuario estndar no tendra que conocer el detalle de las carpetas para disear sus
aplicaciones,yaquePrcticoseencargainternamentedegestionartodolonecesario.
2.2.3.Iniciandoelasistentedeinstalacin
Abra un navegador abra la direccin correspondiente del servidor web utilizado y la carpeta de
descompresin. Aqu depender de si ustedestinstalandoPrcticolocalmente(ensumquina) osilotiene
sobreunservidordisponibleenlawebosuredLAN.
Bsicamenteladireccindeaccesopuedetenerunadelassiguientesestructuras:
Direccindelservidor
Carpeta
http://localhost /
Instalacionesensumquinalocalysobrelarazdelservidor
http://localhost /practico
Instalacinsobremquinalocalperoustedhadescomprimidotododentrodeunacarpeta
llamadapractico
http://sudominio.com /
InstalacinsobrelarazdeunservidordisponibleenInternetaccesibleensudominio.com
http://sudominio.com /practico
InstalacinsobreunacarpetallamadapracticoenunservidordisponibleenInternet
accesibleensudominio.com
http://192.168.1.254 /practico
Escenario
InstalacindisponibleenunamquinaoservidordesuredLAN.Ladireccinycarpeta
podrcambiarsegnsuconfiguracinderedaligualquelascombinacionesanteriores.
Visite
practico.org
paramsinformacin
12
Documentacinoficial.
Peroantesparalosmsansiosos...unprocesosimplificadodelasistente:
1. Cuandovisualiceelasistenteenpantalla,seleccioneelidiomadeseadoyclicen
[Siguiente]
.
2. Reviselalicenciayclicen
[Continuar]
3. Verifiqueconfiguracioneshastaquetododiga
[Correcto]
yclicen
[Continuar]
4. Configurelaherramientaingresandoalmenos:
Tipodeservidor
DireccinIPohostdelservidor(olocalhostsitodoestenlamismamquina)
BasededatospreviamentecreadaparaPrctico
Usuarioycontraseaparaelaccesoalmotor
Nombredesuorganizacin,aplicacinyversininicial
yclicen
[Continuar]
5.
yclicen
[1.AgregarinformacinalaBD]
6. Verifiquelaejecucindelosscripts
yclicen
[IrasuinstalacindePrctico]
7. Sedesplegarunmensajedecierredesesin(deinstalacin)hagaclicen
[Ingresar]
8. Enlaventanadeloginingreseahoraconelusuario
admin
yclave
admin
Recomendacionesparaquieneshanqueridoseguiresteprocedimientorpidodeinstalacin:
No olvide eliminar o renombrar la carpeta /ins existente dentro de la carpeta donde se ha realizadola
descompresin de Prctico. Esa carpeta contiene el asistente de instalacin y si vuelve a ser
ejecutado podra perder sus configuraciones. Prctico intentar hacer esto por usted renombrandola
carpeta a algo como ins_Y56DT3S73K8 o similar pero si los permisos no son los adecuados usted
deberhacerloporsmismo.
Lea los mensajes, advertencias o informacin adicional desplegada por la herramienta. Esto es
fundamentalparacomprenderloquesehaceenelmomentoycmoactuarPrcticoalrespecto.
Visite
practico.org
paramsinformacin
13
Documentacinoficial.
Ahoras...elprocesodetalladodeinstalacin:
Pantalladebienvenidayseleccindeidioma
Una vez ingresada la direccin correcta en su navegador de Internet debera ver una pginaconelasistente
deinstalacindePrcticosimilaraesta:
Importante...
Seleccioneaquelidiomadeseadoparaelprocesodeinstalacin
y la plataforma definitiva. Tenga en cuenta que el idioma podr
ser cambiado en cualquier momento
en caliente
mediante el
paneldeconfiguracinporelusuarioadministrador.
LuegohagaclicenContinuar/Nextparairalsiguientepaso.
Sehareportadoqueenalgunosservidores
webbajowindowslalistadeseleccinde
idiomapresentalamismadescripcin.Aqu
deberguiarseporelnombredearchivo
(es.phpparaespaol,en.phpparaingls,etc.)
Revisindelalicencia
Bsicamenteenlasiguientepantallaqueparecedespusdelaseleccindelidioma,podrustedencontrarla
licenciabajolacualesliberadoPrctico:LicenciaGNU/GPLversin2.0.Estalicencialegarantizaaustedlas
siguienteslibertades:
EjecutarPrcticosinimportarelpropsito
EstudiarelfuncionamientodePrcticoymodificarlosiaslodeseapormediodelaedicindesus
cdigosfuente.
RedistribuircopiasohacertodaslasinstalacionesquedeseedePrctico.
DistribuircopiasoinstalacionesdelasversionesdePrcticoqueustedhayamodificado,casoenel
quedeberponeradisposicintambinsucdigofuente.
Enpocaspalabras,ustedpuedeejecutarPrcticoencualquierentornoysinimportarsufinalidadoincluso
regalarcopiasaotrosoredistribuirloporlared.
Visite
practico.org
paramsinformacin
14
Documentacinoficial.
Unavezrevisadalalicenciahagaclicen
[Continuar]
paraseguiradelanteconlainstalacin.
Verificacindeconfiguraciones
En la siguiente pantalla, Prctico verificar el estado de algunas configuraciones bsicas para que la
herramientapuedaoperarcorrectamente.
Para la instalacin y escritura de archivos de configuracin es necesario que Prctico tenga permisos
completos sobre ciertas rutas al momento de instalacin. En caso de no contar con los permisos mnimos
requeridosustedpodravisualizarunmensajede
[Error]
comoelqueseapreciaacontinuacin:
Visite
practico.org
paramsinformacin
15
Documentacinoficial.
Aclaracin
Lospermisosdebenconservarse
inclusodespusdelfinalizarel
procesodeinstalacinparaque
Prcticopuedaseguiralmacenando
sinproblemasconfiguraciones,llaves
parawebservices,backups,parches
deactualizacin,etc.
Configuracingeneraldelaherramienta
Tal vez uno de los puntos ms crticos es la conexin con su motor de base de datos. Para esto es
importante que ya tenga creada la base de datos sobre la cul desea trabajar y que siga los consejos
disponibles en el asistente. Hacerunalecturacuidadosadelosmensajesdesplegadosporelasistenteayuda
acrearunaconfiguracinadecuada.
En general la configuracin, aunque un proceso de cuidado, es algo muy simple y opera de manera muy
similar a cualquier gestor de contenidos que conozca como Joomla, Drupal, WordPress, o similares. Las
seccionesaconfigurarsedescribenacontinuacin:
Enlaconfiguracinde
[MotordeBasedeDatos]
cuentaconlassiguientesopcionesbsicas:
Importante!
Tipo de motor
: Indique el motor de base de datos sobre la
cualtrabajarPrctico.RecomendadoMariaDBMySQL.
Servidor
: Direccin pblica o privada que pueda ser resuelta
por el servidor web y donde reside su servidor de base de
datos. Si todo corre sobre la mismamquinaunlocalhostser
suficiente.
Base de datos
: Nombre de la base de datos creada
previamenteparaPrctico.
NoolvidequeenPrctico,ubicandoel
ratnsobrecadaiconogrficode
interrogacinoadmiracinubicadoal
ladoderechodecadacampo
encontrarinformacinvaliosasobre
suuso.
Usuario
: Nombre del usuario que tiene acceso al motor de base dedatosy conprivilegiossuficientes
Visite
practico.org
paramsinformacin
16
Documentacinoficial.
paracreartablassobrelabasededatoscreadaparaelusodePrctico.
Contrasea
:Claveutilizadaporelusuarioanteriorenelmotor.
Anotacinsobrelosprefijos
: ConfigurarprefijosdetablaigualesparasuaplicacincomoparaPrctico
permitir que desde la aplicacin se manipulen registros de los diseos mismos. Esta configuracin
debera ser utilizada si el usuario cuenta con amplia experiencia sobre la herramienta y desea
implementar diseos dinmicos donde sus usuarios finales pueden alterar los formularios, informes y
dems.Lamayoradelasinstalacionesdeberantenerprefijosdiferentes.
Llave de paso
:
(
Puede usar el valor predeterminado)
Visite
practico.org
paramsinformacin
17
Documentacinoficial.
Importante
Seagradecelalecturade
documentacinybsquedade
respuestaspreviasaotros
problemascomunescomobuena
prcticaantesdepreguntaralgo.
En la configuracin de
[Parmetros para su primera aplicacin] cuenta con las siguientes opciones donde
bsicamente deber ingresar un texto descriptivo para cada una. Todas hacen referencia a los valores
utilizados para la aplicacin que usted piensa disear en Prctico y que posteriormente sern utilizados en
encabezados o pie de pgina para informes o incluso para el ttulo desplegado en la parte superior de su
aplicacinparatodoslosusuarios:
Enlaconfiguracinde
[Configuracindeopcionesvarias]
cuentaconlassiguientesposibilidades:
Zona horaria
: Especifique la ubicacin geogrfica donde se encuentra el servidor que correr su
aplicacin.Estoesimportanteparaeladecuadomanejodefechasyhoras.
Visite
practico.org
paramsinformacin
18
Documentacinoficial.
Visite
practico.org
paramsinformacin
19
Documentacinoficial.
asquepodrnpasaramodoHTTPsincifradoparaesto.Lasopcionesson:
Autodetectar por URL
: En este Prctico revisa la URL de acceso utilizada por el usuario, si
detecta que ha sido llamado mediante HTTPS entonces activar el modo cifrado para
autenticar.
HTTP sin cifrar (por defecto): El transporte se hace con el protocolo estndar, sin usar
certificadosSSL.Eselmodomsefectivoparahacerlogin.
HTTPcifrado
:SiemprehaceusodeHTTPScuandosellamealwebservicedeautenticacin.
El uso de la seccin de configuracin para Autenticacin basada en LDAP est descrita en el apartado
posterior Topicos Avanzados y podra ser dejada en blanco inicialmente, posteriormente podra ser
cambiadaencalientedurantelaejecucindelaherramienta.
Algoritmo de encriptacin
: Indique aqudequmaneracifraoalmacenalascontraseas suservidor
LDAP. Esto es fundamental pues antes de cualquier solicitud al servidor Prctico har el cifrado
correspondienteparaenviarlascredenciales.
Servidor
: Direccin IP o nombre de host que con quien debe conectar Prctico cada vez que un
usuariosevayaaautenticarparapoderverificarsuscredenciales.
Puerto
: El puerto utilizado por su servidor de directorio. Acontinuacinalgunoscomunesaunquesu
configuracinpuedevariar:
LDAP:389
LDAPcifrado:636
ActivedirectorySambaPDC(SSL):445
Dominio
:Alcualpertenecenlosusuariosaautenticar
Unidadorganizacional
:SobrelacualhansidocreadoslosusuarioseneldominiooservidorLDAP
Haga clic en
[Continuar]
para proceder conlaescrituradelarchivodeconfiguracinyoperacionesdebasesde
datos.
Visite
practico.org
paramsinformacin
20
Documentacinoficial.
Tenga en cuenta que en lugar de la ventana anterior podra visualizar algn mensaje de error de conexin
cuando los parmetros debasededatosingresadosnoseanloscorrectos. Siesasregresealpasoanterior,
verifiquelosdatoseintentenuevamente.
Visite
practico.org
paramsinformacin
21
Documentacinoficial.
Posteriormente posiblemente sea desplegado el mensaje de cierre de sesin que elimina todas las variables
en tiempo de ejecucin creadas por el asistente y le permite ingresar a la nueva instalacin. Haga clic en
[Ingresar]
parairalaventanadeloginencasoquenohayasidoredireccionadoastaautomticamente.
Ahorautilicelascredencialespredeterminadasparalaventanadeaccesodesplegada:
Usuario:
admin
Clave:
admin
Visite
practico.org
paramsinformacin
22
Documentacinoficial.
Tambindeberaactualizaralmenoselcorreoelectrnicodeladministradordelaplataformacambiandoel
genricoasignadodurantelainstalacinparaefectosderecuperacindeclaveyposterioresnotificaciones.
Sielcorreonohasidoactualizadosiempreserdesplegadaunaadvertenciaalusuarioadminas:
Visite
practico.org
paramsinformacin
23
Documentacinoficial.
2.3.Instalacionesdeintegracinconotrasaplicaciones
Usted podr utilizar Prctico para ingreso de informacin directa integrndose con su aplicacin sin pasos
adicionales mediante sus formularios o simplemente disear nuevos y mejores informes personalizados
medianteelmotordeinformesdePrctico.
Pararealizarestetipodeintegracionesesrecomendable:
Contar con un backup completo de la base de datos donde desea hacer la integracin para fines de
poderrestablecerantecualquiereventualidad.
Hacer una verificacin previa de los nombres de tablas generados por Prctico para su operacin
(aquellos de prefijo core) para que no se crucen con algn nombre de tabla ya existente. Si es as
ajustesuprefijoaotrovalor.
Verificarquelabasededatosdesuaplicacinseaaccesibledesdeelservidorwebdondeejecutar
Prctico.Estoesalgoquepodrverificarentiempodeinstalacin.
Cmohagolaintegracin?
Elprocesoestansimplecomoloquevieneacontinuacin:
1. InicieelasistentedeinstalacindePrcticonormalmentecomosifueraunainstalacinfresca.
2. Cuando llegue a la ventana de configuracin de la herramienta tenga en cuenta lasrecomendaciones
paralossiguientescampos:
Tipo de servidor: Indique el tipo deservidorsobreelcual residelaaplicacinconlaque desea
integrarse.
DireccinIPohostdelservidordondeseencuentralabasededatos.
Basededatos:Nombredelabasededatosconlaquedeseaintegrarse.
Usuarioycontraseaparaelaccesoalmotoryaesabasededatosenparticular.
Deje el prefijo de tablas internas de Prctico con su valor predeterminado a menos que en la
revisinpreviaencuentrequeyaexistentablasquecoincidanconalgunausadaporPrctico.
Elimine elprefijodetablasdeaplicacinydejeestecampovaco. EstohacequePrcticotome
todas las tablas de la aplicacin existentes y permita administrarlas para crear nuevos
Visite
practico.org
paramsinformacin
24
Documentacinoficial.
formulariosdeingresodeinformacinoreportes.
3. Al momento de guardar la configuracin y ejecutar scripts de bases de datosseleccionelaopcin1
Agregar informacin a la BD para que el asistente agregue las tablas correspondientes de Prctico.
No se preocupe, las tablas existentes de su aplicacin
no son eliminadas, sobreescritas, alteradas o
manipuladasdealgunamaneraduranteesteproceso.
4. FinaliceelprocesodeinstalacineingreseaPrctico.
Tengaencuentaque...
Visite
practico.org
paramsinformacin
25
Documentacinoficial.
2.4.Aplicacindeparchesdeactualizacin
Cuidado
No se recomiendaaplicarunparchesuperiorparasaltarseversiones,en
su lugarelprocedimiento recomendadoseraaplicarunaa unatodaslas
actualizaciones en orden hasta llegar a la ltima versin estable
disponible. De esta manera se aplican ordenadamente todos los
cambios de archivos y basesdedatosdndoleaustedun mayorcontrol
enlaverificacindelfuncionamientoposteriorencadaactualizacin.
2.4.1.QuesunParche?
Consideramos un parche a un archivo comprimido en formato ZIP que contiene los archivos mnimos
necesarios para ser aplicados a una versin estable de la herramienta de manera que ample sus
funcionalidades,corrijaerroresomejoresurendimiento.
El proyecto Prctico provee parches de actualizacin4 que permiten la actualizacin de su sistema a nuevas
versiones con funcionalidades mejoradas y se recomienda encarecidamente que mantenga su instalacin lo
msactualizadaposible.
Desarrolladoresinteresadosenproveersuspropiosparchesdemantenimientopuedenrevisarladocumentacinasociadaenelsitiooficial:
https://github.com/unix4you2/practico/wiki/6.Parchesdelsistema
Visite
practico.org
paramsinformacin
26
Documentacinoficial.
2.4.2.Recomendacionespreliminares
Aunque Prctico tomar algunas precauciones por usted a la hora de aplicar un parche como verificar
versionamientoycompatibilidad,generaralgunosbackups,etc.Serecomiendaqueusted:
Hagaunacopiadeseguridaddesubasededatosytodossusscripts.
Tengaalamanoelinstaladordesuversinactualencasoquenecesitereinstalarnuevamente.
Conocer su llavedepasoactualy engeneralsus configuraciones. Sirequiererevisarlasmanualmente
podr encontrarlas en la carpeta
/core sobre los archivos configuracion.php, ws_llaves.php y
ws_oauth.php
Realizar el proceso en otra instalacin similar a la actual (misma versin) para verificar su
comportamientoyquaccionestomardurantelainstalacinsobresuplataformadeproduccin.
Revisar en detalle el log de cambios publicado en la web e incluido con el mismo parche para que
tenga claro qu partes del sistema se vern mejoradas o tendrn algn cambio con la aplicacin de
estearchivo.
2.4.3.Procesodeaplicacindeparches
Identificandomiversinactual
El primer paso para aplicar un parche incremental es conocer su versin actual de la herramienta. De esa
manera podr ubicar el archivo de actualizacin adecuado que lo llevar a la siguiente versin. Para
identificarsuversinsigaestospasos:
1. Ingresealaherramientaconlascredencialesdelusuarioadmin
2. En el men superior de configuracin
, Haga clic sobre el botn o enlace existente para
Actualizacin/CopiasdeSeguridad
3. Enlaventanadesplegadareviseporeltexto
ActualmenteustedutilizalaversinXX.XXX
Otra forma alternativa para revisar la versin actual puede ser leyendo el archivo
inc/version_actual.txt
. Se
recomienda no cambiar este valor manualmente bajo ningn motivo. Prctico est en capacidad de
actualizarlo segn sea el caso. Slodesarrolladoresdelaplataformaenprocesodepruebasdeberanalterar
enalgunoscasossuvalorperonuncaenproduccin.
Descargandoelarchivodeactualizacinadecuado
En la seccin de descargas de la pgina o repositorio oficial encontrar adems del archivo de instalacin
completo,otrosarchivosquepuedenacompaarloas:
Visite
practico.org
paramsinformacin
27
Documentacinoficial.
Forma1:Archivosdeactualizacinconcambiodeversin:
Delaforma
Practico_XXXXX_to_YYYYY.zip
Donde XX Representa el ao y nmero de la versin actualmente instalada por usted y YY
representalaversinfinaldespusdeaplicarlaactualizacin.
Por ejemplo el archivo Practico_151_to_152.zip sera un archivo que permite actualizar desde la
versin15.1alaversin15.2delaherramienta.
Forma2:Archivosdeactualizacinsincambiodeversinoparchesintermedios:
Delaforma
Practico_XXXXX_Actualizacion_YYY.zip
DondeXXRepresentaelaoynmerodelaversinactualmenteinstaladaporustedyYY
representaelnmerodeactualizacinparalaversin.Puedeinterpretarlocomounaespeciede
servicepack
paralaversin.
Estos son parches intermedios entre versiones y se recomienda mantenerlos aplicados sobre el
sistemaenlaltimaversindisponible.
Tenga en cuenta: Este tipo de parches nunca cambian o actualizan el sistema entre versiones. No
espere que por ejemplo un parche llamadoPractico_15.2_Actualizacion_002.zipalaplicarlosobreuna
versin 15.1 haga la actualizacin completa de versin. Por ningn motivo aplique parches de una
versinsobreotrapuesstosdebenobedeceralaversinactual. Ensulugar,usteddeberaaplicarel
Visite
practico.org
paramsinformacin
28
Documentacinoficial.
parchequeactualizadesdelaversin15.1haciala15.2yluegoaplicarelparche002.
Aplicandoelparchedeactualizacinamisistema
Unavezdescargadoelarchivoadecuadoparasuversin,ejecutelossiguientespasos:
1. Ingresealaherramientacomousuarioadmin
2. Vayaalaopcinde
[Actualizacin/CopiasdeSeguridad]
3. Seleccionealarchivodeparchequehadescargado
4. Haga clic en [
Cargar el archivo].
Prctico deber presentar una ventana de cargue completado, ante
cualquier error verifique el archivo seleccionado y quetengapermisosdeescriturasobrela carpetade
trabajodePrctico/tmp
5. Hagaclicen
[Continuarconlarevisin]
6. Prctico presentar unresumenconlaverificacindeintegridaddelosarchivosincluidosenelparche,
las funcionalidades implementadas por el mismo y los scripts de basede datosquesernejecutados.
Serecomiendahacerunarevisindelainformacin.
7. Hagaclicen
[Continuar]
paraaplicarlaactualizacin.
Tip...
Antecualquiereventualidad o para
aquellos usuarios que as lo
prefieran, la aplicacin de un
parche puede ser realizada
manualmente con simplemente
sobreescribir
los
archivos
existentes en su instalacin con
los distribuidos en el parche y
adems ejecutando los scripts de
basededatoscuandolorequiera.
Esnormal
quedurantelaaplicacinconsecutivadeparchesintermediosdeformaActualizacion_XXXque
tengancambiossobrebasesdedatosseobtenganmensajesdeerroralfinalizar.Estossimplemente
informanquelaalteracindealgncampo,modificacindeestructuradelabasededatos,etc.yahasido
seguramenterealizadaenlaaplicacindeotroparchedelamismaformaconanterioridad.
Porejemplo,siaplicaunparche001dondeseintroducencambiosenalgncampoyluegoustedaplicael
parcheActualizacion_XXXposteriordelamismaversin,entoncesstospresentarnelmensajedeerror
informandoestasituacinpuessetratadeparchesincrementales.
Siustedporelcontrarioaplicaporprimeravezaunltimoparche,digamosActualizacion_006queyaincluye
muchoscambiosdebasededatospuedequenoveamensajealguno,puesloscambiosapenasseestn
ejecutandoporprimeravez.
Visite
practico.org
paramsinformacin
29
Documentacinoficial.
2.5.Consideracionesparaunareinstalacin
Importante!
Algunos administradores puede que estn considerando la posibilidad de reinstalar su herramienta poralgn
motivo. En estos casos el proceso se reduce a devolver el directorio de instalacin de Prctico a su lugar e
iniciardenuevoelasistente.
Deberatenerencuenta:
Sususuariosquedarndeshabilitadosamenosqueduranteelprocesodeinstalaciningreselamisma
llavedepasoquetenaconfiguradaantes.
En caso de no tener la llave de paso a la mano, podr instalar con una nueva y luego actualizar
manualmentesutabladeusuariosparaqueaspuedaningresarsinproblemaasuaplicacin.
Si durante la instalacinseleccionalaopcin1quealtera alfinallabasededatostengaencuentaque
todossusformularios,informesydemsserneliminados.
Visite
practico.org
paramsinformacin
30
Documentacinoficial.
3.Construyendosusaplicaciones
3.1.Definiendounabasededatos
Estas operaciones aplicarn sin importar si usted est trabajando con tablas de aplicacin creadas
directamente en Prctico o porque se trate de tablas detectadas desde alguna aplicacin para la cual hace
ustedunprocesodeintegracin.
Visite
practico.org
paramsinformacin
31
Documentacinoficial.
3.1.1.Adicindetablas
Manualmente
Diligencie el nombre de la tabla en el campo de texto. Utilice una notacion sencilla sin espacios, guiones o
caracteres especiales. Esrecomendableingresartodoen minsculayencasoderequerirespaciosutiliceen
elcaracterunderline_.Luegohagaclicen
[Creartablaydefinircampos]
.
La herramienta lo redireccionara de nuevo a la ventana que presenta todas las tablas de la aplicacin con
posibilidad de eliminarlas (cuando no tienen registros) o editarlas cuando requieraagregaroeliminarcampos
delasmismas.
Pormediodelasistente
Para ingresaralasistentedecreacindetablasdesdesuusuariodeadministracin
despliegue el panel de diseo haciendo clic en [Disear aplicacin] ubicado
normalmente en la parte superior de la herramienta. As ser desplegada una
ventanasimilaralaimagen.
Una vez all, haga clic sobre el primer botn correspondiente a la opcin de
[Base
deDatos]
.
Visite
practico.org
paramsinformacin
32
Documentacinoficial.
3.1.2.Adicindecamposaunatabla
La adicin de campos a una tabla en Prctico es una tarea muy sencilla, incluso
cuandosehace
encaliente
parasistemasqueseencuentrenenproduccin.
Nombre: representa el nombre del campo. Debe iniciar con una letra, sin
guiones puntos o espacios (notacin de variable) y se recomienda en
minsculas.
Tipo: Indica el tipo de dato que ser almacenado. Por compatibilidad, se
presentan cuatro tipos dedatosbsicosaunqueinclusoeldiseadorpuede
que quiera utilizar solamente los tipos de datos entero, texto corto y texto
largoqueseencuentrandisponiblesentodoslosmotores.
Longitud: En el caso de los campos de texto corto (conocidos en base de
datos como varchar), se puede especificar su longitud. Este campo no
aplicaparalosotrostiposdedato.
Autoincremento: Permite definir el valor de autoincremento para los
campos, sin embargo, este es un atributo que slopuede serutilizadoporadministradoresavanzados
que han suprimido la propiedad de autoincremento para el campo Id gestionado por Prctico, de lo
contrario, al tratar de agregar un autoincremento ser generado un error de SQL debido a que sobre
unatablanosepuedentenerdosomscamposconautoincremento.
Permitir valores nulos
: Indica si el campo permite valores nulosdurantelasinsercionesderegistros.
Esta es una configuracin desde la definicin de la tabla, an cuando todos sus campos permitan
valoresnulosustedpodrdefinirensuformulariolaobligatoriedaddealgunoscampos.
Visite
practico.org
paramsinformacin
33
Documentacinoficial.
Valor predeterminado(yelcampodevalorsiguiente):Indicaconquvalordebeserllenadoelcampo
cuando el usuario no enve ninguno. Tenga presente que para campos definidossobreformulariosel
valor mnimo enviado es un vaco, por lo que ya no es considerado como no enviado. Este valor
aplicara para aquellos formularios que insertan datos sobre una tabla pero sin tener este campo
definido.
Consideracionesespecialessobrelostiposdedatoyvalidaciones
Las validaciones por tipo durante el diseo de formularios posteriores pueden ser aplicadasincluso si
eltipodecamposobrelabasededatosdifieredelavalidacinindicadaenelformulario.
Todo tipo de dato sobre su base de datos podra ser declarado como Cadena (longitud 255) para
facilitarsucompatibilidadcondiferentesmotores.
An cuando todos los campos sean definidos como posible valor nulo, sobre el diseo de cada
formulario que hace las inserciones a la tabla usted podr indicar si el campo es obligatorio o no y
Prcticoharlasvalidacionesdelcaso.
Visite
practico.org
paramsinformacin
34
Documentacinoficial.
3.2.Generandoformularios
A continuacin una vista de ejemplo durante el diseo de un formulario para adicin de clientes en una
aplicacin. A la izquierda se aprecianlasherramientasutilizadasparaagregarlosdiferenteselementos yala
derechalavistapreviayfuncionaldelformulariodiseado:
El diseo de formularios en Prctico puede ser realizado en caliente, es decir, el diseador de aplicacin
podrmodificarinclusoaquellosformulariosqueseencuentrenenusoporalguienms.
Visite
practico.org
paramsinformacin
35
Documentacinoficial.
3.2.1.Formulariosdedatos
Losformulariosdedatossonventanasquepresentanalusuariounainterfazpormediodelacualpuede
realizaroperacionesbsicascomolaadicindeinformacin,consulta,eliminacin,entreotros.
Dentrodeloscontrolesprincipalescontrolesdedatosquepuedenseragregadosaunformulariose
encuentran:
Deinters...
Camposdetextocorto
(sobreunHTMLText)
Camposdecontrasea
(sobreunHTMLPassword)
Camposdetextolibre
(largosobreHTMLTextArea)
Camposdetextoconformatoenriquecido
(SobreTextArea)
Camposdeseleccin
(CombossobreHTMLSelect)
Camposdeseleccin
(RadiossobreHTMLRadio)
Camposdeslizadores
(sobreHTMLSlider)
Otrostiposdeobjetoquepuedenseragregados:
Textoenriquecido
(ComocontenidosenHTML)
URLembebida
(HTMLexterno)
Informesprediseados
(CreadosenPrctico)
Visite
practico.org
paramsinformacin
36
Documentacinoficial.
Visite
practico.org
paramsinformacin
37
Documentacinoficial.
Paracomprenderenquconsistecadapropiedadparasteyotrostiposdecamporeviselamatrizsiguiente.
Matrizdescriptivadepropiedadesporcampo
La siguiente matriz describe todas las propiedades que se pueden llegar a tener en los objetos que son
agregados a los formularios y que permiten personalizar su comportamiento. Aunque un poco larga y
detallada, se recomienda sulecturacompletaafinqueeldiseadordeaplicacionestengaclaroelusogeneral
yalcancedecadaunodeloscontrolesquepuedeincorporarasusformularios.
Propiedad
Ttulooetiqueta
Descripcin
Objetosalosqueaplica
Textocorto
Contrasea
Textolibre
Textoconformato
Listasdeseleccin
Deslizadores
Campodelatabladedatosalcualservinculadalainformacin.
Enel caso de diligenciar all una informacin, Prctico conocer el nombre
delcamposobrelabasededatosenelcualdebeguardarla.
Si se trata de un campo con bsquedas habilitadas le indicar adems a
Prcticoporqucampodeberealizarlabsquedasolicitadaporelusuario.
Adicionalmente, se podr especificar un nombre de campo manual. Si el
campo existe dentro de latablaasociadaalformularioentonces sertenido
en cuenta para las operaciones de base de datos, de lo contrario ser
ignoradoysolamenteestarallentiempodeejecucin.
Textocorto
Contrasea
Textolibre
Textoconformato
Listasdeseleccin
Deslizadores
Campodevalornico
Textocorto
Textocorto
Validacindedatos
Textocorto
Visite
practico.org
paramsinformacin
38
Documentacinoficial.
Campodeslolectura
Ttulodeayuda
Texto que aparecer como encabezado para el texto de ayuda del campo
explicandoalusuarioqudebeingresar.
Textodeayuda
Peso
Columna
Columna para ubicar el campo cuando la vista del formulario tenga varias
columnas.
Obligatorio
Textocorto
Contrasea
Textolibre
Textoconformato
Textocorto
Contrasea
Textolibre
Textoconformato
Listasdeseleccin
Deslizadores
Textocorto
Contrasea
Textolibre
Textoconformato
Listasdeseleccin
Deslizadores
Textocorto
Contrasea
Textolibre
Textoconformato
Listasdeseleccin
Deslizadores
EtiquetasHTML
URLEmbebida
Informes
Textocorto
Contrasea
Textolibre
Textoconformato
Listasdeseleccin
Deslizadores
EtiquetasHTML
URLEmbebida
Informes
Textocorto
Contrasea
Textolibre
Textoconformato
Listasdeseleccin
Textocorto
Contrasea
Textolibre
Textoconformato
Listasdeseleccin
Textocorto
Visible
Utilizarparabsquedas?
UsarAJAXparabuscar?
Textocorto
Agregartecladovirtual
Textocorto
Contrasea
Visite
practico.org
paramsinformacin
39
Documentacinoficial.
validaciones
Ancho
Cuntoespaciodeanchodebeocuparelcontrol.
IMPORTANTE: en nmero de caracteres para texto simple o en pixeles
para texto con formato. Indique un nmero de columnas, sin embargo,
tenga presente que el ancho en pixeles ser variable de acuerdo altipode
fuenteutilizadaporeltemaactual.
Textocorto
Textolibre
Textoconformato
Alto
Cuntasfilasdebenestarvisiblesenelcontrol?.
IMPORTANTE: en nmero de filasparatextosimpleoenpixelesparatexto
con formato. En caso que el texto supere el nmero de filasseagregarn
automticamentebarrasdedesplazamiento.
Para laslistas de seleccin representa si la lista ser un combo box (valor
cero)ounlistbox(valormayoracero)
Textocorto
Textolibre
Textoconformato
Listasdeseleccin
Barradeedicin
Textoconformato
Filanicaparaelobjeto?
Aplicaentodoslos
controlesyobjetos
Listadeopciones
Quopcionesaparecenparaserescogidas.
Ingrese una lista de opciones separadas por coma. Si requiere tomar las
opcionesdinmicamentedesdeotratabladelaaplicacinutilice loscampos
de Origen de datos paraopciones. Encasodellenarambasopciones(lista
fijayorigendedatos)elresultadosersucombinacin.
Listasdeseleccin
Origendelalistade
opciones
Debeespecificarelmismoorigen(tabla)delalistadevalores.
Campo desde el cual se toman las opciones que despliega la lista de
maneradinmicadesdeotrocampo/tabladelabasededatos.
Listasdeseleccin
Origendelalistade
valores
Debeespecificarelmismoorigen(tabla)delalistadeopciones.
Campodesde el cual setomanlosvaloresinternos(aserprocesados)para
cadaopcindelalistadesdeotrocampo/tabladelabasededatos.
Listasdeseleccin
Valordelaetiqueta
EtiquetasHTML
URLparaIFrame
delformulario.
URLEmbebida
Informevinculado
informeheredarlaspropiedadesenldefinidasdurantesudiseo.
Informes
Ventanapropiaparael
objeto?
URLEmbebida
Informes
Longitudmxima
Cuntoscaracterespermiteelcampo?.
Valorentre1yN,0paradeshabilitarellmite
Textocorto
Contrasea
Valormnimo
Indicaelvalornumricomnimoquesepuedeingresarenelcontrol
Deslizadores
Visite
practico.org
paramsinformacin
40
Documentacinoficial.
Valormximo
Indicaelvalornumricomximoquesepuedeingresarenelcontrol
Deslizadores
Valordesalto
Indicadeacuntasunidadessedebesaltarentrelosvaloresdelcontrol
Deslizadores
Deinters...
Algunostrucosespecialesconobjetosdeformularios:
Prcticopermitecambiareltipodecontrol,inclusodespusque
steseencuentraenfuncionamiento.Teniendoencuentaque
todaslaspropiedadessecompartenporloscontroles,sepodra
teneramaneradeejemplouncampodecontrasearestringidoa
slonmeros.Perocmosiloscamposdecontraseanoaceptan
filtrosdevalidacin?
Creeuncampodetextoestndarydefinasusparmetros.
Posteriormenteingresealaedicindelcampoycambiesu
tipoacontrasea.Verquesuspreferenciasdecampode
textosehancombinadoconlasdecampostipocontrasea.
Esteprocedimientopuedeserrealizadodemaneraanloga
paraotrostiposdecampoypropiedades,aunqueen
algunossusvaloresdepropiedadpuedennotenerefecto.
Visite
practico.org
paramsinformacin
41
Documentacinoficial.
3.2.2.Accionesycomandos
Las acciones dentro de un formulario hacen referencia a las tareas que podemos realizar con la informacin
en l ingresada, comandos que el diseador establece para ir a otras partes del sistema o ejecutaracciones
encalientepormediodeJavaScript.
Bsicamente las acciones de los formularios son agregadas a stos como botones en una barra de tareas
ubicada en la parte inferior, como se visualiza en la imagen de ejemplo con botones de Guardar, Cancelar y
Eliminar(sinlimitarseastos).
El objetivo delasaccionesycomandosesofreceraldiseadordelaaplicacinunamanerarpidadeejecutar
tareas sobre los registros o formularios en pantalla. El diseador selecciona la accin y Prctico determina
qudebehacerdemaneraautomtica.
An as el diseador tambin podr procesar todo mediante rutinas propias cuando as lorequiera,haciendo
elllamadoalasmismasmedianteaccionespersonalizadas.
Agregandounabotonesconaccionesycomandosaunformulario
Dentrodelasopcionesprincipalesparalaadicindeaccionesocomandosseencuentran:
Visite
practico.org
paramsinformacin
42
Documentacinoficial.
Importante...
Ttulooetiqueta:Sereltextoamostrarsobreelbotn
Estilo:IndicaelCSSutilizadoparadibujarelbotn
Tipo de accin: Qu debe ejecutarseal hacerclicsobreelbotn?
Ver en el apartado siguiente para detalles sobre los tipos de
acciones.
Comando de usuario: indica qu ejecutar cuando se trata de algo
personalizado
Peso: En qu orden deber aparecer el botn cuando se
encuentra al lado de otros? A menor peso el botn ser ubicado
msalaizquierda.
Visible:Determinasielbotnestarvisibleonoenelformulario.
Ttulo de retorno y texto de retorno: Mensajes que sern
presentados sobre el escritorio al usuariocuandoPrcticorealicela
operacinprogramada.
Texto de confirmacin: Textoqueapareceren ventanaemergente
confirmando al usuario que ha presionado el botn y que ser
ejecutadalaoperacin.
Mediante
comandos
personalizados podr ejecutar
desde scripts de JavaScript hasta
funcionespreescritasenPHP.
Detallesobrelostiposdeaccionesdisponibles
BsicamentedentrodelostiposdeaccionesquesepuedenejecutarenPrcticoseencuentran:
Guardar datos
: Mediante este botn Prctico analizar de manera automtica la tabla vinculada al
formulario, los campos existentes en el diseo del mismo y generar los queries y validaciones
necesariosparaquesehagaunainsercindelregistroexitosaenlatabla.
Actualizar datos
: Prctico evala los campos diligenciados en el formulario y actualiza el registro
basadoensunmerodeIDnico.Aplicacuandosetieneunformularioconunregistroenpantalla.
Eliminardatos
:Prcticoeliminadelatablaelregistrodesplegadoactualmenteenelformulario.
Regresar al escritorio
: Se cancela cualquier operacin, se cierra la ventana de formulario y se
regresa al escritorio de Prctico. Util para aquellos botones de cancelar un ingreso de datos o
cualquier otra operacin. Cuando no se agregan botones de regresar los usuariosslopodrnvolver
almenoescritoriohaciendoclicsobreeliconoenlapartesuperiorizquierda.
Cargar un objeto
: Mediante el cuadro de comando de usuario se puede especificar una cadena de
apertura de objetos, similar a la utilizada por las opciones de men, para llevar al usuario a otra
ventanaotareadesuaplicacin.
Limpiardatos
:EnesenciahaceunResetdelformularioHTMLlimpiandotodoslosdatosingresados.
Visite
practico.org
paramsinformacin
43
Documentacinoficial.
Comandos en JavaScript
: Medianteloscualessepodrhacercambiosentiempodeejecucinsobre
controles de datos, llamar funciones creadas dentro del formulario o ejecutar cualquier otra tarea en
lenguajeJavaScript.
3.2.3.Formularioscombinados
Estaseccinseencuentraenconstruccin.Paraverunconceptobsicorelacionadoaestafuncionalidadtal
vezleintereserevisarlaseccin3.3.3.deInformescombinados,loscualesenesenciaresumenlas
posibilidadesdeestosformularios.
3.2.4.Formularioscomoinformes
Una vez que tiene formularios, ya sea para ingreso de datos o simplemente como presentacin de informes
combinados, se podr hacer uso del botn de impresin ubicado en la parte superior del formulario, en su
barradettulo.
El botn de impresin tomar todos los controles en el formulario y los llevar a una pgina limpia para ser
impresa, de manera que al disear un formulario de manera implcita estar diseando tambin un informe
derivadoparaimprimirsusdatostalycomosevenenenlapgina.
Tambin puedehacerusodelafuncinImprimirMarco(seccion_impresion)medianteuncomandoJavaScript
encasodenecesitarestafuncionalidaddesdeunpuntodiferentealabarradettulo.
3.2.5.Scriptspersonalizablesentiempodeejecucin(JavaScript)
Para aquellos ms experimentados, Prctico permite agregar a cada formulario acciones o funciones en
lenguajeJavaScript.
Visite
practico.org
paramsinformacin
44
Documentacinoficial.
agregaralloperacionesenJavaScriptsegnsunecesidad.
NosernecesarioagregarlasetiquetasdeinicioyfindeJavaScriptpuesPrcticoyaseencargardeeso
posteriormente.
DigamosqueustedcambiasufuncinFrmAutoRundelasiguientemanera:
function
FrmAutoRun()
{
//Aquisusinstrucciones
alert(
"Bienvenidoalmensajedeprueba"
)
}
Entoncestendrunasalidasobresuformulariodeingresodedatossimilaraesta:
Visite
practico.org
paramsinformacin
45
Documentacinoficial.
3.3.Diseandoinformes
3.3.1.Informesdetipotabladedatos
Esta consulta puede relacionar una o varias tablas, tener criterios de agrupacin u ordenamiento, cumplir
determinadas condiciones, etc. En esencia podramosresumiralgeneradordeinformesdePrcticocomoun
asistente que parametriza todos los componentes de una consulta, hasta que logra obtener de manera
estndarunqueryqueserenviadoalmotoryposteriormenteformateadoparaelusuario.
3.3.2.Informesgrficos
Visite
practico.org
paramsinformacin
46
Documentacinoficial.
3.3.3.Informescombinados
As pues, es importante que el diseador tenga claro que debe disear informes como un objeto
independiente y ya despus combinarlos de acuerdo a su necesidad, como se presenta a continuacin, por
ejemplo,parauninformecombinadodetablasygrficos:
En realidad el informe presentado en la imagen de ejemplo es un formulario, al cual se le han insertado los
diferentesinformescreadosdemaneraindependiente.Tresinformestabularesydosinformesgrficos.
3.3.4.Accionesycomandoseninformestabulares
Los informes tabulares pueden ser utilizados a su vez para convertirse en los conocidos informes de tipo
maestrodetalle y que pueden realizar operaciones especficas sobre los registros all desplegados o incluso
abrir otros apartados del sistema como por ejemplo un formulario con detalles del registro, posibilida para
Visite
practico.org
paramsinformacin
47
Documentacinoficial.
editarlo,entreotros.
3.3.5.Mduloscomplementariosdeinformes
3.4.Gestindemensyopcionesdeusuario
3.4.1.Generalidadessobrelosmens
Prctico cuenta con tres posiciones predeterminadas para la publicacin de opciones a los usuarios de la
aplicacin:
Mensuperior,estilohorizontalcontextoeiconos
Mendeescritorio,representadocomoiconossobreelfondodelaaplicacin
Menclasificadodeacuerdonombresdeseccin(comoventanascolapsablesenelmedio)
Visite
practico.org
paramsinformacin
48
Documentacinoficial.
Bsicamentedurantelacreacindeopcionesdemensetienenlassiguientespropiedades:
Visite
practico.org
paramsinformacin
49
Documentacinoficial.
Texto
: Hace referencia al texto que estar visible para el usuario. Ingrese aqu una palabra o frase
que describa la opcin que ser ejecutada porelusuariooelformularioquesercargadoalhacerclic
sobrelaopcin.
Peso
: El orden del elemento sobre otros. A menor peso el elemento flotar ms arriba o ms a la
izquierdacuandoseencuentreconotrosdentrodelamismaseccinomen.
Posible arriba
: Indica si la opcin podr ser visualizada en la parte superior (men horizontal).
Generalmenteestoseutilizaenopcionesimportantesqueelusuariosiempredebeteneralamano.
Posible escritorio
: Indica a Prctico que la opcin deber ser diagramada como un icono sobre el
escritorio de la aplicacin diseada. Normalmente tener opcionessobreelescritoriodaunavistams
limpiadesuaplicacinyserecomiendancuandoseanpocas.
Posible en el centro
:Determinasi elelementoestardisponibledentro deunaventanacolapsableen
la parte central de la aplicacin. Las ventanas son generadas automticamente de acuerdo a las
opcionesyseccionesdefinidasparacadamendelusuarioqueseencuentrelogueado.
Seccin
: Juega un papel fundamental para agrupar diferentes opciones de men en ventanas
colapsables que se despliegan en la parte central del aplicativo. El sistema en cada carga de men
buscar las opciones disponibles para el usuario, luego revisar a qu secciones pertenecen y por
ltimogenerarlasventanasparaqueelusuarioveaagrupadassusopciones.
Puedeusaranmsiconos
Nodejederevisarlospaquetes
adicionalesdeiconosparaampliar
lasposibilidadesdeescogenciaen
estaopcin.
Reviseademselapartado
Paquetesdeiconos
paraversu
instalacinyconfiguracin
Imagen
: Permite asignar un icono mediante el cual se identifique la
opcin de men creada. Se puede ingresarmanualmenteelnombrede
la imagen con path relativo a /img o utilizar el enlace de los tres puntos
paradesplegarunaventanadeseleccindeiconos.
URL esttica
: Valor utilizado para generar enlaces de tipo HREF o pequeas funciones JavaScript
paraaquellosquedeseenpersonalizarsusmensolanzarventanasopginasexternasaPrctico.
Accin interna/comando/objeto
: Clasifica el tipo de accin que ser ejecutada por la nueva opcin.
Las dos primeras hacen referencia a acciones que pueden pertenecer al Framework o a funciones
existentes en nuevos mdulos instalados, funciones personalizadas o mdulos desarrollados por
usted. La tercera hace referencia a los objetos creados con Prctico. Deesamanerapodrvincular
formularios, informes y dems elementos mediante opciones de men que posteriormente sern
asignadascomopermisosaunusuariooplantilla.
Visite
practico.org
paramsinformacin
50
Documentacinoficial.
Padre, Columna y Posible hacer clic son opciones en desuso. Sern eliminadas en futuras
versionespuessehaencontradounaformamsprcticaderealizarlatareacorrespondiente.
3.4.2.Comandosespeciales
3.4.3.Tpicosavanzados:Enrutamientodeusuariosacomandosinternos
3.5.Usuariosypermisos
3.5.1.Creacindeusuarios
Visite
practico.org
paramsinformacin
51
Documentacinoficial.
El nivel de acceso est dado por el nmero de estrellas, donde posteriormente se tendr la definicin de
nivelesparalosmenes,informesyformularios.
Deinters...
Losusuariospuedenser
generadosautomticamente
cuandoseactivanotrosmedios
parasuautenticacin.
Veamsenelapartadode
motoresdeautenticacinexternos.
3.5.2.Asignacindepermisos
Elmduloparagestindepermisosseencuentradirectamentevinculadoconelmdulodeusuarios,por
cuantoalgenerarunlistadodeusuariossepuedeespecificarlospermisosonivelesdeaccesoindividuales
haciaMensoInformes.
Cuentaademsconlaposibilidaddeinhabilitarelusuariosineliminarsuscredencialesovisualizartodossus
movimientoscomounhistricodeauditoraquealmacenaPrcticoautomticamente.
Sepermitelacopiadepermisosentreusuarios,conloquesepuedencrearplantillasdeusuariosque
permanezcandeshabilitadosparafacilitarlacreacindeusuariosnuevosenelsistema.
3.5.3.Losusuariosespecialescomoplantilladepermisos
Visite
practico.org
paramsinformacin
52
Documentacinoficial.
Sin embargo, asignar permisos a cada usuario puede ser una tarea dispendiosacuandosetratadecientoso
milesdeusuariosqueingresanlaaplicacinqueustedhadesarrollado.
Para automatizar en parte esta tarea, simplemente cree un usuario plantilla con el nombre que usted desee,
luegovayaasupaneldeconfiguracinparalaautenticacinconelproveedorexternoeindi
4.AmpliandolasposibilidadesdePrctico
4.1.Mdulosadicionales(oficiales)
4.1.1.Sistemademonitoreo
Paralosadministradoresdesistemasesfundamentalcontarconherramientasquelespermitanrealizarun
monitoreonoslodesusaplicacionessinotambindelacargadesusservidores,delasoperacionesen
basesdedatos,usodecanales,equiposdered,entreotros.ParaesoPrcticocuentaconunaopcinde
monitoreoatravsdesupaneldeconfiguracin,enlaquesepuedenconfigurarlossiguientestiposde
elemento:
EtiquetasHTML
:Permitenadicindetextosquepuedenserutilizadoscomoencabezadoso
informacinaclaratoriaacercadelmonitoreopresentadoporpantallaenelmomento.
Mquinas
:Utilizadascomnmenteparamonitorearnosloelestadodecomputadorasoservidores,
sinotambinelestadoderoutersyotrosdispositivosderedquerespondanaunasealdeping.
Tambinpermitemonitorearserviciosindependientesmedianteelusodesocketsparaidentificarpor
ejemplo,siademsdeestararribaunamquina,suservicioX(web,basededatos,correo,etc)se
encuentraactivo.Estetipodemonitorpermiteconfiguraralertassonorasyporcorreoelectrnico
cadavezqueunservicioestacado.
Comandosdeshell
:PermitenejecutarcomandosdeconsolasobreelservidordonderesidePrctico,
enestecasoporejemplo,esutilizadoparadesplegarestadosdetemperaturaentreotros.
Visite
practico.org
paramsinformacin
53
Documentacinoficial.
ConsultasSQL
:Ejecutaqueriessobrelabasededatosyretornaelsetderegistrosparaquesea
visualizadoenelmonitoreo.Elresultadoobtenidocomotablaodatonicodependerdelquery
enviadoylapersonalizacindesupresentacin.
Imgenes
:PermiteaPracticincluirdentrodesuspantallasdemonitoreocualquiertipodeimagen,
existenteenelservidoroinclusoexternayquepuedaampliargrficamentelosresultadosdel
monitoreo.
Embebidos
:Ayudaalainclusindeotrossitiosexternosdentrodelmonitoreo,deestamanera
Prcticopuedetomarpginaswebcompletasdeotrossistemasypresentarlasdentrodeunsolo
sistemademonitoreounificado.
CadaunodeloselementospuedeseragregadoadiferentespginasypesosmediantelascualesPrcticose
encargardevisualizarlosposteriormenteallanzarelsistemademonitoreo.
Unavistadealgunosmonitoresgenerados,perosinlimitarseaellos,puedenserlossiguientesdondese
aprecianmonitoreosdemquinasyequiposdered,imgenes(externas)decargadealgunosservicios,carga
generaldelsistemaysalidasdecomandosSQL,salidasdecomandosdeconsola,estadosdeIOydems
grficasgeneradasporterceraspartes:
Elsistemademonitoreopermiteademsqueseapresentadoapantallacompletasobrenavegadores,loque
ayudaaqueustedproyectesumonitoreoencualquierparteotambienlolleveconsigoenundispositivomvil.
Acontinuacinunabrevedescripcindelaspropiedadesquepuedenserencontradasenlaconfiguracindel
sistemademonitoreo:
Configuracinbsicacomn:
Tipo
:
Visite
practico.org
paramsinformacin
54
Documentacinoficial.
Pgina
:
Peso
:
Nombre
:
Saltosdelnea
:
Milisegundosparalectura
:
Configuracionesespecficasportipodemonitor:
Maquina/IP
:
Puerto
:
Mtodoutilizado
:
Comando
:
AnchoyAlto
:
TamaofuenteSQL
:
Ocultarttulos
:
URLesttica
:
Correoparaalertas
:
Alertasonora
:
4.1.1.SeguimientosporGoogleAnalyticsBeacon
Una vez agregado al archivo de configuracin usted podr revisar en tiempo real y tambin en histricos los
diferentes accesos a su aplicacin por medio del panel de Google Analytics como se aprecia en la siguiente
figura:
Visite
practico.org
paramsinformacin
55
Documentacinoficial.
4.2.Paquetesdeiconos
Visite
practico.org
paramsinformacin
56
Documentacinoficial.
4.3.Plantillasgrficas
4.3.1.PlantillasparaPC
4.3.2.Plantillasparadispositivosmviles,tabletas(touch)
Visite
practico.org
paramsinformacin
57
Documentacinoficial.
5.Tpicosavanzados
5.1.CambiandomimotordeautenticacinaLDAP
5.2.IntegrandolaautenticacinconproveedoresOAuth
5.3.Prcticocomoservidordeautenticacin
5.4.Autenticacinfederada
5.5.Creacindefuncionespersonalizadas
Visite
practico.org
paramsinformacin
58
Documentacinoficial.
5.6.Creacindemdulospropios
5.7.Generandoelementospblicos
LoselementospblicosseconsiderancomocualquierobjetooelementocreadoenPrcticoyquedebeestar
disponibleparacualquiervisitantesinnecesidaddehacerunloginenelsistema.
Puedetratarsedeinformes,formulariosodemscomponentesqueporalgnmotivoeldesarrolladordesee
dejarlosaccesiblesobviandoprocesosdeautenticacin.
ParagenerarelementospblicospuedevalersedeotrasfuncionalidadesexistentesenPrcticocomola
generacindeWebServicesyluegoenlazarestoscomponentesconlosWebServicesgenerados.Lospasos
resumidosseran:
Creacindelelemento,digamosunformulariooinforme.
GeneracindellavesdepasoparaunnuevoWebServiceas:
EnlaruedadentadadeconfiguracinseleccionelaopcinLlavesdewebservices
Diligencielainformacinasociadaalnuevoclienteconsumidor.Silodeseapuedeutilizaruno
existentecuandoaslopermitasudiseo.
Agregueelservicioautorizadoqueluegovincular,porejemplo
MiFormPublico
Medianteel{PCoder}agreguealarchivode
mod/personalizadas_ws.php
(outiliceunodiferentesisu
diseoaslopermite)dondedesarrollelaaccinqueserprocesadaporelconsumodeeseWeb
Serviceagregandocomomnimoelsiguientecdigo:
Ejemplo1:Cargasimpledelobjeto,sinestilosgrficosuotrasfunciones.
if($PCO_WSId=="
MiFormPublico"
)
{
//LlamalasfuncionesdePractico,verdocumentacinparaotrosdetalles
cargar_formulario
(1)//Cargarelformsobreventana
//
cargar_formulario
(1,0)//Cargarelformsinventana
//
cargar_formulario
(1,1,"id","15")//VerformbuscandoensutablaelID=15
}
Otrosusuariospuedennecesitarlainclusindeestilosgrficosdeacuerdoalaplantillautilizadapor
Prctico,ascomoactivarotrotipodescripts.Paraesopuedencomplementarelcdigoanteriordela
siguientemanera:
Ejemplo2:CargadelobjetoenmediodelainclusindeestilosgrficosdePrctico.
if($PCO_WSId=="
MiFormPublico"
)
Visite
practico.org
paramsinformacin
59
Documentacinoficial.
include
("core/marco_arriba_bs.php")
cargar_formulario
(1)
include
("core/marco_abajo.php")
}
GenerelaURLquellamarasuWebService.Deberaestarcompuestaporlossiguienteselementos
comomnimo:
URLasuinstalacindePrctico
Variablesdeactivacindelwebservicesjuntoconlasllavesasociadas
Mtodooservicioquedeseaconsumir
Ejemplo:
http://demo.practico.org/index.php?PCO_WSOn=
1
&PCO_WSKey=
C3KXTVF4TI
&PCO_WSSecret=
TMYALUI6C2
&
PCO_WSId=
MiFormPublico
Pruebeelaccesoasuformulariooelconsumogeneraldelwebserviceenunnavegador
dondeanno
sehayalogueadoenelsistema
,pueslaideaesprecisamentequelafuncionalidadseapblica.
Deberasegurarseademsquecualquierotrafuncinutilizadaduranteelconsumodelwebservicese
encuentredentrodelospermisosdisponibles.Serecomiendahacerusodefuncionesinternascadaquese
requiera,algunascomoguardar_datos_formularioosimilaresdisponiblesenprcticopuedensertilespara
estosmenesteres.
Noolvidequepuedetransportarlallave,secretoyactivadordewebservicesentrecadasolicitudparaquesu
consumidorpermanezcaactivo.
5.8.TrabajandopatronesMVC5 conPrctico
Es importante aclarar que trabajar con el patrn MVC no depende de un framework, es ms una forma de
trabajo propia que decide acoger el desarrollador. De hecho Prctico nohasidoescritomedianteMVCpero
spermitequeaquellosinteresadosendesarrollarconMVCpuedanhacerlo.
Estaseparacinhacequeelcdigoseamsmantenibleyfcildeadecuaranuevasnecesidades.
Grficoresmen:FuncionamientodeunaaplicacinMVC6
Paraampliarelconceptosepuederevisar:
ModeloVistaControlador.
Wikipedia,Laenciclopedialibre.
Enesteenlace
.
Imagendesde
http://miblogtecnico.wordpress.com
5
6
Visite
practico.org
paramsinformacin
60
Documentacinoficial.
En versiones 14.3 y posteriores Prctico cuenta con un mdulo de ejemplo sobre mod/mvcdondesetieneel
cdigo base de ejemplo para trabajar con MVC enPrcticoyalgunasdesusfunciones. Versionesanteriores
dePrcticopodrndescargarloydescomprimirloparaempezaratrabajarconl.
Aunque el mdulo cuenta con cdigo bien documentado, aqu se dan detalles sobre las posibilidades del
mismo para que el desarollador explote de la mejor manera posible las funcionalidades existentes en el
Framework de Prctico y pueda hacer aplicaciones no slo ms rpido, sino tambin compatibles con
cualquierversin,instalacinyconfiguracionesdePrcticoconsoporteinclusoparamltiplesidiomas.
Laestructuradelmdulodeejemploescomosigue:
/mod/mvc/
index.php
<
EnlaceentresumduloyPrctico
LEAME
<
Algunasinstruccionesbsicas
modelo/
<
FuncionespararecuperacindedatosyejecucindeconsultasaBD
vista/
<
Lasvistasmediantelascualespresentarlainformacinsumdulo
controlador/
<
Contieneelcontroladorprincipaldesumdulo
idiomas/
<
Opcional,contienelascadenasendiferentesidiomasparasumodulo
Visite
practico.org
paramsinformacin
61
Documentacinoficial.
Teniendo claro que en los patrones MVC el controlador es quien hace de intermediario entre la vista y el
modelo y responde a eventos (usualmente acciones del usuario) puede que usted quiera utilizar el archivo
index.php de entrada del mdulo como su controlador, no utilizar una carpeta separada para estopasandoa
ser tal vez ms eficiente de esta manera. Recuerde queesteestanslounejemployporesosehacenbien
diferenciadassuspartes...
Explicacindelcontenido:
Archivoindex.php
//ValidasesionactivadePractico
@
session_start
()
if
(!
isset
($Sesion_abierta))
{
echo
'<head><title>Error</title></head><body>Accesonoautorizado!</body>'
die
()
}
//Configuracionesbasicasdesumodulo(siaplican)
$raiz_modulo=
"mod/mvc/"
$ruta_modelos=$raiz_modulo.
"modelo/"
$ruta_vistas=$raiz_modulo.
"vista/"
$ruta_controladores=$raiz_modulo.
"controlador/"
$ruta_idiomas=$raiz_modulo.
"idiomas/"
if
($accion==
"probar_ejemplo_mvc"
)
{
//Llamaralcontroladorinicialdelaaplicacionomodulo
require
($ruta_controladores.
'controlador.php'
)
}
Por ltimo, se encuentra el condicional que ejecuta ciertas acciones de acuerdoa lorequeridoporelusuario.
En este ejemplo, solamente cuando Prctico reciba una accin llamada probar_ejemplo_mvc ejecutar al
controlador.Laaccinpuedeservinculadacomocualquierotraconbotonesomenesensuaplicacin.
Este condicional podra operar perfectamente como si fuera su controlador, en lugar de tener un archivo
separadoconelcontroladorysimplementeubicarelcontenidodeesearchivodentrodelcondicional.
Explicacindelcontenido:Archivo
modelo/modelo.php
function
getAuditoria()
{
//LlamalasfuncionesdeBDdefinidasporPractico
//NohayquedefinirconexionesnivalidarexcepcionespuesPracticolo
Visite
practico.org
paramsinformacin
62
Documentacinoficial.
hace
$resultado=ejecutar_sql(
"SELECTid,usuario_login,accion,fecha,horaFROM
core_auditoriaWHERE1=1"
)
//Definevariable$registrosparaguardarlosresultados
$registros=
array
()
//Recorrelosregistrosagregandolosalarreglo
while
($registro_auditoria=$resultado>
fetch
())
$registros[]=$registro_auditoria
//Retornalavariableconelresultado
return
$registros
}
En el modelo podr crear las diferentes funciones que accesan la informacin, la manipulan o la crean de
acuerdoalosrequerimientosplanteadosparasuaplicacin.
En este caso vemos una funcin que simplemente consulta los registros de auditora y los retorna en una
variable. Primero ejecuta la sentencia SQL correspondiente y luego lleva todos los registros al arreglo que
retornar.
Otrasanotacionesdeintersparalosmodelos:
Para garantizar portabilidad y compatibilidad puede usar otras variables de entorno de Prctico
para que as su mdulo se adecue a otras instalaciones que pueden tener prefijos diferentes o
estructurasdebasesdedatosdiferentes.
Asporejemplo,teniendocomobaseelarchivo
inc/practico/def_basedatos.php
podriausarlavariable
quedescribelalistadecamposdeunatablaparagarantizarsufuncionamientoencualquierversin:
$resultado=ejecutar_sql(
"SELECTid,$ListaCamposSinID_auditoriaFROMcore_auditoriaWHERE
1=1"
)
Tambin podra utilizar la variable que indica los prefijos configurados durante la instalacin y hacer
compatiblesumdulooaplicacincondiferentesconfiguracionesdelasiguientemanera:
$resultado=ejecutar_sql(
"SELECTid,$ListaCamposSinID_auditoriaFROM"
.$TablasCore.
"auditoria
WHERE1=1"
)
Explicacindelcontenido:Archivo
vista/vista.php
<?php
?>
//Abreuncontenedor(Opcional)
abrir_ventana(
'Registrosdeauditoria'
,
'#BDB9B9'
,
''
)
Visite
practico.org
paramsinformacin
63
Documentacinoficial.
<h1>Listadodeaccionesencontradas</h1>
<tableclass="TextosVentana">
<tr>
<td>Id</td>
<td>Usuario</td>
<td>Accion</td>
<td>Fecha</td>
<td>Hora</td>
</tr>
<?php
foreach
($registros
as
$fila):
?>
<tr>
<td>
<?php
echo
$fila[
'id'
]
?>
</td>
<td>
<?php
echo
$fila[
'usuario_login'
]
?>
</td>
<td>
<?php
echo
$fila[
'accion'
]
?>
</td>
<td>
<?php
echo
$fila[
'fecha'
]
?>
</td>
<td>
<?php
echo
$fila[
'hora'
]
?>
</td>
</tr>
<?php
endforeach
?>
</table>
<?php
//Creaunabarradeestado(opcional)
abrir_barra_estado()
echo
'<inputtype="Button"class="BotonesEstadoCuidado"
value="'
.$MULTILANG_Cerrar.
'"onClick="document.core_ver_menu.submit()">'
cerrar_barra_estado()
?>
<?php
//Cierraelcontenedor(Obligatoriosisehaabiertoalguno)
cerrar_ventana()
?>
Este archivo se podra resumir solamente al cdigo HTML que en esencia es el encargado de presentar la
informacin, sin embargo se agregaron otrosejemplosconelusodefuncionespreexistentesenPrcticopara
mejorar mucho ms la presentacin de la vista sin necesidad de programar sus estilos propios y sobre todo
garantizandosucompatibilidadcontodaslasversionesfuturasyplantillasdePrctico.
Luego se crea la tabla con los encabezados de la informacin a mostrar y luego son agregadas las filas con
los registros, que toman sus valores desde la variable procesada previamente por el modelo y entregada al
controlador.
Para finalizar, se usan algunas funciones de Prctico para crear una barra de estado con un botn decerrar
multiidiomaysecierralaventana.
Otrasanotacionesdeintersparalasvistas:
Visite
practico.org
paramsinformacin
64
Documentacinoficial.
Puede hacer uso de todas las funciones existentes, por ejemplo la de creacin de barras de estado o
herramientas como se muestra al final del archivo e incluso hacer uso de las constantes de idioma
predefinidas en Prctico como se muestra en elbotnyelementosyformularios preexistentescomo seveen
sueventoonClick.
ParaconsultarunalistadeconstantesdeidiomadisponiblesyunalistadeestilosCSSpodrrevisarlos
archivos/inc/practico/idiomasy/sking/nomo/
Explicacindelcontenido:Archivo
controlador/controlador.php
//1.Llamaalmodelo,encargadodeabstraerlasoperacionesdeconsultaaBD
require
($ruta_modelos.
'modelo.php'
)
//2.Pasalosdatosgeneradosporunafuncionexistenteenelmodeloaunvariable
independiente
$registros=getAuditoria()
//3.Llamaalavista,encargadadepresentarlosdatosgenericosentregadosdesdeel
modelo
require
($ruta_vistas.
'vista.php'
)
Estas operaciones ejecutadas por el controlador podran ser ejecutadas directamente sobre el archivo
index.phpdelmduloysobrecondicionalesqueindiquenaccionesespecficassolicitadasporelusuario.
Visite
practico.org
paramsinformacin
65
Documentacinoficial.
Visite
practico.org
paramsinformacin
66
Documentacinoficial.
5.9.FuncionesdisponiblesdelFramework
5.9.1.Funcionesgeneralesdebasededatos
ejecutar_sql:
Descripcin: Ejecutaunaconsultasobreelmotordebasededatosyretornaelarregloderegistrosdemaneraasociativa
Prototipo: ejecutar_sql($query,$lista_parametros="")
Parmetros:
query:Consultapreformateadaparaserejecutadaenelmotor
lista_parametros:Listadeparametrosquedebenserpreparadosparaelqueryseparadospordoble
barradecanalizacinopipe||comovaloresfijosocomovariablesPHP
Salida: Retornamensajeenpantallaconladescripcindevueltaporeldriverencasodeerror
Retornaunavariableconelarregloderesultadosencasodeserexitosalaconsulta
=
ejecutar_sql(
"SELECT*FROMtabla"
)
//Retornarlosregistroscorrespondientes
Ejemplosdeuso: $consulta
$registro=$consulta>fetch()
//Tomaelprimerregistroopuedeinsertarloenunciclopararecorrerlostodos
Silaconsultaespreparada(preferiblesporseguridad):
$consulta
=
ejecutar_sql(
"SELECT*FROMtablaWHEREcampo1=?ANDcampo2=?","$a||$b"
)
ejecutar_sql_unaria:
Descripcin: Ejecutaunaconsultaquenormalmentenodevuelveregistros,comoporejemplounINSERT,UPDATEo
DELETE
Prototipo: ejecutar_sql_unaria($query,$lista_parametros="")
Parmetros:
query:Consultapreformateadaparaserejecutadaenelmotor
lista_parametros:Listadeparametrosquedebenserpreparadosparaelqueryseparadospordoble
barradecanalizacinopipe||comovaloresfijosocomovariablesPHP
Salida: RetornaunacadenaquecontieneunadescripcindeerrorPDOencasodeerroryagregaunmensajeen
pantallaconladescripcindevueltaporeldriver
Retornaunacadenavacasilaconsultaesejecutadasinproblemas.
"DELETEFROMtablaWHEREid=1"
)
//Eliminarelregistro
Ejemplosdeuso: ejecutar_sql_unaria(
Silaconsultaespreparada(preferiblesporseguridad):
ejecutar_sql_unaria(
"DELETEFROMtablaWHEREid=?","$idregistro"
)
//Eliminarelregistro
ejecutar_sql_procedimiento:
Descripcin: Llamaaejecucinaunprocedimientoalmacenadodefinidodentrodesubasededatos
Prototipo: ejecutar_sql_procedimiento($procedimiento)
Parmetros:
procedimiento:Nombredelprocedimientoquedeseaejecutar
Salida: RetornaunacadenaquecontieneunadescripcindeerrorPDOencasodeerroryagregaunmensajeen
pantallaconladescripcindevueltaporeldriver
Retornaelresultadodeoperacindefinidoporsuprocedimiento
"limpieza_tablas"
)
Ejemplosdeuso: ejecutar_sql_procedimiento(
Visite
practico.org
paramsinformacin
67
Documentacinoficial.
5.9.2.Funcionesespecficasdebasededatos
existe_valor:
Descripcin: Determinasiunvalorexistedentrodeunatablaycampoespecfico
Prototipo: existe_valor($tabla,$campo,$valor)
Parmetros:
tabla:Nombredelatablaenlaquedeseabuscarelvalor
campo:nombredelcamposobreelculdeseacompararlosvalores
valor:valorbuscado
Salida: Retorna1encasodeencontrarunvalordentrodelatablaycampoespecificadasyquecoincidaconel
parmetrobuscado.
Retorna0cuandonoseencuentraunvalorenlatablaquecoincidaconelbuscado
"clientes","documento","123"
)
//Buscarenlatablaelvalor123yretornar1siexiste
Ejemplosdeuso: existe_valor(
ContarRegistros:
Descripcin: Devuelveelnmeroderegistrosalmacenadosenunatabla
Prototipo: ContarRegistros($tabla)
Parmetros:
tabla:Nombredelatabladondedeseacontarlosregistros
Salida: Valornumricoenteroqueindicacuntosregistrossetienenalmacenados.
"app_clientes"
)
//Cuentalosregistrosenlatablaapp_clientesyretornaelnmero
Ejemplosdeuso: ContarRegistros(
5.9.3.FuncionesgeneralesdisponiblesenPHP
auditar:
Descripcin: Realizaunregistroenlaauditoradelsistemaquepuedaserconsultadoposteriormenteenelpanelde
auditoras.
Prototipo: auditar($accion,$usuario="")
Parmetros:
accion:Descripcindelaaccinaseralmacenadaenlaauditora
usuario:Usuarioanombredelqueseregistralaaccin.Vacoparatomarelloguindeusuario
actual.
Salida: Registrodeauditoriallevadosobrelatabla
"Eliminaregistrodelatablaxxx"
)
Ejemplosdeuso: auditar(
CodigoQR:
Descripcin: PermitegenerarunaimagenenformatoPNGconuncdigoQRparaunacadenadetextodeterminada.
Prototipo: CodigoQR($contenido,$recuperacion_errores="L",$ancho_pixeles=3,$margen_pixeles=1,$ruta_al
macenamiento="tmp/",$archivo="")
Parmetros:
contenido:TextoquedeberserconvertidoaformatodeQR.Unacadenaconcualquiervalor.
recuperacion_errores:LocdigosQRcuentanconlaposibilidaddecorreccindeerroreso
redundancia,utilicelosvalores(L,M,Q,H)paraindicarunniveldelmsbajoalmsalto.
PredeterminadoL
ancho_pixeles:Cuntospixelesdebenserutilizadosporcadacuadroquecomponeelcdigo.Por
defecto3.
margen_pixeles:Cuntoscuadrosdemargenexteriortendrelcdigo.Pordefecto1.
Visite
practico.org
paramsinformacin
68
Documentacinoficial.
ruta_almacenamiento:ElpathsobreelservidordondeseralmacenadalaimgenconelcdigoQR.
Pordefectoseusarel/tmpsielusuarionoespecificauno.
archivo:Nombredelarchivoquecontendrlaimgen.Pordefectoserunaleatorioseguidodela
extensinPNG.
Salida:
ImagengeneradaparaelcdigoQR.Ejemplo:
"holamundo"
)
Ejemplosdeuso: CodigoQR(
CodigoQR(
"holamundo","L",2,1
)
TextoAleatorio:
Descripcin: Devuelveuntextoaleatoriocompuestopornmerosyletrasdeunalongituddeterminada
Prototipo: TextoAleatorio($longitud)
Parmetros:
longitud:Longituddelacadenadevueltaporlafuncin
Salida: Textoaleatorio
10
)
//Retornarunacadenade10caracteres
Ejemplosdeuso: TextoAleatorio(
enviar_correo:
Descripcin: Envauncorreoelectrnicohaciendousodelafuncinmail()dePHP.Prcticoseencargadedarelformato
yagregarencabezadosypiedepginacorrespondientes.
Prototipo: enviar_correo($remitente,$destinatario,$asunto,$cuerpo_mensaje,$destinatario_cc="",$desti
natario_bcc="")
Parmetros:
remitente:direccindecorreoelectrnicodelremitentedelmensaje.
destinatario
asunto
cuerpo_mensaje:textocontodoelmensajeaenviar.PuedecontenercodificacinHTML.
destinatario_cc
destinatario_bcc
Salida: Correoelectrnicoenviadoaldestinatario,destinatario_ccydestinatario_bcc
Retornaverdaderosielcorreofueencolado/aceptadoparaenvioofalsosifuerechazado
"
noreply@misistema.com
","destino@gmail.com","Hola!","Mensajedeprueba"
)
Ejemplosdeuso: enviar_correo(
5.9.4.FuncionesgeneralesdisponiblesenJavaScript
PCO_ObtenerContenidoAjax:
Descripcin: ObtieneURLsysuscontenidosdemaneradinmica
Prototipo: PCO_ObtenerContenidoAjax(PCO_ASINCRONICO,PCO_URL,PCO_PARAMETROS)
Parmetros:
PCO_ASINCRONICO:Indicalaformaenqueserrecuperadoelcontenido.Lorecomendadoes
asincrnico(valor1),sinembargootrospuedequerequieranrecibirlasrespuestasasuspeticiones
demanerasincrnica(valor0).
PCO_URL:Direccinalacualsehacelasolicitud.Slohastasurazonombredearchivo.
PCO_PARAMETROS:Parmetrosadicionales(quenormalmentesevenconcatenadosenunaURL)
yquedebenserenviadosconlapeticin.
Salida: Contenidosobtenidosretornadoscomocadenadecaracteres
Visite
practico.org
paramsinformacin
69
Documentacinoficial.
=PCO_ObtenerContenidoAjax(
0,"index.php","PCO_Accion=valor_campo_tabla&campo=Nombre&t
Ejemplosdeuso: Variable
abla=app_productos&condicion=id%3d"+document.datos.Producto.value+"&Presentar_FullScreen=1"
)
//Obtienedemanerasincrnicaunvalor
PaginaGoogle
=PCO_ObtenerContenidoAjax(
1,"http://www.google.com",""
)
//Obtiene todo el contenido
delapgina
PCOJS_MostrarMensaje:
Descripcin: PermitepresentarunmensajealusuariomedianteunPopUpdeBootstrap.
Prototipo: PCOJS_MostrarMensaje(TituloPopUp,Mensaje)
Parmetros:
TituloPopUp:Elttuloquedeseaponerasumensaje
Mensaje:Eltextoinformativoquedeseapresentaralusuario.SoportaetiquetasHTMLbsicas.
Salida: Dilogomodalbasadoenbootstrapconlapersonalizacinenviadaporelusuario
(
"Error","Ustedhaolvidadodiligenciaruncampoobligatorio"
)
Ejemplosdeuso: PCOJS_MostrarMensaje
PCOJS_MostrarMensaje
(
"Advertencia","Valorfueraderango"
)
PCOJS_MostrarMensajeCargando:
Descripcin: Permitepresentarunmensajedecarga,porcentajeodesarrollodetareasalusuariomedianteunPopUpde
Bootstrap.
Prototipo: PCOJS_MostrarMensajeCargando(TituloPopUp,Mensaje,PermitirCierre,Progreso)
Parmetros:
TituloPopUp:Elttuloquedeseaponerasumensaje
Mensaje:Eltextoinformativoquedeseapresentaralusuario.SoportaetiquetasHTMLbsicas.
PermitirCierre:Permitequeelcuadroseacerradoporelusuario.Valor1permitequeelusuario
cierreelcuadro,valordiferentede1impdealusuariocerrarelcuadro.
Progreso:Indicasidebeserpresentadaonounabarradeprogresoalusuario.Valormayoroiguala
ceromuestralabarraylainicializaenesevalor.Valoresnegativosocultanlabarra.
Salida: Dilogomodalbasadoenbootstrapconlapersonalizacinenviadaporelusuario
Ejemplosdeuso: //Presentarmensajedecargaquepuedesercerradoporelusuarioysinbarradeprogreso
PCOJS_MostrarMensajeCargando(
'Porfavorespere','Descargandocontenidos',1,1
)
//Presentarmensajequenopuedesercerradoporelusuarioysinbarradeprogreso
PCOJS_MostrarMensajeCargando(
'Porfavorespere','Descargandocontenidos',0,1
)
//Presentarmensajequenopuedesercerradoyconbarradeprogresoal10%
PCOJS_MostrarMensajeCargando(
'Porfavorespere','Descargandocontenidos',0,10
)
PCOJS_EstablecerPorcentajeProgreso:
Descripcin: Actualizaelvalordeunabarradeprogresodentrodelmensajedeprogresolanzadoalusuario
Prototipo: PCOJS_EstablecerPorcentajeProgreso(Porcentaje)
Parmetros:
Procentaje:Valorentreceroycien(0100)paraasignaralabarrayactualizarlavisualmente
Salida: Barradeprogresoactualizadaenpantalla
(
0
)
//Inicialabarravaca
Ejemplosdeuso: PCOJS_EstablecerPorcentajeProgreso
PCOJS_EstablecerPorcentajeProgreso
(
55
)
//Asignaelvalor55alabarra
PCOJS_EstablecerPorcentajeProgreso
(
100
)
//Llenacompletamentelabarradeprogreso
PCOJS_OcultarMensajeCargando:
Descripcin: Ocultaelmensajedecargainiciadoporelllamadoalafuncin
PCOJS_MostrarMensajeCargando()
de
maneraquemensajesdeestetipopuedansercerradosdesdeeventosdelaaplicacincuandoalusuariose
leprohibesucierre.
Visite
practico.org
paramsinformacin
70
Documentacinoficial.
Prototipo: PCOJS_OcultarMensajeCargando()
Parmetros:
Salida: Mensajecerradodevolviendoelcontroldelaaplicacinalusuario
()
Ejemplosdeuso: PCOJS_OcultarMensajeCargando
PCO_VentanaPopup:
Descripcin: PermitecargarunaURLcompletaenunaventanaemergente
Estafuncinesunclonmnemotcnicodelafuncinwindow.open()DisponibleenJavaScript.
Prototipo: PCO_VentanaPopup(URL,Titulo,ParametrosVentana)
Parmetros:
URL:DireccinoURLquesercargada.Puedeserestticaoconstruidaconbaseenvariables
JavaScript(vaseejemplos)
Titulo:Elttuloonombrenicodelaventana.Ventanasemergentesconunmismonombresern
cargadas(orecargadas)sobrelamismaventanacuandosonllamadasaltiempoomientrasalguna
deellasseencuentreabierta.Ventanasconttulosdiferentessonabiertasenventanas
independientes.
ParametrosVentana:Determinanlapresentacindelaventana,obedecenalosmismosparmetros
delafuncinoriginalenJavaScriptwindow.open()
Salida: Dilogomodalbasadoenbootstrapconlapersonalizacinenviadaporelusuario
(
'http://www.practico.org','PaginaProyecto','toolbar=yes,location=no,
Ejemplosdeuso: PCO_VentanaPopup
directories=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,fullscreen=no,
width=900,height=600'
)
PCO_VentanaPopup
(
'index.php?PCO_Accion=cargar_objeto&objeto=frm:16:1:ClienteId:'+IdCliente+'
&Presentar_FullScreen=1&Precarga_EstilosBS=1','SubFormulario','toolbar=no,location=no,
directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,fullscreen=no,
width=600,height=400'
)
PCO_AgregarElementoDiv:
Descripcin: AgregademaneradinmicaunelementocualquieraaunmarcoDIVdentrodelapgina
Prototipo:
Parmetros:
Salida:
Ejemplosdeuso:
PCO_AgregarElementoDiv:
Descripcin: AgregademaneradinmicaunelementocualquieraaunmarcoDIVdentrodelapgina
Prototipo:
Parmetros:
Salida:
Ejemplosdeuso:
Visite
practico.org
paramsinformacin
71
Documentacinoficial.
5.9.5.Funcionesdeformatoypresentacin
abrir_ventana:
Descripcin: Abrelosespaciosdetrabajodinmicossobreelcontenedorprincipaldondesedespliegainformacin.
Prototipo: abrir_ventana($titulo,$fondo,$ancho='100%',$barra_herramientas='')
Parmetros:
titulo:Nombredelaventanaavisualizarenlapartesuperior.AceptamodificadoresHTML.
fondo:ColordefondodelaventanaenformatoHexadecimal.Sinoesenviadosecreatransparente.
Sillegaunnombredeimagenesusado.
ancho:Anchodelespaciodetrabajodefinidoenpixelsoporcentajesobreelcontenedorprincipal.
barra_herramientas:cadenaquecontieneladefinicindeherramientasquesernpublicadasenla
barradettulo
Salida: Tablaconformatousadacomoventana
"Adicionderegistros","#FFFFFF"
)
//Creaunaventanadefondoblanco
Ejemplosdeuso: abrir_ventana(
abrir_ventana(
"Adicionderegistros","","400"
)
//Creaunaventanatransparentede400pixeles
abrir_ventana(
"Miventana","","70%"
)
//Creaunaventanaconunanchorelativoalcontenedor
cerrar_ventana:
Descripcin: Cierralosespaciosdetrabajodinmicoscreadosporunaventana.Deusoobligatoriocuandohayacreado
unaventanaparamantenerelordendesusmarcos.
Prototipo: cerrar_ventana()
Parmetros:
Salida: Cierredelatablaconformatousadacomoventana
)
Ejemplosdeuso: cerrar_ventana(
abrir_barra_estado:
Descripcin: Abreunespacioparaubicartextosinformativos,botonesdecomandoocualquierotrocontenido
Prototipo: abrir_barra_estado($alineacion="CENTER")
Parmetros:
alineacion:Indicalaalineacindeloselementosinternos
Salida: Tablaconformatousadacomobarradeestado
)
Ejemplosdeuso: abrir_barra_estado(
cerrar_barra_estado:
Descripcin: Cierralosespaciosdetrabajodinmicoscreadosporunabarradeestado.
Prototipo: cerrar_barra_estado()
Parmetros:
Salida: Cierredelatablaconformatousadacomobarradeestado
)
Ejemplosdeuso: cerrar_barra_estado(
Visite
practico.org
paramsinformacin
72
Documentacinoficial.
5.9.6.Variablesdeentornoyvariablesdeusuario
PrcticoFrameworkpermitelautilizacindevariablesPHPdesesin,definidasporelusuarioyotras
generadasdesdediferentespuntos.Pordefecto,seencuentrandisponibleslassiguientesvariablesen
cualquierpuntodesuaplicacin:
Variablesdesesion:
$PCOSESS_SesionAbierta
$PCOSESS_LoginUsuario
Variablesentiempodeejecucin:
$PCO_FechaOperacion
$PCO_FechaOperacionGuiones
$PCO_HoraOperacion
$PCO_HoraOperacionPuntos
$PCO_DireccionAuditoria
$PCO_NumeroParametros
$PCO_NombresParametros
$PCO_ValoresParametros
Variablessegnelcontexto:
$PCO_Accion
$PCO_CampoBusquedaBD
$PCO_ValorBusquedaBD
$PCO_ErrorTitulo
$PCO_ErrorDescripcion
$PCO_ErrorIcono
$PCO_ErrorEstilo
$Presentar_FullScreen
$Precarga_EstilosBS
Otrasvariablesespeciales:
$_SeparadorCampos_
$MULTILANG_*:Lasvariablesqueinicianconestanotacinsonusadasparaimpresinde
mensajesenmltiplesidiomas.Vaseelapartado"Administracindelidioma"
$IdiomaPredeterminado:
Visite
practico.org
paramsinformacin
73
Documentacinoficial.
5.10.Administracindelidioma
Prctico cuenta con la posibilidad de ser desplegado en mltiples idiomas, inicialmente cuenta con espaol
como su idioma nativo e ingls como una traduccin alternativa. Ambos idiomas se encuentran de manera
predeterminadaentodaslasinstalaciones.
Las etiquetas y dems contenidos dependern del idioma con que sean ingresados en el sistema durante el
procesodediseodeformularios,informes,opcionesdemenydems.
Cmocrearmdulosmultiidioma?
Para establecer el idioma de trabajo Prctico lo nico que hace es incluirelarchivocorrespondientedesdeel
pathinc/practico/idiomas.
Si usted desea construir sus propios archivos de idioma podr ubicarlos dentro de la carpetadelmduloque
est desarrollando y luego hacer su inclusin de acuerdoal valordelavariablequeindicala configuracinde
idioma actual para la herramienta $IdiomaPredeterminado y que contendr un valor de dos letras, por
ejemplo,es,en.Asustedpodrcrearmltiplesarchivosconlosmensajespersonalizados.
5.11.Clonacinrpidadeaplicaciones
5.11.1.Clonacindeformularioseinformes
Laclonacindeelementostipoformularioeinformessepuederealizardemanerasencillaentresescenarios
diferentesmedianteunprocesodeexportacineimportacinposterior:
Clonacin"Enlnea"
Estopermitealdesarrolladordelaaplicacinc
rearunnuevoobjetoconIDindependienteidnticoal
actualperocontodossuselementosinternosvinculadosdemaneraquesepuedamanipularpara
Visite
practico.org
paramsinformacin
74
Documentacinoficial.
generarnuevaspantallas,formulariosoinformesderivados.
Lafuncinoperainmediatamentesobreelsistemaenejecucin,clonandoelobjetoseleccionadoy
presentandoaldesarrolladorelIDdelnuevoelementogeneradoparaqueprocedaasumodificacin
segnsunecesidad.Normalmentealoselementosclonadosdeestamaneraseanteponelapalabra
[COPIA]antesdelttuloparaqueseanfcilmentelocalizados.
XMLconIDactual:
ExportaelobjetoactualenformatoXMLparaquepuedaserimportadosobreotrosistema
conservandosumismoIDdeobjeto.
Estaformadeexportacinestilsideseasobreescribirformulariosoinformespreviosconmejoras
desdeotrossistemas,porejemplo,sisetuvieraunformularioalcualsehanhechomejorasenotro
sistemaoenun
sandbox
,ysedeseapasaraunnuevosistemaoalsistemaenproduccin
sobreescribiendoelformularioactual.
XMLconIDDinmico:
Exporta/ImportaelobjetoenformatoXMLperogenerandoestedemaneradinamicaparaquecuando
seaimportadosegenereunnuevoobjetocadavez,conIDdiferenteporcadavezqueimporteel
archivo.Utilparareplicarelcomportamientodelaopcin"EnLinea"perosobrediferentessistemas.
Pasosparaclonarunformulariooinforme:
Paraclonarunformulariooinformedirjasealaopcindediseocorrespondiente,unavezdesplegadalalista
deelementosidentifiqueaquelqueusteddeseaclonaryhagaclicsobreelbotn"
Crearcopia
".
Unavezseadesplegadalasiguientepantalla,seleccioneeltipodeexportacinquedesearealizarentrelos
tresdisponiblesteniendopresentequesegneltiposeleccionadoserelprocesodeimportacinposterior.
Hagaclicsobreelbotn"
Descargar
"paraobtenerunacopiadelelementoenformatoXML.Esnormalque
estoselementosseanexportadosconalgunoscamposdemaneranolegible,puessedebendejarenuna
notacin(enestecaso
Base647
)quepermitasucorrectaimportacininclusocuandoseantrozosdecdigo,
imgenesodemsobjetosespecialescontenidosenelelemento.
Comosehaaclaradoenlospuntosanteriores,laclonacindeelementos"Enlnea"esunprocesoquese
haceencalientesobreelsistemaencuestinysusresultadossepuedenverdemanerainstantneaenel
navegador,paraelrestodeopcionesdeexportacinustedpuedeprocederaimportarelarchivodela
siguientemanera:
Tengaencuentaque...
Base64.(2015,19demayo).
Wikipedia,Laenciclopedialibre.
Fechadeconsulta:20:45,mayo26,2015desde
http://es.wikipedia.org/wiki/Base64
Visite
practico.org
paramsinformacin
75
Documentacinoficial.
1. Dirjasealaopcincorrespondientealelementoquedeseaimportar
(FormulariosoInformes)
2. Enelformulariodecreacindenuevoselementoshagaclicsobreel
botn"
Importardiseodesdearchivo
".
3. Enlaventanadesplegadaadjunteelarchivopreviamenteexportadoy
hagaclicen"
Cargarelarchivo
".
4. Elsistemapresentarunmensajedeconfirmacindelcargue.Hagaclic
enelbotn"
Continuarconlarevisin
".
5. Reviselainformacinpresentadayconfirmelaimportacindelelemento
medianteelbotn"
Importar
".
6. Reviseelelementoimportado.
Visite
practico.org
paramsinformacin
76
Documentacinoficial.
6.Complementarios
6.1.Arquitecturadelaaplicacin
Este ncleo permite tambin la interaccin con otras aplicaciones mediante el acceso a bases de datos
compartidas y la ejecucindefunciones personalizadasporeldesarrolladorparaextenderlasfuncionalidades
delaherramienta.
Visite
practico.org
paramsinformacin
77
Documentacinoficial.
6.2.Capadedatos
Aunque el desarrollo oficial de la herramienta se hace sobre motores MySQL y MariaDB de manera oficial,
algunos de los drivers actualmente disponibles para PDO facilitan la adaptacin y/o ejecucin delcdigocon
lossiguientesmotoresdebasededatos:
MySQL(3.x/4.x/5.x)
MariaDB(5.x)
SQLite2
SQLite3
FreeTDS/MicrosoftSQLServer:Win32[versin2008]
FreeTDS/MicrosoftSQLServer:Win32&Linux[versin2000]
PostgreSQL
IBM(DB2)
DBLIB/Sybase
MicrosoftAccess(ODBCv3:IBMDB2,unixODBC,Win32ODBC)
ORACLE(OCIOracleCallInterface)
Informix(IBMInformixDynamicServer)
Visite
practico.org
paramsinformacin
78
Documentacinoficial.
Firebird(Firebird/Interbase6)
4D
6.3.Lgicadeprogramacin
Para su correcto funcionamiento, Prctico cuenta con algunas funciones internas que permiten realizar las
validaciones y controles de flujo del programa mientras se trabaja sobre la herramienta, sin embargo, todas
estas funciones internas se encuentran disponibles tambin para ser utilizadas dentrodelaaplicacinmisma
queesdiseadamediantePrcticoamaneradefuncionesdeFramework.
As pues, lo mdulos de Prctico trabajan de manera articulada mediante estas funciones garantizando las
operaciones entre el cliente (navegador web), el motor de Prctico generador de las interfaces de usuario e
informesyelmotordebasesdedatossobreelcualsealmacenalaaplicacinysusdatos.
6.4.Escenariosparadesplieguedeaplicaciones
Prctico se compone de un conjunto de scripts en PHP, archivos HTML, scripts SQL, imgenes y otros
elementos que sirven para la creacin de aplicaciones mediante esta herramienta, y como tal, puede ser
desplegado sobre cualquier servidor web que soporte PHP o bajo diferentes modalidades ofrecidas por
algunos proveedores en la red como PaaS (Palaforma como servicio), VPS (Servidores privados virtuales, o
dedicados),servidorescompartidos,entreotros.
Visite
practico.org
paramsinformacin
79
Documentacinoficial.
Aquellos desarrolladores que deseen tener un escenario de pruebas podrn realizar unasegundainstalacin
de Prctico sobre una base de datos diferente a la de produccin, o sobre la misma base de datos perocon
prefijos de tabla diferentes para poder realizar primero sus diseos antes de ser creados nuevamente en el
entornodeproduccin.
Grficamente, como posibles escenarios para el despliegue de Prctico, y a su vez, el despliegue de las
aplicacionesdesarrolladasenstesetienen:
6.4.1.Servidordewebybasededatosdedicadoaproduccin
Cuenta con un servidor web y de base de datos alojados en la misma mquina8 , sobreelcualsehaceunao
variasinstalacionesdePrcticoconfinesdeproduccinyqueservirlasaplicacionesalosusuariosfinales:
Seentiendecomomquinaenestecontextoaunacomputadorasobrelacualcorredeterminadoservicio,siendoestafsicaovirtual.
Visite
practico.org
paramsinformacin
80
Documentacinoficial.
6.4.2.Servidorwebydebasededatosdedicadoaproduccinypruebas
Contar con al menos una segunda instalacin para pruebas cuando no se cuenta con experiencia en la
herramienta es fundamental para garantizar la continuidad de las operaciones previniendo una posible falla
delserviciopordiseosmalrealizadosypublicadosenelentornodeproduccin.
6.4.3.Servidordewebybasededatosindependientesdedicadosaproduccin
Cuenta con un servidor web y de base de datos en mquinas diferentes, sobre el servidor web se pueden
tener mltiples instalaciones de Prctico y sobre el servidor de bases de datos mltiples bases de datos
asociadasacadainstalacindelaherramientaconfinesdeproduccin:
Visite
practico.org
paramsinformacin
81
Documentacinoficial.
6.4.4.Servidordewebybasededatosindependientesdedicadosaproducciny
pruebas
Este y otros escenarios pueden ser considerados como hbridos de los anteriormente descritos debidoaque
lostiposdeconfiguracindelaplataformasobrelacualresidelaherramientapuedensermltiples.
Elpasodeunaaplicacindepruebasaunentornodeproduccinpuedeserrealizadodedosmaneras:
1. Copiando (total o parcialmente) la base de datosdepruebasysusobjetossobrelabasededatosque
serdedicadaalsistemadeproduccin.
Copia de tablas con el prefijo del ncleo de la herramienta (predeterminado en core) harn
untraspasodeobjetoscomoformularios,informesycredencialesdeusuario.
Copia de las tablas con el prefijo de aplicacin (predeterminado en app) harn un traspaso
delosobjetostipotabladedatosquehansido
definidos por el desarrollador. Aqu se
podrdecidirentrehacer
una copia completa incluyendo los datosohacerunacopialimpia
conslolaestructuradelatabla.
El proceso de copia de estos elementos puede ser ejecutado por el desarrollador mediante
cualquierherramientaquetengadisponibledeacuerdoasumotordebasededatos.
2. Cambiando las variables de configuracin asociadas a los parmetros de conexin con el motor de
base de datos, aunque esto puede implicar la desconexin temporal de un sistema que ya se
encuentra en produccin. Lo ideal es contar con una instalacin de pruebas independiente y replicar
loselementossobrelainstalacindelsistemaenproduccin
En esencia, el despliegue de Prctico se podra comparar con aplicaciones que funcionan de manera similar
como Joomla!, las cuales sedescomprimensobreelservidorwebyseejecutaunasistentedeinstalacinque
generalastablasnecesariasparatrabajarydondecadacontenidoagregadoesservidoinmediatamente.
Visite
practico.org
paramsinformacin
82
Documentacinoficial.
6.4.5.DespliegueenHeroku
Prctico le permite desplegar sus aplicaciones y entornos de produccin de manera rpida de uno a cientos
demilesdeusuariosdemanerarpidautilizandoHeroku9.
En esencia, una vez registrado en Heroku, sin importar si su cuenta es gratuita o de pago, usted podr
sincronizar elrepositoriodePrcticoconsuplataformamedianteelbotndestinadoparaestoenelrepositorio
delproyectoenGitHuboenlapginaweboficial.
ApartirdeallsigalasinstruccionespropiasdeHerokupararealizareldesplieguedelaaplicacin.
6.4.6.Mododedemostracin
Prctico cuenta con un modo especial que le permite generar instalaciones (o convertir las existentes) en
aplicacionesenmododedemostracin,parasusdesarrolladores,clientes,visitantesdelaweb,etc.
Este mdulo es habilitable nicamente por el administrador del servidor o quien tenga acceso a la raz de
instalacin, ya que es controlado por un archivo que solamente puede ser puesto all por quien tenga
permisosdeescritura.
Para cambiar a Prctico a modo de demostracin simplemente deber crear un archivo llamado DEMO (en
mayscula)enlarazdesuinstalacin. Cuando Prcticodetecta queexisteesearchivoinmediatamentepasa
a modo demostracin muchas desusfuncionalidadesdentrodelascualespuedenestar,sinlimitarseastas,
lassiguientes:
Pantallasdeconfiguracindemotor,prefijosymodosdeautenticacin
Cambiodecontraseadelusuario
Actualizacindeperfilesdelusuario
MododeescrituradelPCoder
Mododeescrituraparaexploradoresdearchivosembebidos
Sitiooficial:https://www.heroku.com/
Visite
practico.org
paramsinformacin
83
Documentacinoficial.
En este modo se encuentra el modo de demostracin de Prctico para quienes desean explorar su demo
ubicadoen
http://demo.practico.org
Adicionalmente, Prctico genera una variable de sesin que puede servir a usted paracontrolarsus mdulos
propiosyconocer elestadodel mododemo. Lavariable es
PCO_ModoDemoytomavaloresdeceroounosi
estdesactivadooactivadocorrespondientemente.
Visite
practico.org
paramsinformacin
84
Documentacinoficial.
Glosario
CGI:
(del ingls
Common Gateway Interface)
se conocecomounatecnologa quepermiteauncliente
solicitar datos de un programa que es ejecutado sobre un servidor web. Fue una de las primeras
formas que se tuvieron para la generacindinmicadecontenidos,ya quelosresultadosdeejecucin
de cada programa o guin CGI eran transferidos comorespuestaalservidor web,quienlosentregaba
asuvezalcliente.
CRUD: Acrnimo que hace referencia a las operaciones bsicas de bases de datos como son la
Creacin,Consulta,ActualizacinyEliminacin.Delingls:Create,Read,Update,Delete
CSS:
(del ingls Cascading Style Sheets) consiste en un lenguaje que permite definir la presentacin
de un documento HTML. Permite separar la estructura de un documento de su presentacin, con lo
queelmismodocumentopodratenerasociadosdiferentesformatosdepresentacinenCSS.
GIT:
es un software para el control de versiones pensado para la eficiencia y confiabilidad del
mantenimientodeversionescuandostastienenungrannmerodearchivosensucdigofuente.
GNU:
acrnimo recursivo que significa GNU No es Unix (del ingls
GNU is not Unix
) que fue iniciado
comoproyectoporRichardStallmanparacrearunsistemaoperativocompletamentelibre.
GPL:
(del ingls
General Public License)
es una licencia creada por la Free Sfotware Foundation
orientadaprincipalmenteaprotegerladistribucin,modificacinyusodelsoftware.
LINUX:
es un ncleo libre desistemaoperativobasadoenUnix.Esunodelosprincipalesejemplosde
softwarelibrelicenciadobajolostrminosdelaGNU/GPL2.0
MER:
el Modelo Entidad Relacin es un diagrama paraelmodeladodedatosquepermiterepresentar
entidadesrelevantesdeunsistemadeinformacinascomosusinterrelacionesypropiedades.
Visite
practico.org
paramsinformacin
85
Documentacinoficial.
PDO:
(del ingls
PHP Data Objects)
es una extensin para el lenguaje de programacin PHP que
provee una capa de abstraccin de acceso a datos. Por medio de esta extensin se hace uso de las
mismasfuncionesparahacerconsultasyobtenerdatosdedistintosmanejadoresdebasesdedatos.
PHP:
acrnimo recursivo que significa
PHP Hypertext Preprocessor.
Esun lenguajedeprogramacin
deusogeneralqueseejecutadelladodelservidorwebparalageneracindepginasdinmicas.
SOFTWARE LIBRE
: es la denominacin que se da a un software que respetalalibertaddetodoslos
usuarios que adquirieron el producto de manera que una vez obtenido puede ser usado, copiado,
estudiado,modificadoyredistribuidolibrementeparacualquierfinalidad.
SQL:
(del ingls
Structured Query Language)
es un lenguaje declarativo de acceso a bases de datos
relacionalesquepermiteespecificardiversasoperacionessobreellas.
UML:
(del ingls
Unified Modeling Language)
es el lenguaje de modelado de sistemas de software
ms conocido y utilizado en la actualidad. De manera grfica visualiza, especifica, construye y
documentaunsistema.
Visite
practico.org
paramsinformacin
86
Documentacinoficial.
Referencias
[1]ARROYAVEGUTIRREZ,JohnFreddy.PRCTICO:GeneradordeAplicacionesWeb.Tesisde
MaestraLaureada.Bucaramanga.UniversidadAutnomadeBucaramangaUniversitatObertade
Catalunya.FacultaddeIngenieradeSistemas.2013.134p.
[2]ARROYAVEGUTIRREZ,JohnFreddy.ManualparaAplicacindeFormatoaDocumentosen
Lnea.ComunidadPrctico.2013.5p
Visite
practico.org
paramsinformacin
87