Está en la página 1de 7

Esquema tcnico

Explicacin general
Este documento ofrece una explicacin general de la programacin interna de la plataforma Goteo. Esta programacin est ntegramente desarrollada en php sobre una base de datos MySql. Se trata de un framewor M!"# un core formado por clases de ba$o ni%el y un con$unto de libreras de uso com&n. 'n dispatcher se encarga de gestionar las peticiones http.

Gestin de peticiones http


Gracias al mdulo mod(rewrite de )pache# todas las peticiones llegan al *ispatcher# el archi%o index.php que se encuentra en la ra+. El *ispatcher se encarga de tratar la peticin recibida# %erificar si el usuario tiene permisos sobre el recurso al que intenta acceder# cargar el controlador que gestiona el recurso pasndole los parmetros recibidos en la peticin y tratar ,si es el casoredirecciones# excepciones y errores. .ambi/n reali+a la carga de las configuraciones y de los m/todos comunes# el inicio de sesin# y se definen el mane$ador de errores y la autocarga de clases. Nota sobre la autocarga de clases: Al utilizar una clase en el cdigo, la autocarga la buscar en la ubicacin definida por su namespace y si no la encuentra la buscar en la librera.

Configuraciones
.odas las configuraciones de la plataforma se encuentran en el archi%o config.php que se encuentra en la ra+ y se cargan en el *ispatcher. Entre las configuraciones se encuentran los datos de conexin a la base de datos y otros %alores por defecto ,0dioma# 1odo y 'rl de la plataforma-.

Funcionamiento del Core


2a plataforma est desarrollada medianto 344 y se basa en 1amespaces para la $erarqua de clases. .odos los ob$etos propios del sistema estn en el namespace 5Goteo y los ob$etos gen/ricos o de terceros en el namespace 5 ,ra+-. ) continuacin se explican bre%emente las clases del directorio 6core que pertenecen al namespace 5Goteo5"ore

ACL
Esta clase gestiona# mediante la tabla acl# la )ccess "ontrol 2ist que especifca que tipos de usuarios tienen acceso a cada recurso de la plataforma. Estos recursos estn

representados por 'rl7s. 3ara definir los tipos de usuario se utili+a el concepto node para los usuarios administradores de nodos y role para el rol del usuario ,un usuario puede tener %arios roles-.

Common
Esta clase contiene algunos m/todos comunes. Estos m/todos son excepcionales y pertenecen al namespace 5 ,ra+-

Controller
Esta es la clase abstracta para todos los controladores ,las clases que se encuentran en el directorio 6controller-.

DB
Esta clase se encarga de definir la capa de abstraccin de la 8ase de datos como una instancia de la clase 3*4 ,3hp *ata 4b$ect-.

Error
Esta clase define los diferentes errores http.

Exception
Esta clase solamente extiende la clase gen/rica Exception al namespace de la plataforma.

Model
Esta es la clase abstracta para todos los modelos ,las clases que se encuentran en el directorio 6model-. *efine los m/todos gen/ricos para el mane$o de entidades de datos.

edirection
Esta clase define el mane$o de redirecciones en la plataforma.

!ie"
Es la clase base para las %istas ,archi%os .html.php que se encuentran en el directorio 6%iew-. *efine los m/todos gen/ricos para su reutili+acin dentro de un mismo script. 0mplementa el resto de clases que no aparecen en esta explicacin.

Estructura de archi#os
2a estructura de directorios de primer ni%el9 6controller Elementos controladores# gestionan los datos y lan+an las %istas

6core "lases de ba$o ni%el# son el n&cleo del sistema explicado anteriormente. 6data 6db 6library )lmacenamiento de archi%os de imagen y cache de imgenes Scripts para creacin y actuali+acin de la base de datos 2ibrera de clases de uso com&n

6logs sistemas 6model base de datos 6%iew

*irectorio donde se guardan los logs de comunicaciones con otros

"lases de modelos de datos# representan entidades de la

!istas# sir%en el contenido final al usuario.

) continuacin se detalla el contenido de cada directorio.

Controller
Estos archi%os son los que# cargados por el *ispatcher# se encargan de mane$ar cada uno de los recursos ,url7s- de la plataforma. 2as clases en este directorio pertenecen al namespace 5Goteo5"ontroller. "ada archi%o contiene una clase con los m/todos necesarios para gestionar las operaciones de la pgina. Esta es una lista nominal de archi%os y descripcin del recurso ,pginas- que gestionan. : : : : : : : : : : : : )bout9 )dmin9 plataforma. 8log9 "ommunity9 "ontact9 2a seccin ;Sobre goteo<. El panel administrador de gestin de datos de la El blog Goteo# entradas y comentarios. 2a seccin ;"omunidad<. El formulario de contacto y el en%o del mensa$e.

"ron9 El proceso que controla la e%olucin de proyectos y transacciones. *ashboard9 *isco%er9 =aq9 Glossary9 0mage9 El panel del usuario. 2a seccin ;descubre proyectos< 2a seccin de ;3reguntas frecuentes< 2a seccin ;Glosario de t/rminos<. 2a %isuali+acin de los recursos de imgenes

0mpersonate9 "ontrolador especial con permisos exclusi%os para super administrador que lle%a a cabo el cambio de usuario en sesin para reali+ar %erificaciones con cuentas de otros usuarios sin necesidad de conocer su contrase>a. 0ndex9 0n%est9 2egal9 uso< 2a portada 2as operaciones con 3aypal y .3! para procesar los aportes "ontrolador de las pginas ;t/rminos legales< y ;condiciones de

: : :

: : : 1ews9

Message9 2as operaciones de mensa$es a un proyecto# entre usuarios y comentarios a entradas de blogs. 2a seccin ;1oticias<

3ay3al9 3gina exclusi%a para el usuario paypal con enlaces y operaciones para la re%isin de la implementacin y comportamiento de la aplicacin. ,solo fase beta3ress9 3re%iew9 3ro$ect9 @e%iew9 @ss9 Ser%ice9 .p%9 .ranslate9 'ser9 Aidget9 As9 2a seccin ;?it de prensa< Base para pre%isuali+acin de contenidos %arios Edicin# %isuali+acin de ,y operaciones sobre- proyectos El panel para usuarios re%isores de proyectos Sindicali+acin del blog Goteo 2a seccin ;Ser%icios< que ofrece Goteo .ratamiento de comunicacin online desde la pasarela de pago. El panel para usuarios traductores Edicin# %isuali+acin de ,y operaciones sobre- usuarios Aidget de proyecto embed en otras webs @ecursos de webser%ices para a$ax.

: : : : : : : : : : :

Core
!er la seccin anterior de ;=uncionamiento del "ore<.

Li$rar%
2as clases de la librera ofrecen m/todos de utilidades %arias. 2as clases en este directorio pertenecen al namespace 5Goteo52ibrary. Esta es una lista nominal de archi%os y descripcin de su utilidad. : : : : : : : 63aypal9 63agination9 0mplementacin de Strategy *esign 3attern para paginacin de resultados. S*? 3aypal para transacciones

63ear9 !arias libreras 3E)@ para tratamiento de imgenes y conexiones S4)3 63hpmailer9 6@ss9 6Superform9 6.p%9 2ibrera general para procesar emails "lase para construir rss =ormulario con tooltips y a$ax para la edicin de proyectos. "omunicaciones webser%ice con el banco

: : : : : : : : : : : : : : : :

"hec 9 "ontent9 2ang9 2listing9 2ocation9 Mail9 Message9 3age9

M/todos para %alidacin de datos ,nif# email# url# tel/fono# etcBGestin de contenidos multi:idioma para traduccin 2ibrera de control de multi:idioma# utili+a la tabla lang. "lase para reestructurar listas en grupos de elementos Base para relacionar la locali+acin de usuarios y proyectos M/todos para la preparacin de emails y en%io con 3hpMailer 2ibrera para mensa$es de comunicacin sistema:usuario Gestin de contenidos de las pginas institucionales 3aypal9 4peraciones con 3aypal

@ss9 Search9 Superform9 .emplate9

M/todo para generar el rss con los contenidos del blog "lase para reali+ar b&squedas de proyectos "lase para utili+ar la librera 6Superform como una %ista "lase para gestin de plantillas de emails automticos .ext9 Gestin de textos dinmicos definidos en la tabla purpose y gestionados en la tabla text para cada idioma.

.p%9 Aorth9

4peraciones con la pasarela de pago 1i%eles de meritocracia definidos en la tabla worthcracy.

Logs
En este directorio se guardan los logs de las comunicaciones con 3aypal y Sermepa. "ada da se graba un archi%o de log nue%o para que sea ms fcil de locali+ar incidencias.

Model
Son las clases que gestionan las entidades de informacin que se almacenan en la 8ase de datos. 2as clases en este directorio pertenecen al namespace 5Goteo5Model. Esta es una lista nominal de archi%os y descripcin de la entidad de datos que representa. : : : 6blog9 tagsSub-modelos del modelo de blogs ,entradas# comentarios y

6pro$ect9 Sub-modelos del modelo de proyecto ,categorias# costes# media# retornos# agenda# colaboraciones6user9 websSub-modelos del modelo de usuarios ,intereses# re%isiones#

: : : : : : : : : : : : : : : : : : : : : : :

8anner9 8log9 "ampaign9 "ategory9 usuarios "riteria9 =aq9 Glossary9 0con9 0mage9 0nfo9 0nterest9 0n%est9 2icense9 2ocation9 Message9 1ews9 1ode9 3ost9 pie 3ro$ect9 3romote9 @e%iew9 Sponsor9 'ser9

Base para banners en la cabecera de la portada 8log ,de nodo o proyecto-# modelo principal Base para campa>as "ategoras de la plataforma# para proyectos e intereses de "riterios de Goteo para la e%aluacin de proyectos 3reguntas frecuentes y sus secciones Glosario de t/rminos utili+ados en la plataforma .ipos de retorno6recompensa y gestin de licencias asociadas 3ara gestionar todos los elementos de imagen de la plataforma. Entradas ,tipo 8log63ost- para la informacin sobre la plataforma 0ntereses de usuarios comparten entidad con las categoras. )portes6transacciones 3aypal# Sermepa y efecti%o. 2icencias de retornos. Base para Geolocali+acin de usuarios y proyectos Mensa$es en proyectos Micronoticias de la cabecera Base para nodos 3ara ordenar las entradas de blog que aparecen en portada o al 3royectos# modelo principal 3royectos destacados en portada @e%isiones de proyectos "olaboradores que aparecen en el footer 'suarios# modelo principal

!ie"
En este directorio se encuentran todas las %istas utili+adas por los controladores. Es importante destacar que las %istas se pueden llamar desde dentro de otras %istas.

) continuacin se explican los archi%os especiales# el resto ,debido a su extensin y autoexplicacin- no se detallan en este documento. : : : : : : : : 6css9 Este directorio contiene las ho$as de estilo y elementos grficos que se utili+an en la %isuali+acin de las pginas de la plataforma. 6$s9 Este directorio contiene los plugins Ca%ascript que se utili+an en la plataforma. 6error9 En este directorio se encuentran las sub:%istas para la pgina de error http. 3rologue9 Epilogue9 Deader9 =ooter9 0ndex9 Es el cdigo html gen/rico para todas las pginas. Es el cierre gen/rico de todas las pginas. Es la %ista para la cabecera que se repite en todas las pginas. Es el pie que se repite en todas las pginas. Es la %ista de la portada.

Base de datos
2as tablas en la base de datos comparten nombre con el modelo que las representa. 2as tablas de relacin contienen una barra ba$a , ( - entre las entidades que se relacionan. El contenido de la base de datos est codificado en '10"4*E ,utfE-. 2as tablas son de tipo 0nno*8 ,transacional- y tienen cote$amiento utfE(general(ci. Es importante destacar que la tabla image contiene los nombres de archi%os de imgenes introducidos por los usuarios y se almacenan en el directorio 6data. )l solicitar ,por url- un recurso de imagen# se genera un archi%o cach/ seg&n las dimensiones y el cropeado que se ha solicitado para que las siguientes solicitudes dispongan de el recurso inmediatamente.

También podría gustarte