Views

RECU-0299 (Recurso Ficha Técnica)

Descripción

El módulo Views ofrece la posibilidad de generar la estructura de contenidos de forma personalizada. Permite que se filtre y organice el contenido de la forma que se desee.

Ejemplo de uso

Digamos que se necesita una lista desplegable compuesta por una vista que funciona como una ayuda a la navegación; es decir, cada vez que se selecciona una entrada (probablemente un nodo) la página correspondiente (de ese nodo) se está cargando.

Este ejemplo resume la solución mediante la creación del módulo

<?php
function phptemplate_views_view_unformatted__info_center_items($view, $options, $rows, $title){

  $form = drupal_get_form('jump_view_form', $view, t('CHOOSE AN ITEM'));

  return $form;
}

function jump_view_form($form_state, $view, $initial_label){

  drupal_add_css(drupal_get_path('module', 'jump_view') .'/jump_view.css');
  // add the jQuery code which hides the 'Go' button and submits the form on change
  drupal_add_js ('
    $(document).ready(function(){
      $("input.edit-submit-jumpmenu").addClass("hidden");
      $("#edit-nid-'.$view->name.'").change( function () {
        this.form.submit();
      });
    })
  ','inline');


  $options = array();
  $options[0] = $initial_label;
  foreach( $view->result as $node ) {
    $options[$node->nid] = _filter_url_trim($node->node_title, 35);  // Just to trim titles longer than 35 chars
  }
 
  $form['#id'] = 'jumpmenu-'.$view->name; // give it a unique name, in case you want to have more than one on a page
  $form['#attributes'] = array('class' => 'jumpmenu-form', 'name' => 'jumpmenu-'.$view->name ); // again - for uniqueness and styling
  $form['nid-'.$view->name] = array(
    '#type' => 'select',
    '#options' => $options,
    '#id' => 'edit-nid-' . $view->name,
    '#class' => 'jumpmenu-item',
  );
  $form['view_name'] = array( // again - allowing for multiples on a page
    '#type' => 'value',
    '#value' => $view->name,
  );
  $form['submit'] = array( // the go button, which will be hidden via jQuery
    '#id' => 'edit-submit-jumpmenu-' . $view->name,
    '#attributes' =>  array('class' => 'edit-submit-jumpmenu'),
    '#type' => 'submit',
    '#value' => t('Go'),
  );
 
  return $form;
}

function jump_view_form_submit($form, &$form_state) {
  $form_values = $form_state['values'];
  if ( @$form_values['nid-'.$form_values['view_name']] && is_numeric($form_values['nid-'.$form_values['view_name']]) ) {
    drupal_goto('node/'.$form_values['nid-'.$form_values['view_name']]);
  }
}
?>

Ventajas e inconvenientes

La mayor utilidad de las vistas aparece cuando necesitamos crear tipos de contenido personalizados mediante CCK. A través del interfaz de usuario del módulo Views podemos filtrar el contenido que pertenezca a uno o varios tipos de contenido y generar listados. Necesita hacer uso del módulo si:

  • Le gustaría una página de inicio personalizada
  • Le gustaría una taxonomía personalizada
  • Utiliza un tracker pero quiere limitar los mensajes de un determinado tipo
  • Le gustaría la idea de tener un módulo para manejar artículos pero quiere personalizarlo
  • Le gustaría marcar contenido como no leído
  • Mostrar información sobre algo y sus comentarios más recientes.

Requisitos e incompatibilidades

Es necesario instalar el el modulo Advanced Help para leer la documentación del módulo

Contenidos relacionados

Pautas
Área: Desarrollo » Librerías y Módulos » PHP
Código Título Tipo Carácter
LIBP-0351 Módulos para Drupal Libro de pautas Directriz Recomendada