SlideShare una empresa de Scribd logo
1 de 22
Personalizar una Red Social en Elgg  sin perder la paciencia Diego Gallardo - Elgg Developer @demege
Agenda 1. Introducción 2. Conceptos 3. Puesta en practica 4. Preguntas
Introducción - Elgg esta basado en MVC (modelo-vista-controlador) - Esta charla va a hablar de la capa de vista - Aprenderemos como modificar la parte visual de un sitio en Elgg - Cuando hablamos de personalización en Elgg hablamos de vistas. - Aprenderemos que es una vista, que es extender una vista, tipos de vistas ...
Que es una vista En Elgg todo se puede representar con una vista. Se puede representar elementos html, css, js. En Elgg se representan con vistas, un header, footer, input, textarea, pulldown, etc Es la salida de datos de la informacion que ve el usuario. La ventaja que todo se maneje con el mismo sitema:      - Esta centralizado.      - Se puede extender.      - Se pueda cachear.
Como utilizar una vista Como llamar a una vista:      elgg_view( 'page_elements/header_contents' ) Se puede pasar parametros una vista mediante un arreglo.      elgg_view( 'page_elements/header_contents' ,  array ( 'var1'  => $val1,  'var2'  => $val2)) Se obtienen estos parametros en la vista a traves de $vars.      $vars[ 'var1' ], $vars[ 'var2' ] La vista recibe en $vars parametros por defecto:      $vars[ 'url' ] : Url del sitio.      $vars[ 'user' ] : El usuario que esta logeado actualmente.      $vars[ 'config' ] : el objeto configuracion de elgg.  
Estructura de vistas Estructura de directorio de vistas por defecto de elgg: elgg      views          default              canvas                  layouts                      two_column_left_sidebar.php              page_elements                  header_contents.php                  footer.php
Trabajar con vistas Hay 3 formas de trabajar con vistas:      - Sobreescribiendo      - Extendiendo      - Creando nuevas
Trabajar con vistas: Sobreescribiendo Para sobrescribir una vista, solo basta con declarar la vista en la misma posición a nivel estructura, respecto a la vista a sobreescribir. Ubicacion vista original (header) elgg      views          default              page_elements                  header_contents.php Ubicacion vista sobreescrita (header) mytheme      views          default              page_elements                  header_contents.php
Trabajar con vistas: Extendiendo Se pueden extiender las vistas para agregar contenido antes o despues de las mismas. Ej: Extendemos el header para agregar un menu.      elgg_extend_view( 'page_elements/header_contents' ,  'page_elements/menu' ); El tercer parametro de la funcion elgg_extend_view indica la prioridad por defecto 500. Ej: Extendemos el header para agregar un menu antes.  Al darle menos prioridad que por defecto, se agrega antes.      elgg_extend_view( 'page_elements/header_contents ',  'page_elements/menu' , 499); TIP : En la vista que extendemos se reciben en $vars los parametros de la vista extendida.
Layouts En elgg hay diferentes layouts para mostrar la informacion. - 2 columnas. (sidebar izq, sidebar derecha) - 1 columna - sidebar boxes (riverdashboard) - widgets (profile, dashboard) Como llamar a un layout: elgg_view_layout('two_column_left_sidebar', $area1, $area2, $area3); Las diferentes variables que se pasan al layout, se reciben como $vars['area1'], $vars['area2'] ... $vars['areaN'] 
Tipos de vistas (view type) Elgg provee diferentes formas de mostrar finalmente la informacion: rss, json, xml, php, default (estandard)  Cambiando el tipo de vistas, se puede mostrar la misma informacion de diferente manera. Se podria especificar un nuevo tipo "mobile" y modificar las vistas sin tener que modificar la informacion misma. Utilizacion: A traves de la url http://local/elggbase/pg/blog/?view=rss Definiendo el tipo de vista: elgg_set_viewtype('mobile');
Tipos de vistas (view type) Vistas por defecto: elgg      views          default/              canvas/              page_elements/          json          php          rss/              canvas/              page_elements/                      xml
Nos arremangamos y arrancamos!
Puesta en Practica Desarrollo de un theme base - Creamos un directorio dentro de mod &quot;mytheme&quot; - Creamos el archivo manifest.xml - Creamos un archivo mytheme/start.php con: <?php function  mytheme_init() {      elgg_extend_view( 'css' , 'mytheme/css' ); //Extendemos la vista de css }     register_elgg_event_handler( 'system' ,  'init' ,  'mytheme_init' ); ?> - Creamos la estructura de vista default. views      default          mytheme
Puesta en Practica Archivo CSS: - En Elgg el css se encuentra en 1 solo archivo en:      elgg/views/default/css.php - Podemos sobreescribirlo declarandolo en nuestro plugin:      elgg/mod/mytheme/views/default/css.php - Podemos extenderlo con:      elgg_extend_view( 'css' , 'mytheme/css' );
Puesta en Practica Importante : Los plugins en Elgg tienen jerarquias de vistas, cualquier archivo que se declare en la misma posición en la estructura, reemplazara a otro ya definido. Ej: Agregar contenido al header. El archivo: mod/mytheme/views/default/page_elements/header_contents.php Reemplazara: elgg/views/default/page_elements/header_contents.php - Podemos copiar el original y modificarlo o crear uno nuevo.
Puesta en Practica Tarea: Extender la vista de miembros recientes con un banner.
Puesta en Practica <?php function  mytheme_init() { elgg_extend_view( 'riverdashboard/newestmembers' ,  'page_elements/left_banner' ); } ?>
Puesta en Practica Funciones utiles: - get_loggedin_user(): Obtenemos el usuario logeado. - isloggedin(): Devuelve true o false si hay un usuario logeado. - isadminloggedin(): Devuelve true si hay un admin logeado. - get_context(): Devuelve el contexto. - get_input('my_var', ''): Obtiene variables input de GET/POST - set_input('my_var', 'diego'): Seteamos una variable, para obtener por get_input.
Puesta en Practica Recomendaciones : - Nunca modificar las vistas en /elgg/views/*, en caso de querer modificar algo, hacerlo dentro de un plugin. - Tener en cuenta el orden de los plugins en la lista de plugins al sobreescribir vistas.  Ej: si sobreescribimos una vista de blog y este se encuentra debajo de nuestro plugin en la lista de plugins, no se veran los cambios. - En la configuracion del sitio, quitar cache de vistas y archivos para desarrollo. - En caso de no ver los cambios http://mysite.com/upgrade.php
¡Dudas o preguntas ?
GRACIAS http://docs.elgg.org/wiki/Main_Page http://community.elgg.org/ http://community.elgg.org/pg/profile/demege Diego Gallardo - @demege

Más contenido relacionado

La actualidad más candente

La actualidad más candente (8)

Instructivo permalink-seo-wordpress
Instructivo permalink-seo-wordpressInstructivo permalink-seo-wordpress
Instructivo permalink-seo-wordpress
 
Juan seba..
Juan seba..Juan seba..
Juan seba..
 
Sesión 5 Curso Avanzado SPIPEDU
Sesión 5 Curso Avanzado SPIPEDUSesión 5 Curso Avanzado SPIPEDU
Sesión 5 Curso Avanzado SPIPEDU
 
Código mantenible, en Wordpress.
Código mantenible, en Wordpress.Código mantenible, en Wordpress.
Código mantenible, en Wordpress.
 
Imágenes en HTML
Imágenes en HTMLImágenes en HTML
Imágenes en HTML
 
Vistas
VistasVistas
Vistas
 
Vistas
VistasVistas
Vistas
 
Elementos básicos y estructura de una página web
Elementos básicos y estructura de una página webElementos básicos y estructura de una página web
Elementos básicos y estructura de una página web
 

Similar a Elggcampba 2010 - Customize a Social Network in Elgg without losing patience

Grails: Framework para el desarrollo de aplicaciones Web No 3
Grails: Framework para el desarrollo de aplicaciones Web No 3Grails: Framework para el desarrollo de aplicaciones Web No 3
Grails: Framework para el desarrollo de aplicaciones Web No 3Esteban Saavedra
 
Guia bootstrap
Guia bootstrapGuia bootstrap
Guia bootstrapljds
 
Desarrollo de Themes de WordPress desde cero. @DarioBF en @WPBilbao
Desarrollo de Themes de WordPress desde cero. @DarioBF en @WPBilbaoDesarrollo de Themes de WordPress desde cero. @DarioBF en @WPBilbao
Desarrollo de Themes de WordPress desde cero. @DarioBF en @WPBilbaoDarío BF
 
ASP.NET MVC - layouts y vistas parciales
ASP.NET MVC - layouts y vistas parcialesASP.NET MVC - layouts y vistas parciales
ASP.NET MVC - layouts y vistas parcialesDanae Aguilar Guzmán
 
Desarrollo Aplicaciones Zend Framework
Desarrollo Aplicaciones Zend FrameworkDesarrollo Aplicaciones Zend Framework
Desarrollo Aplicaciones Zend Frameworkricsoc
 
Jsf Java Server Faces
Jsf   Java Server FacesJsf   Java Server Faces
Jsf Java Server Facescok12v
 
Webinar - SEO Avanzado
Webinar - SEO AvanzadoWebinar - SEO Avanzado
Webinar - SEO AvanzadoArsys
 
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...JaenFrankcezco
 
Tutorial3 Desymfony - La Vista. Twig
Tutorial3 Desymfony - La Vista. TwigTutorial3 Desymfony - La Vista. Twig
Tutorial3 Desymfony - La Vista. TwigMarcos Labad
 
Extender Jquery para crear componentes web personalizados
Extender Jquery  para crear componentes web personalizadosExtender Jquery  para crear componentes web personalizados
Extender Jquery para crear componentes web personalizadosHéctor Curbelo Barrios
 
Joomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensionesJoomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensionesdeivit86
 
88 Php. Imagenes En Tablas
88 Php. Imagenes En Tablas88 Php. Imagenes En Tablas
88 Php. Imagenes En TablasJosé M. Padilla
 
Crea tu plantilla de blogger
Crea tu plantilla de bloggerCrea tu plantilla de blogger
Crea tu plantilla de bloggerAntonio Gamez
 
Crear Plugin de WordPress desde Cero
Crear Plugin de WordPress desde CeroCrear Plugin de WordPress desde Cero
Crear Plugin de WordPress desde CeroEduardo Turiño
 

Similar a Elggcampba 2010 - Customize a Social Network in Elgg without losing patience (20)

Vistiendo a WordPress
Vistiendo a WordPressVistiendo a WordPress
Vistiendo a WordPress
 
Grails: Framework para el desarrollo de aplicaciones Web No 3
Grails: Framework para el desarrollo de aplicaciones Web No 3Grails: Framework para el desarrollo de aplicaciones Web No 3
Grails: Framework para el desarrollo de aplicaciones Web No 3
 
Guia bootstrap
Guia bootstrapGuia bootstrap
Guia bootstrap
 
Desarrollo de Themes de WordPress desde cero. @DarioBF en @WPBilbao
Desarrollo de Themes de WordPress desde cero. @DarioBF en @WPBilbaoDesarrollo de Themes de WordPress desde cero. @DarioBF en @WPBilbao
Desarrollo de Themes de WordPress desde cero. @DarioBF en @WPBilbao
 
Aplicación abc. asp net mvc 3
Aplicación abc. asp net mvc 3Aplicación abc. asp net mvc 3
Aplicación abc. asp net mvc 3
 
ASP.NET MVC - layouts y vistas parciales
ASP.NET MVC - layouts y vistas parcialesASP.NET MVC - layouts y vistas parciales
ASP.NET MVC - layouts y vistas parciales
 
Desarrollo Aplicaciones Zend Framework
Desarrollo Aplicaciones Zend FrameworkDesarrollo Aplicaciones Zend Framework
Desarrollo Aplicaciones Zend Framework
 
Jsf Java Server Faces
Jsf   Java Server FacesJsf   Java Server Faces
Jsf Java Server Faces
 
Webinar - SEO Avanzado
Webinar - SEO AvanzadoWebinar - SEO Avanzado
Webinar - SEO Avanzado
 
2_4_Los_metadatos_El_elemento_head.pdf
2_4_Los_metadatos_El_elemento_head.pdf2_4_Los_metadatos_El_elemento_head.pdf
2_4_Los_metadatos_El_elemento_head.pdf
 
De HTML a Express
De HTML a ExpressDe HTML a Express
De HTML a Express
 
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...
Introduccion, Instalacion, Configuracion e Implementacion Framework ZanPHP IT...
 
Tutorial3 Desymfony - La Vista. Twig
Tutorial3 Desymfony - La Vista. TwigTutorial3 Desymfony - La Vista. Twig
Tutorial3 Desymfony - La Vista. Twig
 
Extender Jquery para crear componentes web personalizados
Extender Jquery  para crear componentes web personalizadosExtender Jquery  para crear componentes web personalizados
Extender Jquery para crear componentes web personalizados
 
Joomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensionesJoomladay 2008 Madrid - desarrollo de extensiones
Joomladay 2008 Madrid - desarrollo de extensiones
 
88 Php. Imagenes En Tablas
88 Php. Imagenes En Tablas88 Php. Imagenes En Tablas
88 Php. Imagenes En Tablas
 
Crea tu plantilla de blogger
Crea tu plantilla de bloggerCrea tu plantilla de blogger
Crea tu plantilla de blogger
 
Jquery Hmvc
Jquery HmvcJquery Hmvc
Jquery Hmvc
 
Crear Plugin de WordPress desde Cero
Crear Plugin de WordPress desde CeroCrear Plugin de WordPress desde Cero
Crear Plugin de WordPress desde Cero
 
Creacion Bloques Inigo Bustos
Creacion Bloques Inigo BustosCreacion Bloques Inigo Bustos
Creacion Bloques Inigo Bustos
 

Último

Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 

Último (20)

Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 

Elggcampba 2010 - Customize a Social Network in Elgg without losing patience

  • 1. Personalizar una Red Social en Elgg  sin perder la paciencia Diego Gallardo - Elgg Developer @demege
  • 2. Agenda 1. Introducción 2. Conceptos 3. Puesta en practica 4. Preguntas
  • 3. Introducción - Elgg esta basado en MVC (modelo-vista-controlador) - Esta charla va a hablar de la capa de vista - Aprenderemos como modificar la parte visual de un sitio en Elgg - Cuando hablamos de personalización en Elgg hablamos de vistas. - Aprenderemos que es una vista, que es extender una vista, tipos de vistas ...
  • 4. Que es una vista En Elgg todo se puede representar con una vista. Se puede representar elementos html, css, js. En Elgg se representan con vistas, un header, footer, input, textarea, pulldown, etc Es la salida de datos de la informacion que ve el usuario. La ventaja que todo se maneje con el mismo sitema:      - Esta centralizado.      - Se puede extender.      - Se pueda cachear.
  • 5. Como utilizar una vista Como llamar a una vista:      elgg_view( 'page_elements/header_contents' ) Se puede pasar parametros una vista mediante un arreglo.      elgg_view( 'page_elements/header_contents' , array ( 'var1' => $val1, 'var2' => $val2)) Se obtienen estos parametros en la vista a traves de $vars.      $vars[ 'var1' ], $vars[ 'var2' ] La vista recibe en $vars parametros por defecto:      $vars[ 'url' ] : Url del sitio.      $vars[ 'user' ] : El usuario que esta logeado actualmente.      $vars[ 'config' ] : el objeto configuracion de elgg.  
  • 6. Estructura de vistas Estructura de directorio de vistas por defecto de elgg: elgg      views          default              canvas                  layouts                      two_column_left_sidebar.php              page_elements                  header_contents.php                  footer.php
  • 7. Trabajar con vistas Hay 3 formas de trabajar con vistas:      - Sobreescribiendo      - Extendiendo      - Creando nuevas
  • 8. Trabajar con vistas: Sobreescribiendo Para sobrescribir una vista, solo basta con declarar la vista en la misma posición a nivel estructura, respecto a la vista a sobreescribir. Ubicacion vista original (header) elgg      views          default              page_elements                  header_contents.php Ubicacion vista sobreescrita (header) mytheme      views          default              page_elements                  header_contents.php
  • 9. Trabajar con vistas: Extendiendo Se pueden extiender las vistas para agregar contenido antes o despues de las mismas. Ej: Extendemos el header para agregar un menu.      elgg_extend_view( 'page_elements/header_contents' , 'page_elements/menu' ); El tercer parametro de la funcion elgg_extend_view indica la prioridad por defecto 500. Ej: Extendemos el header para agregar un menu antes.  Al darle menos prioridad que por defecto, se agrega antes.      elgg_extend_view( 'page_elements/header_contents ', 'page_elements/menu' , 499); TIP : En la vista que extendemos se reciben en $vars los parametros de la vista extendida.
  • 10. Layouts En elgg hay diferentes layouts para mostrar la informacion. - 2 columnas. (sidebar izq, sidebar derecha) - 1 columna - sidebar boxes (riverdashboard) - widgets (profile, dashboard) Como llamar a un layout: elgg_view_layout('two_column_left_sidebar', $area1, $area2, $area3); Las diferentes variables que se pasan al layout, se reciben como $vars['area1'], $vars['area2'] ... $vars['areaN'] 
  • 11. Tipos de vistas (view type) Elgg provee diferentes formas de mostrar finalmente la informacion: rss, json, xml, php, default (estandard)  Cambiando el tipo de vistas, se puede mostrar la misma informacion de diferente manera. Se podria especificar un nuevo tipo &quot;mobile&quot; y modificar las vistas sin tener que modificar la informacion misma. Utilizacion: A traves de la url http://local/elggbase/pg/blog/?view=rss Definiendo el tipo de vista: elgg_set_viewtype('mobile');
  • 12. Tipos de vistas (view type) Vistas por defecto: elgg      views          default/              canvas/              page_elements/          json          php          rss/              canvas/              page_elements/                      xml
  • 13. Nos arremangamos y arrancamos!
  • 14. Puesta en Practica Desarrollo de un theme base - Creamos un directorio dentro de mod &quot;mytheme&quot; - Creamos el archivo manifest.xml - Creamos un archivo mytheme/start.php con: <?php function mytheme_init() {      elgg_extend_view( 'css' , 'mytheme/css' ); //Extendemos la vista de css }     register_elgg_event_handler( 'system' , 'init' , 'mytheme_init' ); ?> - Creamos la estructura de vista default. views      default          mytheme
  • 15. Puesta en Practica Archivo CSS: - En Elgg el css se encuentra en 1 solo archivo en:      elgg/views/default/css.php - Podemos sobreescribirlo declarandolo en nuestro plugin:      elgg/mod/mytheme/views/default/css.php - Podemos extenderlo con:      elgg_extend_view( 'css' , 'mytheme/css' );
  • 16. Puesta en Practica Importante : Los plugins en Elgg tienen jerarquias de vistas, cualquier archivo que se declare en la misma posición en la estructura, reemplazara a otro ya definido. Ej: Agregar contenido al header. El archivo: mod/mytheme/views/default/page_elements/header_contents.php Reemplazara: elgg/views/default/page_elements/header_contents.php - Podemos copiar el original y modificarlo o crear uno nuevo.
  • 17. Puesta en Practica Tarea: Extender la vista de miembros recientes con un banner.
  • 18. Puesta en Practica <?php function mytheme_init() { elgg_extend_view( 'riverdashboard/newestmembers' , 'page_elements/left_banner' ); } ?>
  • 19. Puesta en Practica Funciones utiles: - get_loggedin_user(): Obtenemos el usuario logeado. - isloggedin(): Devuelve true o false si hay un usuario logeado. - isadminloggedin(): Devuelve true si hay un admin logeado. - get_context(): Devuelve el contexto. - get_input('my_var', ''): Obtiene variables input de GET/POST - set_input('my_var', 'diego'): Seteamos una variable, para obtener por get_input.
  • 20. Puesta en Practica Recomendaciones : - Nunca modificar las vistas en /elgg/views/*, en caso de querer modificar algo, hacerlo dentro de un plugin. - Tener en cuenta el orden de los plugins en la lista de plugins al sobreescribir vistas.  Ej: si sobreescribimos una vista de blog y este se encuentra debajo de nuestro plugin en la lista de plugins, no se veran los cambios. - En la configuracion del sitio, quitar cache de vistas y archivos para desarrollo. - En caso de no ver los cambios http://mysite.com/upgrade.php
  • 22. GRACIAS http://docs.elgg.org/wiki/Main_Page http://community.elgg.org/ http://community.elgg.org/pg/profile/demege Diego Gallardo - @demege