Taxonomía con Drupal
(Proyecto CIES)
Ronny Velásquez Sánchez
Desarrollador PHP
Taxonomía – Module Taxonomy
Taxonomy = Clasificación
Taxonomy es un método de organizar el contenido de un sitio. Por ejemplo clasificar la música por género, para este proyecto surgió la necesidad de clasificar cursos.
En drupal 6 podemos administrar en Administre >> Content Management >> Taxonomy.
El módulo Taxonomy se organiza en vocabularios que se componen de uno o más términos. Vocabularios son grupos de términos que describen el aspecto de un nodo.
Luego de crear un vocabulario (o más) procedemos a crear los términos que se van a asociar con estos vocabularios.
Al crear un nuevo término, Drupal le asigna un número. Y se le puede llamar a todos los artículos clasificados dentro de ese término, llamando por su número, por ejemplo: taxonomy/term/4
Taxonomía – Module Taxonomy
Implementación …
Creación de un módulo personalizado (cies) en: proyecto/sites/default/modules/cies.
Tener en cuenta que los módulos se agregan dentro de la carpeta sites/default/modules y para multi sites en sites/all/site1/modules, etc.
Para este proyecto se usaron los siguientes módulos: admin_menu, captcha, cck, filefield, jquery_plugin, jquery_update, rotor, cies (personalizado), taxonomy (core).
Se modificó un tema para el proyecto.
Implementación …
Para la creación del modulo se crearon los archivos: cies.info, cies.install y cies.module.
En interfaz gráfica se comenzó a crear los vocabularios y la lista de términos con sus dependencias.
Se crearon los términos respectivos y su parentesco (admin.)
Implementación …
Implementación …
… Ahora como hago para que
se muestre como lista y en
bloque
Para esto el módulo personalizado me ayudará
En el modulo creamos funciones y hooks:Primero function cies_menu() para definir los menús así:
$items['categories'] = array('page callback' => 'cies_show_categories','access callback' => 'cies_perms','access arguments' => array(TRUE),'type' => MENU_CALLBACK
);
Implementación …
Implementación …
Luego function cies_block($op = 'list', $delta = 0), donde definimos un bloque para nuestra función que dibujará la taxonomía, así:
$blocks[0] = array('info' => t('Categorias Cies'), 'cache' => BLOCK_NO_CACHE, 'region' => 'content_left');
$blocks = array('content' => cies_show_categories());
Implementación …
Finalmente se crearon dos funciones cies_build_categories() y cies_show_categories() (lista las categorías)
Lo más resaltante que se utilizo aquí es que se utilizó por ejemplo:taxonomy_get_tree($vid = $value['vid'], $parent = 0, $depth = -1, $max_depth = NULL);
$path = 'node/'.$node_id;
drupal_get_path_alias($path, $language);
function cies_show_categories() {// The categories listed$tree_category = cies_build_categories();
$data = '';if (!empty($tree_category)) { foreach ($tree_category as $value) {
$data .= $value;}
}return $data;
}
Implementación …