Al fín, Hello World!

Siguiendo la guía de un libro había hecho un par módulos, pero sin entender realmente lo que hacía.

Ayer asistí al Drupal Camp Perú 2010. En la conferencia de Fernando P. García, "Cómo hacer tu primer módulo en Drupal 6", él siguió un enfoque algo diferente al que había visto en los libros. Partió de lo que quería que apareciera en la página, dada una ruta, y cómo sería el módulo para lograrlo. Usó el hook_menu().

Hello World!
Basado en el módulo que mostró Fernando, practiqué en casa hacer un módulo que simplemente dijera 'Hello World!'. Por alguna razón, cuando eso me resulta me siento más seguro para poder continuar :)

Lo que deseo es un módulo que, al ingresar a la ruta helloworld, muestre 'Hello World!'.

En el directorio modules apropiado, creé el directorio helloworld, y dentro los archivos helloworld.info y helloworld.modules.

helloworld.info
name = Hello World
description = Hello World module
core = 6.x

helloworld.module

/**
 * Implementation of hook_menu().
 */
function helloworld_menu() {
    $items['helloworld'] = array(
        'title' => 'Hello World',
        'page callback' => 'helloworld_page',
      'access arguments' => array('access content'),
    );
    return $items;
}

function helloworld_page() {
    return 'Hello World!';
}

Me interesó revisar la lista de módulos (admin/build/modules) mientras se hacía esto. Para que aparezca el item correspondiente al nuevo módulo es necesario tener el .info con su contenido y el .module, no importa vacío.
Una vez definido el .module, es necesario limpiar el cache (por ejemplo entrando a admin/settings/performance, Clear cached data), para que se refleje el cambio al acceder al url http://localhost/drupal/helloworld, donde drupal es el nombre de mi site en este caso.

Hello You!

Lo que deseo es un módulo que, al ingresar a la ruta hello/Antonio, muestre 'Hello Antonio!'.

En el directorio modules apropiado, creé el directorio hello, y dentro los archivos hello.info y hello.modules.

hello.info
name = Hello
description = Hello module
core = 6.x

hello.module

/**
 * Implementation of hook_menu().
 */
function hello_menu() {
  $items['hello'] = array(
    'title' => 'Hello',
    'page callback' => 'hello_page',
    'access arguments' => array('access content'),
  );
  return $items;
}

function hello_page($name='World') {
  return 'Hello '.$name.'!';
}

Una vez definido el .module, es necesario limpiar el cache (por ejemplo entrando a admin/settings/performance, Clear cached data), para que se refleje el cambio al acceder al url http://localhost/drupal/hello/Antonio, donde drupal es el nombre de mi site en este caso.

Comentarios

Entradas populares de este blog

Debug con Xdebug y Aptana (y Notepad++)

Drupal sí, drupal no

CSS3 para mejorar el breadcrumb de un tema Zen