72
Víctor Podberezski | Product Manager www.cms-medios.com Follow @cmsmedios

Víctor Podberezski | Product Manager Follow @cmsmedios

Embed Size (px)

Citation preview

Page 1: Víctor Podberezski | Product Manager  Follow @cmsmedios

Víctor Podberezski | Product Manager

www.cms-medios.comFollow @cmsmedios

Page 2: Víctor Podberezski | Product Manager  Follow @cmsmedios

Quienes Somos?

Page 3: Víctor Podberezski | Product Manager  Follow @cmsmedios

Breve introducción

Cms para medios

Page 4: Víctor Podberezski | Product Manager  Follow @cmsmedios

Cms para mediosContent Management System especializado en medios de comunicación

Basado en OpenCms v7.x

Permite administrar:Medios DigitalesDiarios OnlineRevistasPortales de Comunidad…

Page 5: Víctor Podberezski | Product Manager  Follow @cmsmedios

¿Qué incluye?Publicaciones

Noticias

Encuestas

Comentarios

Estadísticas y rankings

Integración con redes sociales

Buscador

Galería de imágenes y videos

Page 6: Víctor Podberezski | Product Manager  Follow @cmsmedios

Características fundamentalesSeparación del sitio en 2:Offline – sitio de desarrolloOnline – Sitio de acceso al público

Almacenamiento de la información en base de datos

Cache configurable por el usuario de las páginas a mostrar

Page 7: Víctor Podberezski | Product Manager  Follow @cmsmedios

WorkplaceHerramienta Web de Administración general (Back-End)

Permite administrar el contenido y comportamiento en forma visual

Se accede previa autenticación

Tiene dos vistas principales:ExploradorVista de Administración

Page 8: Víctor Podberezski | Product Manager  Follow @cmsmedios

Vista de AdministraciónPermite la administración de comportamiento y de las funcionalidades de OpenCms:UsuariosÍndicesTareasProyectosMódulosCacheGalerías…

Page 9: Víctor Podberezski | Product Manager  Follow @cmsmedios

ExploradorPermite administrar contenidos visualmente: crear, modificar, borrar y publicarVisualizar historial de cambios y de publicación

Page 10: Víctor Podberezski | Product Manager  Follow @cmsmedios

Sistema de Archivos (VFS)Contiene todos los contenidos que conforman el sitio web

Se encuentra dentro de una base de datos

Soporta altas, bajas y modificaciones de archivos

Soporta Versionado

Tiene un sistema de permisos y accesos

Page 11: Víctor Podberezski | Product Manager  Follow @cmsmedios

Sitios | PublicacionesPermite generar y administrar múltiples sitios

Cada sitio pueden tener sus propios recursos independientes

Son accedidos por su propia URL

Dentro de un sitio pueden convivir múltiples publicaciones

Es importante evaluar la metodología de implementación para cada caso

Page 12: Víctor Podberezski | Product Manager  Follow @cmsmedios

ProyectosConjunto de recursos a administrar por un determinado grupo de usuarios

Mínimamente existe el proyecto Offline

Se administran y publican en forma independiente

Page 13: Víctor Podberezski | Product Manager  Follow @cmsmedios

Tipos de contenidosOpenCms soporta nativamente diferentes tipos de contenidos:TextoImágenesArchivos binariosHTMLContenidos Estructurados

Page 14: Víctor Podberezski | Product Manager  Follow @cmsmedios

Contenidos EstructuradosConjunto de campos y propiedades

Representan un elemento

Ej. “Noticia”:TituloCuerpoCopete…

Se definen mediante un meta-lenguaje

Se pueden indexar y buscar

Page 15: Víctor Podberezski | Product Manager  Follow @cmsmedios

PropiedadesMeta-data que describen al contenido

Ejemplo:Fecha de modificaciónTitulo

Existen propiedades nativas y se pueden agregar nuevas.

Facilitan la indexación y búsqueda

Page 16: Víctor Podberezski | Product Manager  Follow @cmsmedios

GaleríasConjunto ordenado de elementos de un mismo tipo

Pueden ser:ImágenesTextoLinksTablasHTML

Para contenidos que se utilizan en forma seguida en el sitio

Page 17: Víctor Podberezski | Product Manager  Follow @cmsmedios

TemplatePlantilla

Determina cómo mostrar información

Transforma un contenido estructurado o varios en HTML

Puede subdividirse en partes llamadas elementos

Se establecen como propiedad del contenido a mostrar

Son archivos JSP (Java Server Pages)

Page 18: Víctor Podberezski | Product Manager  Follow @cmsmedios

Circuito de despliegue de contenido

Page 19: Víctor Podberezski | Product Manager  Follow @cmsmedios

SiblingsAcceso directo de un recurso en otra ubicación del VFS. Similar a ‘atajo’ de Windows.

El sibling comparte el contenido del archivo original, no así sus propiedades

Utilizado para compartir contenidos en diferentes sitios y/o publicaciones

Page 20: Víctor Podberezski | Product Manager  Follow @cmsmedios

Desarrollo en OpenCmsLos desarrollos en OpenCms se realizan mediante el agregado de:MódulosClases y librerias java

Se desarrolla generalmente en un entorno diferente al productivo

Se utiliza la importación y exportación de módulos para transportar las nuevas funcionalidades de entorno a entorno

Page 21: Víctor Podberezski | Product Manager  Follow @cmsmedios

MódulosAgrupa conjunto de contenidos y templates. Por ejemplo: com.tfsla.diario.generico

Se crean y gestionan dentro de la vista de administración

Pueden ser importados y exportados del OpenCms

Se almacenan dentro del VFS en la carpeta “/system/modules/”

Son Versionables

Page 22: Víctor Podberezski | Product Manager  Follow @cmsmedios

Contenido de módulosDefinición de nuevos contenidos estructurados

Templates y Jsp

Extensiones a la API de OpenCms

Nueva pestañas de la vista de administración

Integración con productos de terceros

Page 23: Víctor Podberezski | Product Manager  Follow @cmsmedios

Motor de BúsquedasOpenCms posee un motor de búsqueda flexible.

Basado en Tecnología LUCENE

Esta compuesto por:IndexadorMotor de Búsqueda

Page 24: Víctor Podberezski | Product Manager  Follow @cmsmedios

Construcción simplificada de Templates

news:tags

Page 25: Víctor Podberezski | Product Manager  Follow @cmsmedios

MotivaciónSIMPLIFICAR la generación de templates para mostrar contenido

DISMINUIR la cantidad de código JAVA en la elaboración de templates

FACILITAR la integración de la maquetación al desarrollo

REDUCIR tiempos de desarrollo y curva de aprendizaje

ENCAPSULAR funcionalidad compleja

MAXIMIZAR libertad de diseño

Page 26: Víctor Podberezski | Product Manager  Follow @cmsmedios

news:tagsFormado por:Conjunto de Tags Server-sideExpresiones para evaluaciones lógicasModulo con funcionalidades estandarizadas

configurablesFunciones javascript para funcionalidad client-side

Page 27: Víctor Podberezski | Product Manager  Follow @cmsmedios

<nt:news>Permite recuperar una noticia

Parámetros:path

<%@ taglib prefix="nt" uri="http://www.tfsla.com/taglib/tfsNewsTags" %>

<nt:news path="/contenidos/2012/03/29/noticia_0001.html"><nt:title />

</nt:news>

Page 28: Víctor Podberezski | Product Manager  Follow @cmsmedios

<nt:news-list>Permite recuperar varias noticias

En base a los parámetros solicitados decide donde buscarlas:Páginas principales.Publicaciones y edicionesíndicesrankings<%@ taglib prefix="nt" uri="http://www.tfsla.com/taglib/tfsNewsTags" %>

<nt:news-list size="10" publication=“1” edition=“1202” section=“espectaculos”><nt:title />

</nt:news>

Page 29: Víctor Podberezski | Product Manager  Follow @cmsmedios

ComparacionesRecuparar una noticia:Antes:

Con news-tags:

<%@ taglib prefix="cms" uri="http://www.opencms.org/taglib/cms" %>

<cms:contentload collector="singleFile" param="/contenidos/2011/04/26/noticia_0006.html"><cms:contentshow element="titulo"/>

</cms:contentload>

<%@ taglib prefix="nt" uri="http://www.tfsla.com/taglib/tfsNewsTags" %>

<nt:news path="/contenidos/2012/03/29/noticia_0001.html"><nt:title />

</nt:news>

Page 30: Víctor Podberezski | Product Manager  Follow @cmsmedios

Comparaciones (II)Obtener las 10 noticias mas leídas de la ultima hora:Antes:

Con news-tags:

<%@ taglib prefix="cms" uri="http://www.opencms.org/taglib/cms" %>

<cms:contentload collector="MasVisitadas" param="/contenidos/noticia_%(number).html|50|hours:1|size:10"> <cms:contentshow element="titulo"/> </cms:contentload>

<%@ taglib prefix="nt" uri="http://www.tfsla.com/taglib/tfsNewsTags" %>

<nt:news-list size="10" order="most-read“ from="1h"><nt:title />

</nt:news>

Page 31: Víctor Podberezski | Product Manager  Follow @cmsmedios

Comparaciones (III)Obtener las ultimas 5 noticias publicadas:Antes:

Con news-tags:

<%@ taglib prefix="cms" uri="http://www.opencms.org/taglib/cms" %>

< cms:contentload collector="Last" param="/contenidos/noticia_${number}.html|50|size:5 > <cms:contentshow element="titulo"/> </cms:contentload>

<%@ taglib prefix="nt" uri="http://www.tfsla.com/taglib/tfsNewsTags" %>

<nt:news-list size=“5" order="user-modification-date“><nt:title />

</nt:news>

Page 32: Víctor Podberezski | Product Manager  Follow @cmsmedios

Comparaciones (IV)Obtener las noticias “destacadas” de la home de sección “política”:Antes:

Con news-tags:

<%@ taglib prefix="cms" uri="http://www.opencms.org/taglib/cms" %>

<cms:contentload collector="Contenidos" param="/contenidos/noticia_${number}.html|50|target:seccion|zone:destacadas|section:politica" > <cms:contentshow element="titulo"/> </cms:contentload>

<%@ taglib prefix="nt" uri="http://www.tfsla.com/taglib/tfsNewsTags" %>

<nt:news-list section=“politica” onmainpage=“section” zone=“destacadas”><nt:title />

</nt:news>

Page 33: Víctor Podberezski | Product Manager  Follow @cmsmedios

Comparaciones (V)Obtener noticias con palabras claves por fecha:Antes:CmsJspXmlContentBean cms = new CmsJspXmlContentBean(pageContext, request, response); TfsAdvancedSearch search = new TfsAdvancedSearch();search.init(cms.getCmsObject()); search.setIndex("DIARIO_CONTENIDOS_ONLINE");search.setMatchesPerPage(10); Sort thisSort = new Sort(); thisSort.setSort("ultimaModificacion",true); search.setSortOrder(thisSort); String query = "keywords:(\"\TFSLA")";search.setQuery(query);search.setPage(1);

Page 34: Víctor Podberezski | Product Manager  Follow @cmsmedios

Comparaciones (IV)(continuación)List result = search.getSearchResult();ListIterator iterator = result.listIterator(); while (iterator.hasNext()) { CmsSearchResult entry = (CmsSearchResult)iterator.next(); String path = cms.link(cms.getRequestContext().removeSiteRoot(entry.getPath())); %>

<cms:contentload collector="singleFile" param="<%= path %>"><div>

<cms:contentshow element="titulo"/></div>

</cms:contentload><%

}%>

Page 35: Víctor Podberezski | Product Manager  Follow @cmsmedios

Comparaciones (IV)(continuación)Con news-tags:<%@ taglib prefix="nt" uri="http://www.tfsla.com/taglib/tfsNewsTags" %>

<nt:news-list size=“10" tags=“TFSLA” order="user-modification-date“><nt:title />

</nt:news>

Page 36: Víctor Podberezski | Product Manager  Follow @cmsmedios

ResultadosMismo Tag para recuperar noticias

Parámetros más sencillos y mnemotécnicos

Más variantes de consultas

Más rápido para implementar

Más sencillo de entender

Mas práctico para modificar

Page 37: Víctor Podberezski | Product Manager  Follow @cmsmedios

Información de la noticiaDatos básicos:nt:titlent:upper-titlent:sub-titlent:sectionnt:tagsnt:bodynt:linknt:iframe

Page 38: Víctor Podberezski | Product Manager  Follow @cmsmedios

Información de la noticia (II)Datos básicos:nt:last-modifiednt:categoriesnt:authorsnt:related-news

Page 39: Víctor Podberezski | Product Manager  Follow @cmsmedios

Información de la noticia (III)Datos multimedia:nt:audiont:filesnt:preview-imagent:image-gallerynt:video-flashnt:video-downloadnt:video-embeddednt:video-youtube

Page 40: Víctor Podberezski | Product Manager  Follow @cmsmedios

Información de la noticia (IV)Datos estadísticos:nt:news-viewsnt:news-total-commentsnt:news-recommendationsnt:news-average-valorationsnt:news-total-valorationsnt:news-positive-valorationsnt:news-negative-valorations

Page 41: Víctor Podberezski | Product Manager  Follow @cmsmedios

Información de la noticia (V)Encuestas:nt:pools-fixed-positionnt:pools-dynamic-position

Page 42: Víctor Podberezski | Product Manager  Follow @cmsmedios

Demostración 1Detalle de una noticia mediante news:tags

Usando diseño Standard de un diario

Page 43: Víctor Podberezski | Product Manager  Follow @cmsmedios

ComentariosSe pueden insertar en cualquier página

Se puede definir que mostrar por cada comentarios

Se pueden definir “N” niveles de respuesta

Son paginables

Se puede definir políticas de publicación, moderación y denuncia

Page 44: Víctor Podberezski | Product Manager  Follow @cmsmedios

Comentarios - tagsInicializar comentarios:nt:comments-init

Listado de comentarios:nt:comments-box

Formularios de ingreso:nt:comments-formnt:captchant:share

Page 45: Víctor Podberezski | Product Manager  Follow @cmsmedios

<nt:pools-box>Listado de encuestas.

Se puede personalizar como mostrar una encueta abierta o cerrada

Se pueden filtrar por:TagsCategoríasGrupoEstado

Page 46: Víctor Podberezski | Product Manager  Follow @cmsmedios

Demostración 2Comentarios y encuestas en la noticia

Page 47: Víctor Podberezski | Product Manager  Follow @cmsmedios

<nt:image-list>Galería de imágenes

Se puede filtrar por:AutorTagsFechas de creación / última modificaciónFuente

<%@ taglib prefix="nt" uri="http://www.tfsla.com/taglib/tfsNewsTags" %>

<nt:image-list size="10" tags="tenis" order=“modification-date”><img src="<nt:image-path />" alt=”<nt:image-tags>” /><br/><nt:image-source /> - <nt:image-description/>

</nt:nt:image-list>

Page 48: Víctor Podberezski | Product Manager  Follow @cmsmedios

Información de ImágenesDatos:nt:image-pathnt:image-sourcent:image-authornt:image-descriptionnt:image-tags

<%@ taglib prefix="nt" uri="http://www.tfsla.com/taglib/tfsNewsTags" %>

<nt:image-list size="10" tags="tenis" order=“modification-date”><img src="<nt:image-path />" alt=”<nt:image-tags>” /><br/><nt:image-source /> - <nt:image-description/>

</nt:nt:image-list>

Page 49: Víctor Podberezski | Product Manager  Follow @cmsmedios

<nt:video-list>Galería de videos

Se puede filtrar por:AutorTagsFechas de creación /modificaciónFuenteTipo de Video

<%@ taglib prefix="nt" uri="http://www.tfsla.com/taglib/tfsNewsTags" %>

<nt:video-list size="10" tags=“barcelona" order=“modification-date” type=“download”><a href=“<nt:video-source />”> <nt:video-description/> </a>

</nt:nt:image-list>

Page 50: Víctor Podberezski | Product Manager  Follow @cmsmedios

Información de VideosDatos:nt:video-thumbnailnt:video-titlent:video-tagsnt:video-pathnt:video-publishernt:video-youtubeid

Page 51: Víctor Podberezski | Product Manager  Follow @cmsmedios

Demostración 3Home del diario

Page 52: Víctor Podberezski | Product Manager  Follow @cmsmedios

Templates a la medidaMostrar u ocultar contenido de acuerdo a parámetros de la noticia.

Para eso cuenta con:Expresiones lógicas para evaluar condiciones (JSTL)Tags de inclusion-exclusion de código

Page 53: Víctor Podberezski | Product Manager  Follow @cmsmedios

<nt:conditional-include>Permite mostrar el código contenido en su interior.

Parámetrosonconditiononposition

<%@ taglib prefix="nt" uri="http://www.tfsla.com/taglib/tfsNewsTags" %>

<nt:news-list zone="destacadas" onmainpage="home" size="5"><nt:localpath /> - <nt:title/><br/><nt:conditional-include oncondition=“${news.homePreview=‘image’}">

<nt:preview-image> <img src="<nt:image-path />" /><br/>

</nt:preview-image > </nt:conditional-include>

</nt:news-list>

Page 54: Víctor Podberezski | Product Manager  Follow @cmsmedios

<nt:conditional-exclude>Permite excluir el código contenido en su interior.

Parámetrosonconditiononposition

<%@ taglib prefix="nt" uri="http://www.tfsla.com/taglib/tfsNewsTags" %>

<nt:news-list zone="destacadas" onmainpage="home" size="5"><nt:conditional-include onposition=“1”><h1></nt:conditional-include><nt:conditional-exclude onposition=“1”><h2></nt:conditional-include>

<nt:title/><nt:conditional-include onposition=“1”></h1></nt:conditional-include><nt:conditional-exclude onposition=“1”><h2></nt:conditional-include>

</nt:news-list>

Page 55: Víctor Podberezski | Product Manager  Follow @cmsmedios

ExpresionesForma de evaluar lógicamente los contenidos

Permiten obtener:Valores de los elementosCantidad de elementos dentro de un listadoPosición dentro de un listadoCálculos matemáticos y lógicos

Permiten pasaje de parámetros de tags a tags

Son expuestos por algunos de los news:tags

Page 56: Víctor Podberezski | Product Manager  Follow @cmsmedios

Expresiones - NoticiasSon expuestas por los tags <nt:news>, <nt:news-list> y <nt:related-news>

Permiten obtener:Valores de los elementos básicosLa cantidad de autores, imágenes y videos cargados.Configuración de que mostrar.

Page 57: Víctor Podberezski | Product Manager  Follow @cmsmedios

Demostración 4Dinamización del contenido

Page 58: Víctor Podberezski | Product Manager  Follow @cmsmedios

news:tags - DocumentaciónToda la información de news:tags se encuentra en:

• http://wiki.cms-medios.com

Otros sitios de interés:• http://blog.tfsla.com• http://www.facebook.com/cmsmedios

Page 59: Víctor Podberezski | Product Manager  Follow @cmsmedios

Este módulo es un ‘constructor’ de portadas que permite

agregar y quitar noticias en modo ‘drag and drop’, cambiar

dinámicamente el formato y combinar diferentes tamaños de

contenedores

Page Builder

Page 60: Víctor Podberezski | Product Manager  Follow @cmsmedios

¿Que son los Contenedores?Son ‘cajas’ que agrupan Contenidos

Se le puede aplicar un Formateador (combinación de CSS y JSP que dan forma a un contenido específico)

Especificar el límite de contenido a mostrar

Configuración de Formateadores disponibles

Page 61: Víctor Podberezski | Product Manager  Follow @cmsmedios

¿Qué se guarda en el contenido estructurado?

Configuración del contenedoro Nombreo Tipo de contenido que soportao Formateador por Defectoo Formateadores disponibleso Contenidos asociados (mediante drag and

drop)

Page 62: Víctor Podberezski | Product Manager  Follow @cmsmedios

Estructura del módulo com.tfsla.templateManager

elements IncludeTypes (ABM Tipos de Contenido) PageBuilder

[NOMBRE FORMATEADORES] resources

css [NOMBRE FORMATEADORES]

schemas (XSD con la definición del contenido estructurado) templates (JSP con template de Page Builder)

Page 63: Víctor Podberezski | Product Manager  Follow @cmsmedios

¿Cómo armo un Formateador?JSP / template: Crear un JSP para cada tipo de contenido dentro de la siguiente estructura del módulo: ‘elements/PageBuilder/[NOMBRE]

CSS / style: Crear un CSS para cada tipo de contenido dentro de la siguiente estructura del módulo: ‘resources/css/[NOMBRE]. También se pueden agregar otros archivos de estilos. La estructura del CSS debe ser jerárquica

Agregar en el contenido estructurado la disponibilidad del nuevo formateador

.zona estilo1 * .nota-destacada.nota-uno{width:100%;}

.zona estilo1 * .nota-destacada.nota-uno .title{width:920px;}

.zona estilo1 * .nota-destacada.nota-uno .title{font-size:40px;line-height:44px;}

Page 64: Víctor Podberezski | Product Manager  Follow @cmsmedios

¿Cómo armar Page Builder con News Tags?

<%@ taglib prefix="nt" uri="http://www.tfsla.com/taglib/tfsNewsTags" %><html>

<head> <nt:page-builder-init />

</head><body>

<nt:page-builder><nt:container name="caja1" /><nt:container name="caja2" /><nt:container name="caja3" />

</nt:page-builder></body>

</html>

Page 65: Víctor Podberezski | Product Manager  Follow @cmsmedios

VentajasInterface amigable para la administración del contenido mediante ‘drag and drop’

Cajas dinámicas con múltiples tamaños y estilos posibles

Combinación de N cajas (ocultar / mostrar)

El page builder permite realizar modificaciones a la estructura de una página de forma rápida y sin conocimientos de programación

Page 66: Víctor Podberezski | Product Manager  Follow @cmsmedios

Roadmap

Cms para Medios

Page 67: Víctor Podberezski | Product Manager  Follow @cmsmedios

GeneralReducir módulos y JARs. Generar relaciones entre los módulos (simplifica la instalación)*

Consolidar la configuración de la suite (XML o vista de administración)

Actualizaciones mediante paquetes automáticos

Nuevo look&feel para Workplace

100% multi-site / multi-publicación (Abril 2012)

Migrador / Importador genérico

Juego de ‘templates’ genérico

Page 68: Víctor Podberezski | Product Manager  Follow @cmsmedios

Administración CentralizadaConsolidar la administración de las operaciones más frecuentes:

• Administración de Usuarios• Moderación de Comentarios• Moderación de Posts• Administración de Noticias (modo grilla y

modo visual)• Rankings

Page 69: Víctor Podberezski | Product Manager  Follow @cmsmedios

Motor de RankingsEl que leyó A, además leyó B

Gráficos de evolución de los rankings

Mejoras de rendimiento y modelo de almacenamiento histórico (consolidación)

Page 70: Víctor Podberezski | Product Manager  Follow @cmsmedios

news:tagsSEO tags

Banners tags

Parámetros para Facebook Open Graph

Schema.org compatible

+++ tags

Page 71: Víctor Podberezski | Product Manager  Follow @cmsmedios

Facebook AppTendencia en crecimiento. The Guardian UK (pionero). 4 millones nuevos unique visitors. 1 millón de páginas vistas por día adicional. 3% a 30% en 6 meses.

Múltiples formas de implementación (referral o Facebook Ads)

Mejora la ‘socialización’ en el sitio Web (Social ON / OFF)

Page 72: Víctor Podberezski | Product Manager  Follow @cmsmedios

Actualizaciones al ‘core’OpenCms v8.5

OpenCms v7.5.5 by Technology for Solutions