Hero

Como crear una taxonomía vía código en Drupal 7

Junio 04, 2013

estebanvalerioh
PHP
Programación
Drupal
Desarrollo de Modulos

El módulo Taxonomy que viene con el core de Drupal, nos permite organizar nuestro sitio de muchas formas diversas.

Recién instalado Drupal, el módulo ya viene habilitado y por defecto crea una taxonomía, como lo vemos en la siguiente imagen:

taxonomy1 0

Muchas veces nuestro sitio se conecta con otros servicios que nos devuelven listas de términos o nuestros módulos customizados generan listas que queremos poner en una taxonomía, pero pensar en ingresar más de 100 términos puede ser tedioso. Les presento una forma de crear una taxonomía de forma programada:

  1. Definir la fuente de datos.

Para este ejemplo, hice una función que me retorna una lista de marcas de autos:

function pruebas_marcas_carros() {
  return array(
    'Toyota',
    'Ford',
    'Volkswagen',
    'Fiat',
    'Honda',
    'Chevrolet',
  );
}
  1. Crear taxonomía y términos.

La siguiente función creara nuestra taxonomía: y los términos asociados a ella.

function pruebas_crear_taxonomia() {
  // Creo el vocabulario.
  taxonomy_vocabulary_save((object) array(
    'name' => 'Marcas de Carros',
    'machine_name' => 'marcas_carros',
  ));

  // Obtengo el Id del vocabulario recién creado.
  $vid = taxonomy_vocabulary_machine_name_load('marcas_carros')->vid;

  // Creo los términos de la taxonomía.
  $terminos = pruebas_marcas_carros();
  foreach ($terminos as $id => $nombre) {
    taxonomy_term_save((object) array(
      'name' => $nombre,
      'vid' => $vid,
    ));
  }
}

Dentro de la función llamamos a las funciones taxonomy_vocabulary_save y taxonomy_term_save con los parámetros adecuados para la creación de vocabularios y términos.

Llamando la función pruebas_crear_taxonomia() una única vez, nos va a generar la taxonomía en nuestro sitio, como vemos en las siguientes imágenes:

taxonomy2 1 taxonomy3 0

Y de esta forma, podemos utilizar nuestra lista, con toda la funcionalidad que ofrece el módulo Taxonomy.

Saludos!

Recibe consejos y oportunidades de trabajo 100% remotas y en dólares de weKnow Inc.