Curso de Desarrollo de módulos con Drupal 7 (I): Introducción

En las siguientes entregar veremos cómo crear nuevos módulos de Drupal 7. Para realizar la programación utilizaremos Aptana Studio 3 , una distribución basada en Eclipse, como editor de código y gestor de proyectos PHP.
Para comenzar la programación necesitamos disponer de una instalación limpia de Drupal 7 que poder utilizar. Digamos que la hemos instalado en el directorio “c:xampphtdocsdrupaldev”.
Para los desarrollos con Drupal, es altamente recomendable la instalación de los módulos deve, tal como indica la XI entrega del curso de Drupal 7.
Arrancamos Aptana y vamos a realizar la importación del directorio de drupaldev como proyecto de Aptana.

Importación del proyecto en Aptana

Para ello en el “Project Exlorer” pulsamos el botón derecho del ratón y seleccionamos la opción “Import”…

Nos aparecerá una pantalla de selección  de tipo de importación similar a la siguiente…

Nos saldrán distintas opciones, expandimos la opción “General” y seleccionamos la opción “Existing Folder as New Project” y pulsamos en “Next>”, nos aparecerá una pantalla donde deberemos decir qué directorio debemos importar…

A través del botón “Browse…” seleccionamos el directorio de instalación de drupal que queremos importar, seleccionamos el tipo de proyecto “PHP”, ponemos el nombre de proyecto, por ejemplo “drupaldev” y pulsamos en el botón “Finish”. Veremos en el “Project Explorer” cómo ha aparecido una nueva carpeta llamada “drupaldev” que corresponde al proyecto que acabamos de importar…

Si expandimos la carpeta del proyecto podremos ver las carpetas y ficheros que se incluyen en el mismo, cualquier cambio que hagamos desde Aptana se reflejará en el directorio de Drupal y viceversa…

Creando el Módulo: Primeros pasos

 Una vez configurado el proyecto en Aptana, deberemos dar los primeros pasos en la generación del proyecto.
Todas las rutas de carpetas y ficheros serán relativas al proyecto de drupal en aptana. 
Crearemos una carpeta llamada “custom” en el directorio “sites/all/modules” del proyecto, para ello navegaremos por los directorio del proyecto hasta encontrar la carpeta “sites/all/modules” y pulsamos botón derecho encima de la carpeta “modules”, navegamos al menú “New” y pulsamos en la opción “Folder”…

a continuación nos saldrá una ventana en la que podremos selccionar la localización y el nomrbe de la carpeta…

y pulsamos en el botón “Finish”. Veremos que nos aparecerá en el Project Explorer dicha carpeta custom dentro de modules.

Carpeta de módulo y ficheros iniciales

Ahora es cuando debemos decidir el nombre del módulo ya que debemos crear una carpeta con el nombre para almacenar los ficheros del mismo. Pongamos por ejemplo que el el módulo se va a llamar “ejemplo”, por lo tanto deberemos crear una carpeta llamada “ejemplo” dentro de la carpeta custom, tal como describimos anterioremente.
 En el directorio del módulo debemos crear un fichero “info” con la información del módulo, el fichero debe llamarse “[nombredemodulo].info”, en nuestro caso deberá llamarse “ejemplo.info”.
Para ello pulsamos el botón derecho del ratón sobre la carpeta “ejemplo”, navegamos al menú “New” y seleccionamos la opción “File”…

a continuación, nos saldrá la pantalla de localización del fichero…

pondremos el nombre al fichero, en nuestro caso, “ejemplo.info” y pulsamos en “Finish”. Veremos que nos abrirá la edición del fichero recien creado en la parte derecha de la pantalla, el fichero estará vacío…

como puede verse en la captura, existen pestañas en la parte de edición de código, una por fichero abierto para edición.

Notas sobre las vistas de Eclipse(Aptana)

Dichas pestañas pueden cerrarse pulsando en la “X” que aprece al lado del nombre del fichero. Para volver a abrir el fichero para edición, basta con hacer doble clic en el nombre del fichero y veremos que aparecerá de nuevo en la parte de edición.
Si pulsamos doble clic sobre el nombre de la pestaña del fichero se colocará esta “vista” (como se llaman los componentes visuales de Eclipse y Aptana) a modo “pantalla completa”. Si queremos volver al modo de pantalla normal y así poder ver el resto de “vistas” volveremos a pulsar doble clic en el nombre de la pestaña.
Si aparece un * la lado del nombre del fichero es porque el fichero se ha modificado pero no se ha guardado todavía.
Para guardar el fichero bastará con pulsar “Control+S”.

Contenido del fichero .info

El fichero [nombredemodulo].info corresponde a la definición o información del módulo. Indica entre otras informaciones:

  • name: el nombre del módulo
  • description: descripción de las funcionalidades del módulo
  • core: versión de drupal para la que está desarrollado
  • package: nombre del paquete donde irá colocado el módulo
  • stylesheets[]:  ficheros CSS relacionados
  • scripts[]: ficheros JS relacionados
  • dependencies[]: módulos de los que depende el módulo
  • php: versión mínima de PHP para que funcione el módulo
  • files[]: ficheros que están disponibles en el módulo
  • configure: ruta de configuración del módulo

Para nuestro caso rellenaremos el fichero con el siguiente contenido:
name = ejemplo
description = modulo de ejemplo para drupal 7
core = 7.x
package = Plexxoo
php = 5.3
configure = admin/config/ejemplo/settings

Una vez copiado el contenido al fichero, lo salvamos, pulsando “Control+S”o pulsando en el icono del disquete.

Creación de ficheros Suplementarios del módulo

De esta manera el fichero info está configurado, pero tenemos un módulo que no hace nada, para ello deberemos añadir funcionalidades y otros ficheros al módulo y reflejar estos ficheros en el fichero info.
Crearemos 3 ficheros:

  • ejemplo.module
  • ejemplo.install
  • ejemplo.admin.inc

Estos tres ficheros nos servirán de base para el desarrollo del módulo. Ahora los incluiremos en el fichero ejemplo.info añadiendo las siguientes líneas:
files[] = ejemplo.module
files[] = ejemplo.install
files[] = ejemplo.admin.inc

De esta manera Drupal sabrá que tiene esos ficheros suplementarios relacionados con el módulo.
En el fichero ejemplo.module introducimos el siguiente contenido base:

<?php 
/** 
* @file 
* Fichero del módulo de ejemplo para drupal 

* Descripción larga del fichero que entra dentro del módulo de ejemplo de Drupal
*/
?>

El @file indica la descripción de uso del fichero, de cara a la documentación de Drupal.

Los hooks

Drupal se basa en un sistema de conectores para enganchar contra las funcionalidades de los módulos, tales como añadir un menú. Dichos conectores son principalmente funciones consultadas desde Drupal a los distintos módulos activados.
En este ejemplo utilizaremos un hook muy sencillo el “hook_help()”. cuando se habla de la palabra “hook”, en el módulo debe substiruirse con el nombre del módulo. De esta manera será necesario nombrarlo como “ejemplo_help()”.
 El siguiente código deberemos incluirlo en el fichero ejemplo.module dentro del bloque php…
 /**
* Implements hook_help.
*
* Displays help and module information.
*
* @param path
*   Which path of the site we’re using to display help
* @param arg
*   Array that holds the current path as returned from arg() function
*/
function ejemplo_help($path, $arg) {
  switch ($path) {
    case “admin/help#ejemplo”:
      return ‘<p>’.  t(“texto de ayuda del módulo”) .'</p>’;
      break;
  }
}
como pude verse tenemos una función nueva en el fichero que define lo que drupal debe hacer para atender la petición de ayuda sobre el módulo ejemplo.
Todas las funciones hook, pueden tener parámetros de entrada, para poder pasar el contexto en el cual se mueve el módulo y poder interactuar con los parámetros.
En este caso el parámetro principal de $path, que es que determina la ruta a través de la cual se desea acceder al contenido.
Así dependiendo de dicho path tenemos un switch que nos permite ofrecer salidas distintas. En este caso sólo hay un caso, que es que nos ofrece un código HTML de vuelta con el texto de la ayuda.
Dicho texto debería ser traducible ya que se utiliza la función t que permite la traducción de literales por parte de Drupal. Si existe esa traducción para el idioma seleccionado la presenta, sino deja el texto del literal.

Activando el módulo

Una vez realizados todos estos pasos deberemos activar el módulo que hemos creado. Como el módulo ya está instalado, debido a que está ya colocado en el directorio “sites/all/custom/ejemplo” no es necesario realizar la instalación. Para activarlo seguiremos los mismos pasos de activación de un módulo que describimos en la entrega de módulos.
Si accedemos a la Configuración->Módulos veremos nuestro módulo dentro de la categoría “Plexxoo”…

Lo único que tendremos que hacer es activar el módulo y volver a entrar al listado de módulos de la administración, veremos que el módulo está activado y nos aparecerán dos enlaces en la parte derecha del módulo: Ayuda y Configuración.
De momento el único enlace funcional es el de Ayuda, que el único hook que hemos escrito para ese módulo. Si pulsamos sobre él, veremos la siguiente pantalla…

 Como puede observarse desde la captura aparece el texto generado desde la función, así como un enlace a la configuración del módulo. Pero la gestión de la configuración lo veremos en la siguiente entrega.

Referencias:

Licencia Creative Commons

Curso de Drupal 7 (X): Módulos: Views, Wysiwyg y Panels

Views

URL: http://drupal.org/project/views 
Dependencias: ctools
Views es un módulo de drupal que permite generar vistas de contenido a través del propio interfaz de drupal.
Para empezar a funcionar será necesario acceder al menú de administración al enlace de estructura…

como puede verse después de la instalación del módulo y sus dependencias y su posterior activación, nos ha colocado un nuevo enlace en “Estructura” llamado “Views”. Pulsamos en él y accedemos al listado de vistas disponibles…

como puede observarse en la captura nos presentala el listado de vistas así como varios enlaces:

  • Add new View: Añadir nueva Vista
  • Add new view from template: añadir nueva vista desde plantilla
  • Importar.

En esta entrega veremos las bases de este módulo, pero es un móduloq ue ofrece multitud de posibilidades, no descarto hacer una entrega sólo para explicar las opciones avanzadas que ofrece.
Para empezar plsamos sobre el enlace “Add new View” y así accedemos al formulario de alta de una nueva vista…

como puede verse en la captura en este formulario rellenarse los siguientes campos:

  • Título: nos genera a su vez un machine name único, para su referencia interna.
  • Descripción.
  • Show: Este apartado trata de filtar entre todos los datos dados de alta en el sitio web, cuales son aquellos que nos interesa mostrar en la vista. Según vamos seleccionando en los distintos selectores, sus campos van modificándose y adantándose a los datos, para permitir su filtrado, por defecto aparece selccionado contenido.
    • Selector de tipo de Origen de datos: Por defecto, el contenido del sitio web.
    • Selector del tipo de contenido: los distintos tipos de contenido.
    • Tagged by: etiquetas de selección para filtrar los resultados.
    • Sorted by: manera de ordenar los resultados.
  • Create a page: creación de una página asociada a la vista para su posterior referencia.
    • Título de la página
    • Ruta
    • Display Format: para elegir cóm presentar los resultados de la búsqueda.
    • Items to display: número de elementos a presentar por página.
    • Use a pager: utilizar un paginados para los resultados o no.
    • Create a menu link: crear un enlace en un menú.
    • Include a RSS feed: para crear un RSS de los contenidos que se vaya publicando en la vista y se pueda sindicar.
  • Create a Block: por si queremos crear un bloque de contenido para después colocarlo en la apariencia del tema principal.

Cuando terminemos de rellenar los datos pulsaremos en el botón “Continue and edit” y veremos la configuración de la visualización de la vista…

donde podemos llegar a configurar:

  • El formato de salida
  • Los campos a presentar
  • Los criterios de filtrado
  • La manera de ordenar los resultados
  • Las configuraciones de la página
  • El encabezado y pie de página
  • El paginador

cuando hayamos termiando de configurar la vista, pulsamos en el botón “guardar” y ya podremos enlazar dicha vista desde cualquier menu.

Wysiwyg

URL: http://drupal.org/project/wysiwyg
Dependencias: ninguna
Wysiwyg es un módulo de drupal que permite la introducción de contenido mediante varios wysiwyg que están presentes en el mercado.
Tras la instalación del módulo pasaremos a la configuración del mismo a través de configuración del módulo, desde el listado de módulos, en la fila de Wysiwyg, pulsamos en el enlace “Configuración”, tal como aparece en la siguienet captura…

así accedemos a la configuración del modulo, como puede observase, en la captura…

De esta manera podemos ver que no hay ningún editor wysiwyg instalado en el drupal, así que deberemos descargarlo e instalarlo manualmente, según nos indican los textos. Inicialmente nos decantaremos por descarga e instalar el CKEditor. Lo descargarmos desde la url: http://ckeditor.com/download exactamente la útlima versión disponible, en el momento de la redacción de esta entrega es la siguiente: http://download.cksource.com/CKEditor/CKEditor/CKEditor%203.6.3/ckeditor_3.6.3.zip
antes de nada debemos generar un directorio llamado “libraries” dentro del directorio “sites/all” dentro de la instalación de drupal. entonces desacargamos el fichero del CKEditor.
Una vez descargado, descomprimimos el fichero directamente dentro del directorio “sites/all/libraries”, por lo que deberíamos disponer de un directorio llamado “ckeditor” dentro de la carpeta “sites/all/libraries”.
Una vez copiada la carpeta a su sitio, volvemos a entrar en la configuración de Wysiwyg y nos encontraremos con un formulario similar al siguiente…

como puede observarse, podemos elegir de todos los wysiwyg instalados cual es elq ue queremos utilizar para los distintos tipos de formatos de entrada. Seleccionaremos el CKeditor en lso selctores de Filtered HTML y Full HTML y pulsaremos en el botón “Guardar” y aparecerá otra vez el formulario pero con el CKeditor ya seleccionado, en ambos casos y un enlace llamado “editar” y otro llamado “eliminar”.
Con el enlace “eliminar”, conseguiremos de-selecccionar el editor y poder elegir otro para ese formato de entrada.
Con el enlace “editar” podremos selccionar a través de el siguiente formulario…

Las distintas opciones para el editor. fundamentalmente resultan interesantes las de “Buttons and Plugins” donde podemos marcar los botones que queremos que aparezcan en ese formato de entrada en concreto. Una vez configurado el Wysiwyg, pulsaremos en el botón “Guardar”. Apareceremos de nuevo en el formulario de selección de editor.
si todo ha ido correctamente ahora al introducir un contenido que disponga de algún tipo de formato de entrada, como el body de los artículos, dispondremos de este editor si seleccionamos este tipo de formato de entrada…

Panels

URL: http://drupal.org/project/panels
Dependencias: ctools
Panels es un módulo que permite la genración de zonas visuales en una página.

Después de instalarlo, para acceder a la configuración de panels, entraremos a través del menú de Configuración-> Estructura, donde aparecerá un nuevo enlace llamado “Panels”…

 donde accedemos al apartado de dar de alta un nuevo panel…

como puede verse nor ofrecen distintas posibilidades de dar de alta un panel:

  • Mini Panel
  • Panel node:
  • Custom Layout

En esta entrega, elegiremos  “Panel Node” y veremos la configuración del panel…

dependiendo del diseño que elijamos a través del selector, nos presentará unas plantilla u otras distintas para elegir…

En el ejemplo, elegiremos “2 columnas” y “2 Column Bricks” y nos presentará el siguiente formulario…

Con los siguientes campos:

  • Título
  • Id CSS
  • Renderer:
    • Standard: ve normalmente la página.
    • In place editor: permite a usurios privilegiados (con permisos suficientes) para cambiar o actualizar lso contenidos de los paneles.
  • Las opciones típicas de un contenido.

Después de seleccionar las opciones deseadas, pulsaremos sobre el botón “Guardar”, entonces veremos la vista de dicho panel y podremos configurar su visualización y su contenido…

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

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