Curso de Symfony 2 (I): Conceptos fundamentales

Este conjunto de tutoriales tratarán sobre el desarrollo de aplicaciones web con Symfony 2.0
En este primer tutorial trataremos de explicar los conceptos fundamentales del Framework de Symfony 2.0, para que así las siguientes entregas se puedan llegar a entender mucho más facilmente.

El glosario de términos que utilizaremos son los siguientes:

  • HTTP/S: protocolo principal de la web.
  • Petición: información enviada desde el cliente HTTP al servidor.
  • URL: Parte de la petición HTTP que define entre otras cosas el servidor, la ruta el fichero y un conjunto de parámetros.
  • Respuesta: información devuelta por parte del servidor al cliente.
  • Base de Datos: fuente de información estructurada en tablas, campos y relaciones.
  • Modelo-Vista-Controlador: patrón de diseño de aplciaciones de tres capas.
  • Modelo: conjunto de clases y objetos que manejan la conexión y las consultas a la base de datos.
  • Control: conjunto de clases que gestionan y procesan la información y la lógica de negocio de una aplicación.
  • Vista: conjunto de ficheros que componen el apartado visual de una aplicación, con lo que interactúa el usuario.
  • Controlador Principal Web: Clase principal que captura las peticiones entrantes de una aplicación web y pasa el control a las distintas funcionalidades de la aplicación web.
  • Módulo: agrupación de funcionalidades de una aplicación. Una aplicación suele contener distintos módulos. Por ejemplo, la gestión de clientes.
  • Acción: funcionalidad específica de un módulo, por ejemplo, dar de alta un cliente.
  • Plantilla: fichero que permite la generación dinámica de una vista de un módulo, por ejemplo la vista que presenta la información de un cliente.
  • Controlador de Módulo: Clase que implementa las funcionalidades del Control de un Módulo.
  • Bundle o Componente:  conjunto de funcionalidades de alto nivel, podría decirse que es un conjunto de módulos.
  • Framework: conjunto de herramientas y bibliotecas que facilitan la tarea del programados a la hora de desarrollar aplicaciones.

Flujo de la gestión de una petición con Symfony 2

Una de las cuestiones principales a la hora de entender un nuevo framework web, es la manera en la cual se gestionan las peticiones web internamente, de cara a comprender qué pasos van dándose hasta la resolución de una petición.
Gracias al libro de Symfony 2 disponemos de un gráfico revelador respecto al funcionamiento interno de Symfony 2.

Como puede observarse en este diagrama, las distintas peticiones son gestionadas por un Controlador Principal de la Aplicación Web o Control de la Aplicación. Como sucede en otros frameworks, como Spring, todas las peticiones son despachadas por este controlador principal, el cual trata de averiguar que parte de la aplicación debe ser ejecutada para resolver la petición.
La localización de la funcionalidad se realiza a través de un sistema de routing, o mapping, como quiera verse, en el que se relacionan las distintas direcciones URL con las funcionalidades existentes en la aplicación.
Una vez localizada la funcionalidad a ejecutar, se cede el control a un Controlador de módulo el cual ejecuta la Acción específica que resolverá la petición generando una Respuesta.

Componentes principales

Los componentes principales de Symfony 2 son los siguientes:

  • HttpFundation: contiene las clases Request y Response, entre otras
  • Routing: sistema de enrutado de peticiones
  • Form: clases de manejo de formularios y envíos
  • Validator: clases de validación de datos
  • ClassLoader: sistema de carga de clases
  • Templating: sistema de gestión de plantillas
  • Security: herramientas de seguridad
  • Translation: sistema de traducciones

Referencias: 

Symfony 2.0 Book: http://symfony.com/doc/current/book/index.html

Licencia Creative Commons

Curso de Drupal 7 (IX): Módulos

Los módulos en Drupal tienen variadas funciones, tales como añadir nuevos tipos de datos, nuevos tipos de contenido y en general añadir nuevas funcionalidades al sitio web.
Los módulos principales de Drupal se agrupan en una categoría denominada Núcleo (Core), que son aquellos módulos incluidos con la distribución principal de Drupal.

Dependencias

 Las dependecias son una manera de plantear los requisitos de los módulos. Como toda pieza de software, los módulos tienen requisitos, o dicho de otro modo, dependen de la existencia de otras piezas de software, en el caso de los módulos, otros módulos que estén instalados y activados para permitir su correcto funcionamiento.
En la mayor parte de las descripciones de los módulos podemos encontrar debajo del texto descriptivo de la funcionalidad del módulo, un conjunto de listados de módulos que antuan bajo el sistema de dependencias de Drupal.
De esta manera podemos ver de una manera bastante sencilla, que módulos son necesarios para que un módulo pueda activarse y usarse con normalidad, estos módulos se presentarán en la etiqueta “Necesita”.
Por otra parte puede pasar que un módulo sea dependencia de otros módulos, es decir, que sea necesario que esté activado y configurado para poder activar otros módulos. Estos módulos dependientes del nuestro se presentarán bajo la etiqueta “Necesitado por”.
Por ejemplo en el listado inicial de módulos, después de realizar la instalación Standard, puede observarse que el módulo “Comment”, que es el que se encarga de gestionar los comentarios sobre los contenidos del sitio web, “Necesita” para poder funcionar de que los módulos “Text”, “Field” y “Field SQL Storage” estén instalados y activados. Mientras que los módulos “Forum” y Tracker dependen de que el módulo “Comment”esté instalado y configurado.

Listado de módulos

Para ver aquellos módulos instalados en nuestro sitio web debemos pulsar en el enlace “Módulos” dentro de la configuración o en la barra de tareas,así veremos un lisado similar al siguiente…


Como puede observarse accedemos directamente al listado de módulos instalador en nuestro sitio web. Los módulos están estructurados por categorías principales, en este caso en concreto, sólo existe una categoría que es la de Núcleo (Core).
En cada categoría pueden observarse los siguientes campos:

  • Activado: Checkbox que nos permite activar o desactivar un determinado módulo. si se activa podrán usarse las funcionalidades que añade dicho módulo, sino no.
  • Nombre.
  • Versión.
  • Descripción:
  • Operaciones.

Las operaciones disponibles a través de este listado son las siguientes:

  • Activar Desactivar un módulo.
  •  Instalar nuevo módulo.
  • Ayuda.
  • Permisos: así podremos configurar los permisos del sitio web respecto a los roles dados de alta. Ver el punto VII del curso.
  • Configurar: enlace a la configuración del módulo.Como cada módulo es una funcionalidad distinta las capacidades configurables de cada módulo varían de uno a otro. la mayor parte de los módulos Núcleo de Drupal, con configurables, de una u otra manera a través de la barra de tareas.

Activar/desactivar módulos

Se realiza mediante la checkbox presente en cada fila de la tabla del lisatdo de módulos, luego pulsamos en “Guardar configuración”, cuando hayamos terminado de  activar o desactivar módulos. Hay determinadas checkbox que no pueden activarse o desactivarse dentro de en Nucleo. normalmente suele pasar que dichos módulos son los mínimos para el funcionamiento de Drupal.
La activación de módulos instalados requerirá que los módulos de los que depende el módulo que vayamos a activar, estén instalados y activados.

Localización de Módulos

Una de las tareas fundamentales en la generación de un sitio web con drupal es la localización de módulos que cubran los requisitos que tenemos de construcción para el sitio web. La fuente principal para localizar los módulos escritos para drupal es la propia web de Drupal: http://drupal.org/project/modules tal y como se observa en la siguiente captura…

como puede verse, la localización de los módulos en muy similar a la de la localización de los Temas (o Themes).
Disponemos de un buscador donde podemos filtrar por:

  • Categoría del módulo: donde indicamos la funcionalidad principal que buscamos para el módulo.
  • Filtar por compatibilidad: así podemos selccionar la versión de drupal para la que queremos encontrar un módulo.
  • Estado del proyecto: dependiendo del estado actual de madurez del proyecto
  • Cuadro de texto: para buscar por el nombre o la descripción del módulo.
  • Ordenar: de esta manera podemos ordenar los resultados dependiendo de su relevancia, número de instalaciones, etc…

De esta manera podemos observar muy fácilmente cuales son los 10 módulos más usados para la versión 7 de drupal:

  • Views: permite hacer búsquedas sobre contenidos y modificar la presentación de los mismos.
  • Token: permite colocar códigos en los contenidos que tengan una representación de un dato.
  • Pathauto: permite  generar automáticamente los paths para los contenidos principales de drupal.
  • Chaos tool suite: conjunto de apis que permiten la gestión de páginas como paneles.
  • CCK: permite añadir campos personalizados a contenidos.
  • Administration Menu: mejora del menú de administración.
  • Wysiwyg: permite integrar fácilmente un editor visual de código HTML.
  • Date: permite manejar campos de fecha en los contenidos.
  • Google Analytics: sistema de integración de google analytics en Drupal.

Página de un módulo

Usando como ejemplo la página del módulo “IMCE” explicaremos las información relevantes presentes en cualquier página de un módulo…

Como puede observarse a parte del nombre del módulo, su descripciín y el enlace al código fuente. en la página pueden mostrarse más informaciones del módulo, tales como:

  • Capturas
  • Información del proyecto (Project Information): donde pueden verse informacioens importantes, como por ejemplo: El estado del mantenimiento, o el estado del desarrollo, sus categorías, etc..
  • Descargas (Downloads): donde pueden descargarse los ficheros (uno por versión y estado del desarrollo) comprimidos que permiten la instalación del proyecto.
  • Recursos (Resources): aquí normalmente se encuentra el enlace a la documentación.

Cómo elegir una versión del módulo

En este caso, IMCE, al ser un módulo desarrollado desde hace bastante tiempo, dispone de versión para Drupal 6 y para Drupal 7 en su versión “Recommended” o estable. El número de versión de los ficheros permite saber para que versión de Drupal está disponible la descarga, es decir cual descargar para nuestra versión de Drupal.
De esta manera, la versión 7.x-1.5, significa que esta versión está desarrollada para las versiones de Drupal 7.x (siendo x cualquier valor, inicialmente) y se trata de la versión 1.5 del módulo.
Por lo que si queremos instalar el módulo para Drupal 7 deberíamos descargarnos o copiar la URL de esa versión.
Si deseamos descargar el módulo o copiar la URL de instalación, será necesario decidir que con qué versión hacemos, si la versión en Zip o en TGZ. Usualmente los ordenadores windows manejarán más facilmente la versión en Zip, los ordenadores en Linux soportan perfectamente la versión TGZ.
En nuestro caso al estar en un windows elegiremos la versión en Zip para Drupal 7, versión estable, lease: http://ftp.drupal.org/files/projects/imce-7.x-1.5.zip

Instalar un módulo

Desde el listado de módulos tenemos disponible un enlace denominado “Instalar nuevo módulo”, cuando lo pulsamos aparece una pantalla similar a la siguiente…

Como puede observarse, nos ofrecen dos posibilidades para la instalación del módulo: mediante una ruta URL o subiendo el fichero comprimido a través del formulario.
una vez relelnado el campo con la URL o selccionado el fichero comprimido del módulo a través del botón examinar, pulsamos en el botón “Instalar”.
Entonces se verá una barra de progreso de la instalación del módulo y posteriormente, si todo ha ido bien, saldrá una pantalla similar a la siguiente…

Después pulsaremos en el enlace “enable newly added modules” ó “activar los módulos recientemente instalados” y volveremos al listado de módulos, donde podremos ver nuestro módulo instalado…

Licencia Creative Commons

Curso de Drupal 7 (VIII): Personas: Usuarios, Permisos y Roles

Drupal 7 dispone de un sistema de permisos completo que permite cambiar de una manera muy sencilla las operaciones que se permite realizar a los usuarios del sitio web.

El sistema de basa en 3 entidades principales:

  • Usuarios: son las personas que usan la página.
  • Permisos: acciones que las personas pueden realizar.
  • Roles: agrupaciones de personas asociadas a los permisos.

Usuarios

Listado de Usuarios

Para acceder a la configuración de los usuarios pulse en la Configuración->Personas, verá una pantalla similar a la siguiente…

Como puede observarse, se disponen de las operaciones de:

  • Agregar usuario
  • Filtrado del listado de usuarios
  • Operaciones sobre el listado mediante checkbox
  • Editar Usuarios

Añadir/Editar un Usuario

Al pulsar  sobre el enlace de “Agregar Usuario” o “Editar” en la parte derecha de la fila de un usuario nos presentará el formulario siguiente formulario…

Como puede apreciarse en la captura disponemos de los siguientes campos:

  • Nombre de usuario.
  • Dirección de correo electrónico.
  • Dos campos para introducir la contraseña.
  • Estado: donde podremos gestionar si el usuario está activado o está bloqueado, por lo que no podrá autenticarse en el sitio web.
  • Roles: donde podremos seleccionar los roles a los cuales está asignado el usuario y por lo tanto dispondrá de los permisos asociados a dichos roles.
  • Avisar al usuario de la nueva cuenta.
  • Idioma predefinido para el usuario.
  • Opciones de Regionalización: donde podemos elegir la franja horaria en prefijada para el usuario. Sólo presente en el formulario de edición.

Una vez introducidos los datos, pulsamos en el botón “Crear nueva cuenta”  o “Guardar”.
En el formulario de edición también disponemos de otro botón para poder cancelar la cuenta del usuario.

Configuración del Sitio para Usuarios

A través  de la configuración global del sitio web, podremos configurar opciones para la gestión de los usuarios, sobre todo orientados a configuraciones por defecto y opciones permitidas en el sitio.
Para acceder a esta parte de la configuración a través de la barra de tareas pulsamos en el enlace “Configuración” y luego pulsamos en “Opciones de la cuenta”, aparecerá un formulario similar al siguiente…

Donde disponemos de los siguientes campos:

  • Usuarios Anónimos: Nombre: es el nombre utilizado para aquellos usuarios queno estásn registrados pero aún así realizan operaciones dentro de la página, tales como escribir comentarios.
  • Rol del Administrador: selectro de roles donde podemos configurar el nombre del rol que se aplica a la administración del sitio.
  • Creación y configuración de cuentas:
    • Quién puede crear cuentas?: selector que permite decir si se permiten o no los registros de usuarios anonimos y si requieren o no la aprobación de un administrador.
    • Pedir una verificación por correo electrónico sólo cuando un visitante cree una cuenta
    • Al cancelar la cuenta del usuario: permite indicar que sucede con los datos asociados a la cuenta cancelada.
  •  Personalización:
    • Permitir firmas.
    • Activar imágenes de usuario
    • Directorio de imágenes: donde se almacenarán las imágenes de usuario
    • Imagen predeterminada: para lso usuarios que no envíen una suya.
    • Estilo de presentación de la imagen.
    • Dimensiones de la imagen a subir.
    • Tamaño máximo de la imagen a subir.
    • Directrices para la subida de imágenes
  • Bienvenida(nuevo usuario creado por un administrador): para configurar el correo que recibirá el usuario al crear su cuenta por parte del administrador.
  • Bienvenida(pendiente de aprobación): mensaje que se enviará al usuario para indicarle que su cuenta está pendiente de activación.
  • Bienvenida(sin necesidad de aprobación): cuando el usuario se registra pero no está pendiente de aprobación y por lo tanto está activado.
  • Activación de cuenta.
  • Cuenta bloqueada.
  • Confirmación de cancelación de cuenta.
  • Cuenta cancelada.
  • Recuperación de clave.

Permisos 

Para acceder a los permisos, en la Vista de “Personas” pulsamos en la pestaña denominada “Permisos”, así veremos un fomrulario similar al siguiente…

Como puede verse el formulario dispone de todos los permisos categorizados por módulo, para cada fila. Al lado derecho de cada permiso podemos configurar mediante checkboxes si un determinado rol tiene o no tiene permiso para realizar una determianda acción. Si la casilla está desmarcada, significa que dicho perfil no tiene permiso para realizar la acción, si la casilla está marcada significa que sí puede realizar dicha acción.
De esta manera cada columna de un rol pueden visualizarse fácilmente los permisos asociados y modificarlos con simples clics.
Una vez terminados de configurar los permisos, pulsamos en el botón “Guardar Permisos” para cambiarlos y salvarlos.

Roles

Para acceder a la configuración de los Roles, en la pestaña de Permisos, podemos ver un par de botones en la parte derecha superior de la pantalla, pulsamos en el botón Roles y veremos el listado de roles de la siguiente manera…

Como se puede observar disponemos de las siguientes operaciones:

  • Agregar Rol
  • Editar Rol
  • Editar Permisos: asociados al rol.

Añadir Rol

Para añadir un rol disponemos de un formulario integrado en el listado de roles. En el cuadro de texto introducimos el nombre del rol y pulsamos en el boton “Añadir Rol” y debería parecer inmediatamente el nuevo rol en el listado.

Editar o Eliminar Rol

Pulsando sobre el enlace “Editar rol” la lado del nombre del rol en el listado, accedemos al formulario de edición del nombre del rol…

Si deseamos cambiar el nombre del rol, simplemente editamos el cuadro de texto del nombre y pulsamos en el botón “Guardar rol”.
Si deseamos eliminar el rol, pulsamos en el botón “Eliminar rol”.

Edición de permisos de un rol

En este formulario nos saldrá una pantalla similar a la edición de permisos, pero serán sólo los permisos específicos asignados a este rol.

Roles por defecto

En la instalación Standard Drupal nos coloca 3 roles por defecto:

  • Usuarios anónimos: aquellos visitantes de la página que no se han registrado como usuarios, pueden ver todo el contenido publicado.
  • Usuario registrados: usuarios que se han regustrado y autenticado en la página.
  • Administrador: usuarios con permisos de administración.

Los dos primeros roles “Usuarios anónimos” y “Usuarios Registrados” aparecen bloqueados para que no podamos cambiarlos, pero sí podemos cambiar los permisos asociados a dichos roles.

     Referencias

    Licencia Creative Commons

    Curso de Drupal 7 (VII): Apariencia y Bloques

    Una de las cuestiones fundamentales a la hora de preparar un sitio web es evidentemente su apariencia visual.
    En el presente artículo veremos cómo manejar las plantilla o templates en Drupal 7 y cómo configurar la visualización de los bloques en las distintas areas visuales o regiones de cada plantilla.

    Apariencia

    La gestión principal de los temas visuales de Drupal 7 se realiza a través del directorio /sites/all/themes
    Cada carpeta representa los ficheros correspondientes a un tema visual, por que en la adaptación de un tema a nuestras necesidades visuales, principalmente trabajaremos con las carpetas y ficheros correspondientes a este directorio.

    Regiones

    Las regiones son determinadas áreas visuales de un determinado tema que nos permite la asignación de un determinado conjunto de bloques dentro de dicha area visual.

    Configuración de Temas visuales

    Para acceder a la configuración de los temas visuales desde la configuración pulsamos en el botón “apariencia”, así aparecerá el interfaz de gestión de Temas (Templates) similar al siguiente…

    Como se puede observar en este apartado pueden encontrarse todos los temas instalados en el Drupal.
    Primero nos muestra los temas activados, para todo el sitio web y para el apartado de administración. Por otra parte podemos ver los temas desactivados, que son aquellos que están instalados pero no se les está dando un uso en el sitio web.

    Cambiar el Tema de Administración

    En la misma pantalla de configuración de la Apariencia, podemos configurar el tema que deseamos usar en la administración del sitio web…

    como puede verse en la captura se trata de un formulario simple en elq ue disponemos de los siguientes campos:

    • Tema de administración: este selector nos permite elegir el tema que deseamos utilizar en el apartado de la administración. 
    • Usar el tema de administración al editar o crear contenido.

    Una vez configurados los datos pulsamos en el botón de “Guardar Configuración”.

    Localización  de Temas visuales para Drupal 7

    Dentro de la propia página de Drupal podemos buscar temas visuales para nuestro sitio web, que puedan servirnos de base para la adaptación visual de nuestro sitio, a través de la URL: http://drupal.org/project/Themes
    tal como se puede ver en la siguiente captura, disponemos de un interfaz visual que nos permite la búsqueda y localización de dichos temas visuales…

    A modo de práctica, pulsaremos en el tema Zen para ver las opciones que nos ofrece: http://drupal.org/project/zen

    Como pueder observarse en la captura podemos ver la información completa del tema visual:

    • Descripción completa.
    • Contribuidores.
    • Información del proyecto.
    • Descargas.

    De esta manera deberíamos elegir la versión del tema que más se adapte a la versión que usamos de drupal, tal como aparece en la siguiente captura…

    En nuestro caso, sería más recomendable bajarnos la versión estable del tema, que aparece bajo el epígrafe “Recommended versions”, en la captura pueden verse 2 proyectos descargables para Drupal 7 y Drupal 6.
    Esto podemos saberlo a través del número de versión del proyecto descargable.
    En el primer caso aparece el número de versión 7.x-3.1. Esto significa que dicha versión del tema es para la versión 7.x (x siendo cualquier número de versión) de Drupal y 3.1 significa la versión del Tema.
    En el segundo caso aparece el número de versión 6.x-2.1. Esto significa que dicha versión del tema es para la versión 6.x (x siendo cualquier número de versión) de Drupal y 2.1 significa la versión del Tema.
    En nuestro caso la versión más intersante es la 7.x-3.1 que es la versión estable para Drupal 7. Como se puede observar hay disponibles dos ficheros para descargar, esto suele ocurrir con casi todas los proyectos de drupal, una versión en .zip otra en .tgz. En windows preferiremos descargar la versión en .zip por su facilidad de descompresión sin herramientas externas a Windows.
    Como práctica descargaremos esta versión del Tema Zen.

    Instalación de un nuevo Tema Visual

    En la pantalla principal de apariencia pulsamos en el enlace “Instalar nuevo tema” nos aparecerá un formulario similar al siguiente…

    El formulario tenemos dos maneras fundamentalmente de funcionar:

    • Rellenando el campo Instalar desde una URL: donde introducimos la URL del tema que deseamos instalar.
    • Rellenando el campo tipo File, a través del botón “Examinar” buscamos el fichero comprimido del tema, lo seleccionamos y pulsamos el botón Abrir. El procedimiento es muy similar a cuando subimos una foto a una web.

    Como practica intentaremos la instalación del Tema Zen que hemos descargado previamente. Después pulsaremos el botón “Guardar”.
    Nos aparecerá una barra de progreso con la instalación del tema y posteriormente veremos el resultado de la instalación, si ha ido todo correcto deberíamos ver una pantalla similar a la siguiente…

    Como propósito de práctica pulsaremos en el enlace “Enable newly added themes” (Activación de los temas recientemente instalados), con lo que volveremos a la gestión de la apariencia, pero nos aparecerá el tema instalado pero desactivado en el listado de temas…

    Activación/Desactivación de un Tema

    Una vez que estamos en el listado de temas, en los temas desactivados veremos dos enlaces que podemos disponer para cada tema instalado: “Activar” y “Activar y establecer como predeterminado”. Si activamos el tema, podremos configurarlo en el listado de temas activados, si pulsamos la segunda opción no sólo lo activara sino que también colocará este tema como el tema principal, o por defecto de nuestro sitio web.

    Establecer como predeterminado

    Si tenemos un tema activado será necesario para aplicar el tema en todo el sitio web pulsar sobre la opción “Establecer como predeterminado”. O si está desactivado pulsar sobre el enlace “Activar y establecer como predeterminado”.

    Configurar las opciones de un tema (sample pending)

    Bloques

    La configuración específica de bloque podemos enonctrarla en la configuración a través del menu Estructura->Bloques, con una apariencia similar a la siguiente…

      Se esta manera todos los bloques configurados en el sistema pueden llegar a aplicarse a las distintas regiones disponibles en cada tema.
      Como puede observaese para cada tema activado, disponemos de una “pestaña” en la edición de bloques.
      Una vez seleccionado un tema, podremos ver una tabla donde podremos configurar todos y cada uno de los bloques activados y disponibles en el sistema, divididos por casa región. Al final del listado aparecerá todos aquellos bloques desactivados.
      De esta manera podemos con cada bloque asignarlo a una región, bien esté activado o desactivado, cambiarlos de región, o simplemente desactivarlos, asignandolos a la región “ninguno”.

      Referencias:

      Licencia Creative Commons

      Suscríbete al Boletín

      Si quieres estar al tanto de las novedades del blog, ya sabes :)
      * = campo obligatorio

      powered by MailChimp!

      Uso de cookies

      Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información. ACEPTAR

      Aviso de cookies