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.
Taxonomía – Module
                                                   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
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.
Implementación …




  Se crearon los
  términos
  respectivos y su
  parentesco
  (admin.)
Implementación …



… Ahora como         Para esto el módulo
hago para que
 se muestre
                  personalizado me ayudará
como lista y en
   bloque
Implementación …



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 …



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);
Implementación …


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;
 }

Exposicion Akelos

  • 1.
    Taxonomía con Drupal (Proyecto CIES) Ronny Velásquez Sánchez Desarrollador PHP
  • 2.
    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.
  • 3.
    Taxonomía – Module 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
  • 4.
    Implementación … Creación deun 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.
  • 5.
    Implementación … Para lacreació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.
  • 6.
    Implementación … Se crearon los términos respectivos y su parentesco (admin.)
  • 7.
    Implementación … … Ahoracomo Para esto el módulo hago para que se muestre personalizado me ayudará como lista y en bloque
  • 8.
    Implementación … En elmodulo 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 );
  • 9.
    Implementación … Luego functioncies_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());
  • 10.
    Implementación … Finalmente secrearon 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);
  • 11.
    Implementación … 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; }