Síguenos en: icono twitter icono facebook

 

Modulo Valora Contenido 0.1

Logo OpenCms Hispano (Nueva Ventana)

Titulo: Valoración de Contenido
Modulo: org.opencmshispano.module.valora
Última Version: 0.1
Autor: Sergio Raposo Vargas
Email: sergio.raposo (arroba) opencmshispano.com

Introducción

Con este modulo pretendemos crear una utilidad con la que un usuario de nuestro sitio web pueda valorar el contenido que le estamos mostrando, información que nos ayudará a mejorar los contenidos. Este modulo viene a añadir un poco la funcionalidad de nuestro OpenCms, y a enriquecer más nuestros portales webs.

Requisitos previos

- Base de Datos: MySql
- OpenCms 6.X

Testeado sobre

- OpenCms 6.2.2
- MySql
- Tomcat 5.5
- JDK 1.5

Instalación

1- Creamos una nueva tabla en nuestra BD, denominada "cms_score_resource", usando el script:

--
-- Estructura de tabla para la tabla `cms_score_resource`
--
-- Creación: 15-01-2007 a las 20:00:04
-- Última actualización: 30-01-2007 a las 23:40:43
--

CREATE TABLE `cms_score_resource` (
  `RESOURCE_ID` varchar(36) NOT NULL default '',
  `puntuacion` int(10) NOT NULL default '0',
  `num_votantes` int(10) NOT NULL default '0',
  `fecha_ultima_modificacion` date NOT NULL default '0000-00-00',
  PRIMARY KEY  (`RESOURCE_ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

2- Importamos el modulo desde la vista de adminsitracion de OpenCms.

3- Reiniciamos tomcat.

4- Preparamos nuestros templates donde queramos poner la opción de votar. Para ello agregamos las siguientes lineas de codigo:

<%
//Obtenemos el CmsObject
org.opencms.jsp.CmsJspActionElement cms = new org.opencms.jsp.CmsJspActionElement(pageContext, request, response);
CmsObject cmsobj = cms.getCmsObject();
//Obtenemos la uri del recurso al que vamos a puntuar
String theUri = cms.getRequestContext().getUri();
//A partir del uri, obtenemos el id del recurso
String id = ManagerValora.buscarIdResource(theUri, cmsobj);
//Creamos el objeto principal
ManagerValora obj = new ManagerValora(id);
//Miramos si el usuario ha votado
String puntuacion =request.getParameter("puntuacion");
//Si ha votado, actualizamos la BD
if (puntuacion != null)
{
obj.nuevaVotación(puntuacion);
}
//Obtenemos el html generado por defecto.
out.println(obj.getHTMLDiv());
%>

NOTA: No olvidar importar el paquete "org.opencmshispano.module.valora.*"

Igualmente podemos usar la Interfaz publica del modulo para interactuar y obtener la información por separado. Para ello disponemos de las siguientes funciones:

- buscarIdResource (String uri): Metodo estático al que le pasamos la uri de un recurso y obtiene su ID.
- ManagerValora (String id): Constructor que crea el objeto principal. Es necesario pasarle un id de Recurso.
- nuevaVotación (String puntuacion): Realiza una nueva valoración del recurso.
- getPuntuación (): Obtiene la puntuación actual del recurso.
- getNumeroVotantes (): Obtiene el numero de votantes.
- getHTMLDiv (): Devuelve un codigo html basado en div que muestra la información.
   
Futuras mejoras

- Incluir información sobre la última fecha que se votó.
- Evitar que un usuario vote 2 veces seguidas.
- Ampliar conectores para otras Bases de Datos como Oracle o PostgreSQL
- Permitir que la información se guarde como propiedad del recurso, en lugar de en la Base de Datos.
- Punto de Administración que permita visualizar toda la información, pudiendor editarla en todo momento.
- Ampliar la interfaz publica del recurso con más funcionalidad.

© OpenCms Hispano - Powered by OpenCms 7.5.2 & Template Saga
logo template Saga