Compartiendo conocimiento y experiencias

Cómo crear un módulo en Drupal 6

categoría:

Cuando creamos un módulo propio o instalamos un módulo nuevo en Drupal debemos ponerlo en sites/all/themes sites/all/modules

En nuestro caso se va a llamar slx.

Paso 1. Crear el fichero slx.info

Debe ser un fichero de texto plano y con el siguiente contenido:

;$Id$ name = "Módulo Solucionex" description = "Funcionalidades específicas" core = 6.x php = 5.1

name y description aportan información a Drupal y se muestra en el listado de módulos.

core y php son nuevas en Drupal 6. core indica la versión mínima necesaria de Drupal y php la versión mínima requerida de php. (php es opcional)

Paso 2. Crear el fichero slx.module

En este fichero comenzaremos a programar con php y las funciones de Drupal. Debemos seguir rigurosamente los estándares de codificación y documentación. (http://drupal.org/coding-standards)

// $Id: slx.module,v 1.0 2009/07/10 11:35:44 bor Exp $

El $Id utilizado para el control de versiones. Nombre del módulo y versión, fecha

En este caso añadimos el código necesario para modificar el formulario de búsqueda de Drupal. Mediante un form_alter. Cambiamos el comportamiento del formulario.

Este es un ejemplo en el que explicamos lo básico en la creación de un módulo. El código es muy sencillo. En los módulos normalmente utilizaremos los diferentes hooks de Drupal.

 function nombremodulo_form_alter($formid, &$form) { if ($form_id == 'search_block_form'){ $form['search_block_form_keys']['#title'] = 'Buscar'; } }

Nota: En Drupal 6 la función form_alter ha cambiado: hook_form_alter(&$form, $form_state, $form_id)

Paso 3. Instalar el módulo

Copiar el módulo a sites/all/modules o a sites/nombre-del-sitio/modules por nuestra experiencia recomendamos utilizar siempre sites/all/modules

Activar el módulo. En Administrar / Construcción del sitio / Módulos (admin/build/modules) se listan los módulos disponibles. Si hemos copiado correctamente nuestro módulo debe aparecer en el listado, y pulsaremos en el check Enabled o activado y pulsamos guardar.

Nota: si alguna vez al enviar o al entrar en la página de módulos se queda en blanco y no aparece nada o te produce algún error puede ser porque es una operación que necesita bastante memoria del servidor y puede que la configuración de PHP no tenga suficiente.

A partir de que esté activado la funcionalidad definida en el fichero .module estará disponible.

 

Gracias Raul

Necesito justamente esto para mi proyecto.

Corrección

El módulo hay que ponerlo en sites/all/modules, no themes.
Pequeña errata...

Sugerencia

Segun mi experiencia, esta todo bien salvo lo siguiente:

Cuando creamos un módulo propio o instalamos un módulo nuevo en Drupal debemos ponerlo en sites/all/themes

Esta es la carpeta para los temas, para los modulos deben colocarlo en ponerlo en sites/all/modules

muy bueno

jeje muy bueno el minitutorial para comenzar a desarrollar módulos...gracias xD

Pregunta ?

como haria para crear paginas desde un modulo de drupal....que hook utilizaria?????

Depende de la página

Como la mayoría de las cosas en Drupal se pueden hacer de varias maneras. Para hacer una página desde un módulo podemos añadir en el hook_menu una nueva opción en el array indicando url, título y con callback la función a la que queremos llamar. Dentro de esa función hacemos theme de la información que queremos mostrar, una vista, una consulta a base de datos, un mensaje, etc.

Con esto por ejemplo se crea una página desde el módulo.

$items['pagina'] = array(
'title' => t('Example page'),
'page callback' => 'page_example_1',
'access arguments' => array('access'),
);

function page_example_1() {
return 'Páginad e prueba';
}

Sobre tablas

Hola , necesito de su ayuda , estoy implementando un sitio en drupal 6 y necesito extraer los datos que inserté en la BD , y no se de que manero puedo mostrarlos en una tabla dinámica , el problema es a la hora de hacer la tabla para mostrar estos datos . Le Agradecería mucho si me pudieras ayudar ...Gracias de Antemano..
Saludos Alexey.

Tablas de datos

Hola, para mostrar los datos recuperados de base de datos Drupal tiene la función de la api theme_table($header, $rows, $attributes = array(), $caption = NULL)

Este es el enlace a la página http://api.drupal.org/api/function/theme_table/6

En una función en el template (por ejemplo) o en un módulo haces la consulta sql que recupera los datos y llamas a esta función.
Se trata de componer en $header la cabecera y en $rows un array con los datos.

Hola amigo mil gracias me

Hola amigo mil gracias me sirvió de mucho..
saludos

Confortable, el artículo es

Confortable, el artículo es en realidad la más fresca sobre este tema digno de mención. I armonizar con sus conclusiones y esperará impacientemente a sus actualizaciones de

entrada. Decir gracias no sólo será suficiente, por la claridad tremenda en su escrito. De inmediato le toma el feed RSS para estar informado de cualquier actualización. Trabajo

gratificante y mucho éxito en sus emprendimientos laborales!

bonus poker

Creando módulos

Hola estoy o mejor dicho tengo que crear un módulo que permita a un tipo de usuario determinado crear una serie de digamos temas(que serían páginas con contenido) y estos temas deben aparecer en la pagina principal un enlace a ellos. Es decir debería crear nodos,no?? como haría eso desde un módulo???

saludos

Cómo crear nodos desde un módulo

Hola, espero haber entendido tu pregunta. La idea es crear nodos desde el módulo.

Dependiendo de en que momento o respondiendo a que acción debes poner este código en una función hook o en otra. Por ejemplo puedes ponerlo en el hook cron y que se creen al lanzar el cron.

Para generar un nodo este código te puede servir de ayuda:

$node = new StdClass();
$node->created = time();
$node->changed = $node->created;
$node->type = 'noticia';
$node->title = 'titulo de la noticia';
$node->promote = 1;
$node->sticky = 0;
$node->revision = 0;
$node->uid=26;
$node->name='nombre del usuario';
$node->teaser = '';
$node->validated = 1;
$node->is_new = 1;
node_save($node);

Enviar un comentario nuevo

El contenido de este campo se mantiene privado y no se mostrará públicamente.
  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.
  • Etiquetas HTML permitidas: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Saltos automáticos de líneas y de párrafos.

Más información sobre opciones de formato


Comentarios recientes

Apoyamos

Drupal Association

Drupalcamp Bacelona 2010

Cáceres 2016