miércoles, 17 de octubre de 2007

Avance de com_pedidos

El componente ya está funcionando, al menos de forma básica. Actualmente se puede hacer lo siguiente:

  1. Crear un pedido.
    Se puede indicar el evento (ejemplo, "Torneo Copa David"), el momento (ejemplo, "Semifinal"), la razón (ejemplo, "Violacion al codigo de conducta") y el implicado, todo a través de menúes desplegables. También se puede ingresar una descripción.
    En la base se guarda toda esta información más el usuario que generó el pedido y la fecha.
  2. Ver el listado de pedidos.
    Los usuarios pueden ver un listado de los pedidos que crearon. Cliqueando en el número pueden ver el detalle de cada pedido (por ejemplo, para conocer el estado, el descargo y si hay, la resolución tomada).
    Si el usuario es administrador además puede aplicar una sanción, o cerrar el pedido sin sancionar.
  3. Características de acceso.
    Es necesario ser usuario registrado para crear un pedido o ver el listado de pedidos. Lo mismo para guardar la información en la base de datos.
    Es necesario ser usuario administrador para aplicar una sanción o cerrar un pedido.
Lo bueno de haber logrado estas funcionalidades es que aprendimos como desarrollar un componente. Cuales son las funciones que ofrece el framework, como se estructura el componente, como desarrollar funciones para el procesamiento de datos, y también para la presentación de los mismos.

De los 6 puntos mencionados en el post anterior ya estan funcionando los primeros 5. Pero también encontramos, al ir desarrollando el componente, que necesitamos otras funciones, y dejar abierta las puertas para integrar este componente con otros que desarrollaremos luego.

Espero que pronto podamos poner en funcionamiento publico este primer componente.

viernes, 31 de agosto de 2007

Componente com_pedidos

Ya tenemos el componente a mitad de camino. Al menos las funciones principales estan listas, aunque aun no hay modulo que llame a cada una de ellas.

El objetivo de este componente es permitir a un usuario registrado enviar una solicitud de WO, informar una violacion al código de conducta o cualquier otra actividad que requiera la intervencion de la organización.

Las tareas que el componente debe permitir son las siguientes:

1) Crear un pedido (ingresar los datos del evento, la categoria del pedido y la descripcion del mismo)
2) Listar los pedidos creados (por dicho usuario)
3) Ver el detalle de cada pedido creado
4) Que el administrador pueda visualizar cada pedido y aceptarlo o rechazarlo
5) Que el administrador(es) pueda(n) dar una respuesta y cambiar el estado del reclamo
6) El sistema informará al implicado de la resolución

Por ahora hemos creado la tabla para almacenar los pedidos y creamos el código para crear un pedido, ver el listado de pedidos y ver el detalle de un pedido. Nos queda avanzar con el resto, y aun nos falta verificar que el usuario sea un usuario registrado y guardar su user-id junto al pedido.

martes, 21 de agosto de 2007

Crear un componente

Ya hemos seleccionado un componente para casi todas las secciones (aunque aun falta personalizarlos). Pero hay secciones para las que no existen componentes o los que existen no se adecúan o cuentan con demasiadas características.
Uno de esos casos es el sistema de tickets que usaremos para reportar incidentes y violaciones al codigo de conducta.
Y como no hay componente que haga esto de forma simple lo crearemos.
Asi que ahora comienza la experiencia de crear un componente con su parte visible, la funcionalidad, la administracion, el mambot asociado y un modulo tambien.
Veremos que sucede...

lunes, 13 de agosto de 2007

Review de SOBI2

En nuestra búsqueda de un componente que nos permita mostrar fichas de clubes de tenis hemos probado algunos componentes, como ProductBook o JReview, pero creo que el punto final está con el componente SOBI2.

Este nombre un tanto críptico significa Sigsiu (el nombre de la empresa desarrolladora) Online Business Index (S.O.B.I. en su versión 2).

Como la mayoría de los componentes la instalación es simple: un componente, dos módulos y un mambot.

El backend luce un poco distinto que el resto de los componentes, sobretodo por la presencia de un panel horizontal a la izquierda de la pantalla, que en formato jerárquico muestra las diferentes opciones de configuración.

Con SOBI2 podemos crear una o varias categorías y para cada empresa (o producto, o persona, etc.) definimos que campos se usarán, cuales serán obligatorios y cuales no, que ayuda se mostrará en el formulario, etc. Claro que podemos crear nuesotrs propios campos para personalizar la información que recuperaremos para cada elemento.

El asepeto visual es simple y se integra fácilmente con la plantilla existente. Hay un plugin para conectarlo con Community Builder, para obtener mejor integracion.

La gran flexibilidad que tiene para definir categorías y campos se transforma, a la postre, en una de sus deficiencias. Todos desearíamos tener varias categorías con items diferentes en cada una. Por ejemplo, una categoría para clubes de tenis, otra para negocios de tenis y quizá una más para profesores.

La única forma de lograr esto (que ya es una característica pedida por varios usuarios para futuras versiones), según lo propuesto y ejemplificado en el foro de soporte, es clonando el instalador de SOBI2; o sea, instalando SOBI más de una vez de forma simultánea. Recurso rebuscado pero funcional.

La integración con JReview aparenta ser muy buena, aunque aún no la hemos probado, así como tampoco la integración con CB. Sin embargo, por su funcionalidad, siento que nos quedaremos con este componente para catalogar clubes de tenis.

jueves, 9 de agosto de 2007

Review de MyLanSite

MyLanSite es un componente para organizar torneos de juegos en red. Hay varios componentes de este estilo pero en realidad tienen poco en común con un torneo de tenis. La razón por la cual me decidí a probar este componente es que trabaja con cuadros (draws) de eliminación directa y doble eliminación, que son los usados en tenis, y encima los genera gráficamente. Además es muy completo (maneja eventos, torneos, reserva de lugares, catering, pagos en linea, etc.). Merece que le echemos una mirada.

La instalación y configuración es un poco complicada. Hay que instalar 7 componentes y 4 módulos para tener todo funcionando.

Luego hay que seguir un paso ¿lógico? para configurarlo o no podremos crear todos los elementos:
  1. Configurar eventos
  2. Crear un evento
  3. Crear un participante
  4. Configurar torneos
  5. Crear una categoria de torneos
  6. Crear un torneo
  7. Crear participantes del torneo (son usuarios del sitio)
  8. Definir brackets (las llaves del cuadro, los partidos en si).
  9. Adicionales (reservas, catering, pago en linea)
Como no hay documentación uno llega a este resultado vía prueba y error.

Una vez que cree todo esto y de haber publicado los módulos (fundamentalmente EventMenu que muestra las opciones para anotarse en un evento y/o torneo) el usuario puede inscribirse.
Y puede acceder a los datos del evento y torneo, ver las reservas y -lo que a mi mas me interesa- ver el cuadro del torneo. Es muy vistoso pero simple.

Por lo que pude ver esta basado en otro componente ya que tiene partes del codigo con nombres de variable y comentarios en Aleman (¡poco divertido!).

Conclusión: Tiene demasiadas opciones que nosotros no usamos, pero la parte de generacion de cuadros puede servirnos, lo mismo que las reservas y el pago en linea.

Review de JEvents

La prueba de este componente es para encontrar una agenda de actividades que permita:
  • Mostrar un calendario y remarcados los dias en que hay partidos o torneos
  • Mostrar un listado de actividades proximas
  • Mostrar informacion de cada actividad (partidos, entrega de premios, etc.)
El producto tiene tiempo en el mercado, asi que la parte de instalación fue simple y aceitada.

No abunda en características pero permite todo lo que necesitamos. Desde el backend podemos:

  • Crear categorias y eventos
  • Modificar el comportamiento de las actividades
  • Editar el aspecto visual del componente
Las prubas fueron crear dos categorias y un evento en cada una de ellas. Hice visible los dos modulos que trae (Calendario y Proximos eventos) y la informacion fue mostrada sin problemas. Se ajusta al codigo de pais que este configurado en php y joomla de forma automática. El lenguaje es en español.
Es facil agregar un evento, aunque las opciones de repeticion pueden ser un poco confusas.

En resumen, hace lo que queremos, pero tengo dudas de si será simple integrarlo con otros componentes de terceros o con el que creemos nosotros.

Review de RSGallery2

Gomcar me pasó el dato de esta galería de imágenes que enseguida me puse a probar.
La instalación fue simple, consta de un componente y dos módulos para visualizar galerías.
Una vez que se accede al backend uno se asombra por la cantidad y calidad de funciones. Podemos:
  • Configurar el componente
  • Crear y configurar galerias
  • Subir una imagen
  • Subir un grupo de imagenes (explorando automáticamente una carpeta local o un ftp, o subiendo un zip que se encarga solo de descomprimir)
  • Si se desea se puede agregar marcas de agua a las fotos o impedir que sean bajadas.
Los módulos permiten:
1) Mostrar imágenes al azar en un slideshow (haciendo fade entre ellas)
2) Mostrar un scroll de imágenes al azar.

La parte visible del componente permite acceder a las galerías y sus fotos, crear galerías y subir fotos (individuales o en grupo), ademas de borrar fotos y galerias. Es muy fácil bajar fotos.

Al cargar fotografías y hacer una prueba más detallada encontramos algunos inconvenientes.
Lo que buscabamos era que:
  • Solo el administrador pueda crear galerias
  • Los usuarios puedan subir fotografias a las galerias
  • Los usuarios puedan mirar y bajar cualquier foto de las galerias
Sin embargo, los usuarios no tenian la opcion de subir fotografias ni crear galerias. No hubo forma de hacer esta opcion visible, por más que estaba configurada. En el sitio del desarrollador nos recomendaron que instalemos una version más nueva (alpha y night build). Lo hicimos y ahi funcionó, y ademas trajo una novedad: Varias plantillas, un par de ellas basadas en flash lo que da un aspecto muy profesional a la galería.


Finalmente el producto terminó funcionando como queríamos. Será nuestra galería para fotos de torneos, desafíos y encuentros varios.

viernes, 20 de julio de 2007

Review de CB Gallery

Uno de los componentes que necesitamos es una galería de imágenes (y porque nó, otros medios).
Ya que usaremos CB me pareció buena idea usar el plugin paraCB llamado CB Gallery que se integra con Community Builder y al menos mantendrá la misma interfaz.

La instalación en lugar de hacerse desde Admin\Instaladores\Componentes como es habitual en Joomla! se hace desde el menu de CB, por ser un plugin para este componente. Los pasos son igual de simples que para instalar otro componente.

Una vez todo instalado (el idioma disponible es ingles) lo que sucede es que en el perfil de CB de cada usuario se agrega un nuevo tab. En esta solapa podemos subir imágenes y agregarle datos a cada una.

Además del componente está disponible un modulo para mostrar en la página principal imágenes al azar entre las que hayan subido los usuarios. Funciona bien este módulo, pero como las imágenes se guardan en el perfil de cada usuario (en la galeria creada por cada usuario) solo se pueden ver si el usuario tiene su perfil publico. Y no es posible crear galerias que no pertenezcan a un usuario.

Mi opinión es que este componente no se adapta a nuestras necesidades ya que no podemos crear galerias que correspondan, por ejemplo, a un torneo.

Seguiremos buscando un componente para imágenes. El próximo a ser evaluado será el Zoom Gallery.

jueves, 19 de julio de 2007

Review de Community Builder

El objetivo de usar Community Builder en Rincon ATFA es extender la funcionalidad del registro de usuario en el sitio, acceder a un perfil del jugador y buscar/ver el perfil de otros jugadores.

Community Builder (CB) es un componente de Joomla! que afecta al registro de usuario, los detalles de usuario, busqueda de usuarios y tiene módulo de conexiones (para contactar un usuario con otro). El objetivo inicial de este producto es ayudar a crear una comunidad con orientación a citas o conexiones entre usuarios.

Nosotros nos quedaremos con las siguientes posibilidades:
  • Registro extendido (nuevos campos)
  • Perfil extendido (se puede agregar mas información en el perfil, una vez registrado el usuario, lo que incluye una foto)
  • Búsqueda de usuarios (en nuestro caso, jugadores) y visualización de su perfil
  • A evaluar el uso de "conexiones" como una forma de solicitar un partido a otro jugador.
Para hacer funcionar CB hay que instalar el componente com_comprofiler y luego los módulos mod_cblogin y mod_comprifilemoderator. También hay que crear un menu y configurar algunas cosas.

En este momento hay dos componentes capaces de registrar un usuario, el que incluye Joomla y el de CB. Lo recomendable es deshabilitar el de Joomla (mod_login) y habilitar el de CB.

Hecho esto, al presionar el link "Registrarse" o "Login" en la página principal, se verá una pantalla un poco más completa (la de Joomla solo pide nombre, login, email y password) y con ayuda sobre que campos son obligatorios y cuales no.

Pero lo interesante de esto es que en el backend (la administración de Joomla) CB nos permite definir cuales serán los campos que se mostrarán y cuales no, y nos permite crear nuevos campos si deseamos. Por ejemplo, podemos preguntar si el jugador es diestro o zurdo, o con que raqueta juega. Toda esta inforamación se guarda en la base de datos y está disponible como parte del perfil del usuario.

No pude encontrar una forma fácil de adaptar la funcionalidad de conexiones a nuestras necesidades (por el momento).

Originalmente CB esta en inglés y hay varias traducciones disponibles (modulos de idioma instalables) como alemán y otros que no recuerdo. En el foro en español de Joomla ( http://joomlaspanish.org/foros/ ) encontre un usuario que se tomo el trabajo de hacer la traducción al español. Si bien no está completo la mayor parte visible de CB está en castellano, aunque aún restar modificar a mano algunos de los títulos de los tabs.

CB muestra el perfil en tabs o solapas. Muestra una con la información básica, otra con información adicional y tiene la posibilidad de agregar solapas con mas funcionalidades. Por ejemplo instalé una galería de imagenes que cada usuario ve en un tab propio, pero que puede verse tambien en el centro de la página (aunque aun no lo probe).

En definitiva, creo que es un componente que nos dará la funcionalidad de armar un perfil del jugador de acuerdo a nuestras necesidades, lo cual es muy útil, aunque no mucho más que eso.

Review de Joomla!

Joomla es un CMS. Después de haberlo instalado en dos servicios de hosting y de forma local, y haberlo probado un tiempo puedo decir:

1) Su instalación es fácil ya que cuenta con pocos pasos y con un asistente. La única información que hay que proveer es la relacionada con la base de datos y con el sitio en si (nombre, ubicación, etc.)

2) Su administración es muy simple. La interfaz de la administración está basada en menúes desplegables y en listas con botones de Edición, Nuevo y Guardar. Es fácil acostumbrarse.

3) La instalación de extensiones es simple, se puede indicar el archivo zip que contiene el instalador y el programa lo sube y descomprime automaticamente, o indicar la carpeta donde estan los archivos descomprimidos.

4) No es facil entender inicialmente que hace cada parte de Joomla! y por lo tanto para que sirve cada extensión:

a. Componente. Es la parte de Joomla que realiza tareas. Joomla incluye componentes para mostrar y administrar banners, para mostrar y administrar noticias, etc. Es posible instalar componentes para el usuario final (que muestre y/o tome información) o para la administración, o –lo más común- componentes que brinden ambos tipos de funcionalidad.

b. Módulo. Es la parte de Joomla encargada de mostrar el resultado de componentes en el sitio web. El componente no muestra la información, es el módulo el que toma la info, la moldea y la muestra en el lugar adecuado. Cada módulo puede estar en diferentes lugares del sitio (encabezado, centro, barra lateral izquierda o derecha, pie, etc.). Es posible instalar módulos adicionales, específico para un nuevo componente, o tener varios módulos para un mismo componente.

c. Mambot. Es un complemento para que el contenido (noticias, articulos) de Joomla reconozca tags o palabras clave como indicador de que hay que mostrar otro tipo de medio. Joomla incluye un mambot para mostrar imágenes cada vez que se use la etiqueta {image} y se puede agregar mambots para mostrar videos, enlazar con calendarios y mucho más. Es común que algunos componentes dispongan de un mambot para instalar, ademas del mismo componente y el módulo.

5) El aspecto visual de Joomla se maneja por Templates. Los templates son programas (php), hojas de estilo (css) e imágenes que juntos definen el aspecto visual y el comportamiento de Joomla (en el sitio web visible por los usuarios ó en la administración). La instalación del módulo es simple. Hay muchos módulos gratis para bajar en internet. La modificación de un módulo no es simple; es necesario conocer PHP y CSS para obtener buenos resultados, además de interiorisarse en la forma en que funcionan los templates.

6) La instalación de Joomla que usé está ya en español. Pero se puede instalar –con la misma facilidad que otras extensiones- archivos de idioma. Con los componentes la cosa cambia. Dependemos del desarrollador de cada componente; si el desarrolló un idioma adicional lo tendremos disponible, sino no.

7) La configuración de los componentes y módulos es simple de realizar, pero el nivel de flexibilidad depende de lo que el autor haya permitido hacer. Para otras modificaciones hay que hurgar por el código PHP. Normalmente los componentes no están documentados por lo que hay que interpretar “a mano” la lógica del programa. Al igual que los templates, es imprescindible conocer como funcionan los componentes (donde estan las clases, como generan la salida, como conecta y consulta la base de datos, etc.) para llegar a buen puerto en una modificación.

8) La disponibilidad de componentes, modulos y templates es muy alta. Hay mucha variedad de productos, pero en la mayoría de los casos será necesario retocar algo para que todo funcione como queremos.

9) La disponibilidad de documentacion tambien es alta. Hay recursos para el usuario, el administrador y el desarrollador y foros que soportan cada una de estas áreas.

10) Creo que el mayor desafío para un sitio que por su funcionalidad requiere el uso de diferentes componente externos es lograr una interfaz homogénea a lo largo del sitio, ya que cada componente puede crear diferentes tipos de tablas, sus propios encabezados, sus menúes, etc.

Secciones del sitio web

ATFA (Blog) [SECTION]
Calendario de torneos (News + Calendario de eventos) [SECTION]
Jugadores (Profiler o Community Builder)
Ranking (Nuevo componente) [SECTION]
Estadisticas (Nuevo componente)
Fotos (Gallery)
Videos (Gallery)
Foro (Blog)
Partidos (Nuevo componente)
Pedidos (Tickets)
Prode (Survey/Poll)
Clubes (Review)


ATFA
Aquí se explica que es atfa, como nació, que proyectos tiene, etc.
Será de tipo blog para ir agregando información sin tener que editar nada.

Calendario de torneos
Separado por Temporadas 2006 y 2007 muestra información de cada uno de los torneos.
Por cada torneo permite:
Ver carácterísticas
Ver inscriptos
Ver cuadro
Ver status
Ver partidos
Inscribirse a un torneo
Link a Administrar partidos

Jugadores
Se ve un listado de jugadores
Se ve el perfil de cada jugador, con ranking y estadisticas, ademas de foto y enlace a un sitio personal si tiene
Cada jugador puede modificar sus datos

Ranking
Ver ranking lista de entradas
Ver ranking carrera de campeones
Ver movimientos del ranking (donde estaba cada jugador en la actualización anterior)
Ver evolución en el ranking para un jugador
Ir al perfil de cada jugador
Ver como se conformaron los puntos de un jugador (cuanto gano en cada torneo).

Estadisticas
Ver Head to Head entre dos jugadores
Ver % de partidos ganados de un jugador
Ver resultados obtenidos en torneos
Ver resultados obtendos por superficies
Ver desempeño en partidos de dobles

Fotos/Videos
Ver albumes o galerias por:
Torneos
Partidos desafio
ATFA Awards
Otras categorias

Partidos
Programar, confirmar o modificar fecha y hora de un partido
Ingresar, confirmar o modificar resultados de un partido

Pedidos
Pedir extensiones de plazo en un torneo
Pedir WO de un partido
Pedir aplicar el reglamento ante alguna situacion especial

Prode
Para cada ronda de cada torneo se permite pronosticar quien ganara cada partido.
Se juntan los puntos de las diferentes rondas de un mismo torneo y se arma un ranking con los participantes.
Se muestra informacion sobre la preferencia de ganador para cada partido

Clubes
Se verá una ficha y opiniones de cada club donde se pueda jugar tenis.
Servirá como guía para encontrar un lugar donde disputar los partidos.


Ejemplo del menú

Menu publico (para visitantes)
ATFA
Torneos
Torneos 2006
Torneos 2007
Ranking
Ranking 2006
Ranking 2007
Jugadores
Perfil
Estadisticas
Fotos
Videos
Foro
Clubes

Menu privado (para usuarios registrados)
Jugadores
Partidos
Pedidos
Inscripcion a torneos
Prode

Proyecto Rincon ATFA

El objetivo del proyecto es desarrollar un sitio web que muestre información del Rincon ATFA y permita llevar adelante las tareas del mismo (inscripcion a torneos, programacion de partidos, visualizacion de ranking, acceso a estadisticas, etc.).

Se decidió hacerlo sobre Joomla! ya que resuelve muchas de las tareas necesarias (publicación y adeministración de información, administración de usuarios, catalogo de productos, etc.) y provee un marco de desarrollo para las funcionalidades que necesitemos crear específicamente.

Detalles sobre las secciones, categorías y funciones que tendrá el sitio se encuentran en el post “Secciones y enlaces que tendra el sitio”.

Para trabajar en el proyecto lo más aconsejable es tener una instalación local de Joomla!. Como Joomla! corre en un servidor web hay que instalar un webserver en la PC. La forma más simple de hacerlo es con XAMP Lite (que integra servidor web Apache, base de datos MySQL, lenguaje de programación PHP y otras herramientas) que ni siquiera es necesario instalar (basta con descomprimir los archivos) y que funciona de manera portable (en un pendrive, como lo uso yo).

Se puede bajar de http://www.apachefriends.org/en/xampp-windows.html

Además –obviamente- necesitamos Joomla!. Se puede bajar la versión 1.012 en español de http://www.joomlaspanish.org

Los pasos son:
1) Instalar Xamp
2) Iniciar el servidor (Xamp-start.exe)
3) Acceder a phpMySQL y crear la base de datos que usará Joomla! Es mejor si todos usamos los mismos datos para la base:
base : joomla
user : joomla_user
pass : rinconatfa
4) Instalar Joomla! (yo uso la carpeta “joomla”). Solo pedira información de la base de datos

Luego, basta con iniciar el servidor y acceder a http://localhost/joomla para tener el CMS andando. A partir de ahí se puede probar instalando templates, componentes, modulos, etc. accediendo al área de administración en http://localhost/joomla/administrator

La mejor forma de aprender a usar Joomla! es con el libro “Building web sites with Joomla!” que está también aquí, en Foldera.

Las tareas que faltan hacer son:

1) Encontrar un hosting donde colocar el sitio web terminado
2) Probar los componentes candidatos a ser usados
3) Configurar y personalizar los componentes y modulos a usar
4) Desarrollar los componentes y modulos necesarios
5) Probar el funcionamiento del sitio completo
6) Diseñar el aspecto visual (concepto) y desarrollar un template

Se aceptan colaboraciones en cualquiera de estas áreas.

Primer Post

Creé este blog con la idea de comunicarnos entre quienes participemos en el armado de un sitio web basado en Joomla! para administrar los torneos de tenis del Rincon ATFA.

-Además es mi primer blog-

Iré posteando los diferentes documentos que ya hemos creado y que muestran los objetivos del sitio, como tenemos pensado hacerlo y lo que estoy escribiendo ahora que son reviews de Joomla y de los componentes que vamos probando.