miércoles, 4 de abril de 2012

Display Suite, Menu Icons, Login colapsable

En Drupal 6:
  • Usando Display suite, Node displays, al usar un layout (dividido en header, left, middle, right y footer), puede ser que lo que se coloca en left sea más ancho que el supuesto (25%) y oculte parte del middle, y parezca que el middle está vacío.
    Se puede solucionar corrigiendo el estilo de esas regiones, como en:
    .node-type-producto .nd-region-left {
      width: 383px;
    }
    .node-type-producto .nd-region-middle {
      margin-left: 383px;
    }
    
  • Una manera de poder mostrar iconos en un menú es implementando theme_menu_item_link() en el template.php del tema para que se interprete el texto del menú como ruta de una imagen si es que sigue cierto patrón. Por ejemplo:
    // themes/ttt/template.php
    /**
     * Implementation of theme_menu_item_link().
     */
    function omega_arenart_menu_item_link(&$link) {
      // idea: http://chrisshattuck.com/blog/how-use-images-menu-items-drupal-simple-preprocessing-function
      // if title is image path, use it as image
      $image_extensions = array('.png', '.gif', '.jpg');
      if (in_array(substr($link['title'], -4), $image_extensions) !== FALSE) {
        $link['title'] = '<img alt="' . $link['description'] . '" title="'. $link['description'] . '" src="'. url(path_to_theme() . '/' . $link['title']) . '" />';
        $link['localized_options']['html'] = TRUE;
      }
      return l($link['title'], $link['href'], $link['localized_options']);
    
    Referencia:  How to use images for menu items in Drupal with a simple preprocessing function
  • Otra manera de poder mostrar iconos en un menú es usando el módulo Menu Icons. Provee una interfaz para subir el archivo de cada icono, o incluso usar imagecache.
    En el readme del módulo indica la manera de ocultar el texto de un item de menú usando CSS.
    Noté un warning al refrescar el cache (drupal cc all):
    WD imagecache: Cached image file                             [warning]
    sites/default/files/imagecache/menu_icon/menu_icons/menu_icon_574.png
    already exists but is being regenerated. There may be an issue with
    your rewrite configuration.
    
    Luego de eso no aparecían los iconos. Se solucionó luego de que entré a uno de los items y volví a grabar.
    El problema parece solucionarse aplicando el patch comentado en CSS (cache) files not automatically rebuild
  • Para tener un Login con caja colapsable, se puede instalar el módulo LoginToboggan. Luego, ir al bloque del Inicio de Sesión, ocultar su título e indicar que el bloque sea colapsable.
    Referencia:  Twitter style Login box for Drupal