2009-04-15 15 views
6

Estoy buscando un módulo que pueda crear un mapa del sitio en Drupal, pero no pude encontrar ninguno. Probé el módulo Site Map, pero solo puede generar una página de mapa del sitio; no puede crear un bloque de mapa de sitio al final de cada página. También probé site menu module, pero tampoco puede crear un bloque de mapa de sitio como se muestra arriba.Drupal Site Map Module

Quizás es solo que no sé cómo configurar, pero leo cada archivo Léame, y lo intenté durante unos días, todavía no puedo hacerlo funcionar.

¿Alguien tiene alguna idea?

Respuesta

11

Tuve el mismo problema, después de probar un módulo (site-map) pero faltaban opciones de personalización Escribí un módulo personalizado. Tomó menos tiempo, entonces jugar con el módulo de mapa del sitio, para apenas conseguir un mapa del sitio el siguiente código es suficiente (adaptar su menú):

function sitemap_render_menu ($menu) { 
    $output = "<ul>"; 
    foreach ($menu as $item) { 
    $link = $item["link"]; 
    if ($link["hidden"]) { 
     continue; 
    } 

    $output .= "<li><a href=\"" . check_url(url($link["href"], $link["options"])) . "\">" . $link["title"] . "</a></li>"; 

    if ($item["below"]) { 
     $output .= sitemap_render_menu($item["below"]); 
    } 
    } 

    $output .= "</ul>"; 
    return $output; 
} 

function sitemap_content() { 
    $output = "<h1>Sitemap</h1>"; 
    $output .= "<span id=\"sitemap\">"; 
    $output .= sitemap_render_menu(menu_tree_all_data("your-menu")); 
    $output .= "</span>"; 
    return $output; 
} 


function sitemap_menu() { 
    $items = array(); 

    $items["sitemap"] = array (
     "title" => "Sitemap", 
     "page callback" => "sitemap_content", 
     "access arguments" => array("access content"), 
     "type" => MENU_CALLBACK); 

    return $items; 
} 
0

Mi idea aquí es utilizar el módulo Views con un tipo de bloque personalizado.

5

Hay una comparación básica de módulos mapa en http://groups.drupal.org/node/15980

he utilizado sitemenu y funcionó para mis necesidades, pero la verdadera respuesta depende de cómo se estructura su sitio con los tipos de taxonomía, contenido, etc.

1

Algo como Auto Menu podría funcionar para usted aquí también. Simplemente puede agregar el menú que genera a un bloque de pie de página en su página principal.

+0

Desafortunadamente el menú automático no está disponible para Drupal 6 :( – Graviton

1

Con el módulo Mapa del sitio instalado, este código php imprimirá el mapa del sitio.

<?php echo theme('site_map'); ?> 

Se puede crear un bloque de puntos de vista vacía y especificar el anterior para el texto vacío, seleccionar el formato de entrada de código PHP.

Puede haber una mejor manera de crear un bloque personalizado para mostrar el código php, pero no lo sé.

0

Creo que puede beneficiarse del módulo Menu block. como puede crear bloques de menú para todos los menús que necesita en el pie de página. Luego puede agregarlos todos en pie de página o en un bloque usando el bloque minipanels (del módulo panels).

0

Esto es un poco de la MOD de mejor respuesta que utiliza el tema actual para mostrar la jerarquía

function sitemap_render_menu ($menu) { 

    $output = "<ul class='menu'>"; 

    foreach ($menu as $item) { 
     $link = $item["link"]; 
     if ($link["hidden"]) { 
      continue; 
     } 

     $cc=($item["below"]) ? "class='collapsed'" : ''; 

     $output .= "<li $cc><a href=\"" . check_url(url($link["href"], $link["options"])) . "\">" . $link["title"] . "</a>"; 

     if ($item["below"]) { 
      $output .= sitemap_render_menu($item["below"]); 
     } 

     $output .= "</li>"; 

    } 

    $output .= "</ul>"; 
    return $output; 
} 

function sitemap_content ($title,$menu) { 
    $output = "<h1>$title</h1>"; 
    $output .= "<span id=\"sitemap\">"; 
    $output .= sitemap_render_menu(menu_tree_all_data($menu)); 
    $output .= "</span>"; 
    return $output; 
} 


function sitemap_menu() { 
    $items = array(); 

    $items["sitemap"] = array (
     "title" => "Sitemap", 
     "page callback" => "sitemap_content", 
     "access arguments" => array("access content"), 
     "type" => MENU_CALLBACK); 

    return $items; 
} 

print sitemap_content("Navigational menu","Navigation"); 
0

Una solución simple que no dependa de contenido que se incluye como un elemento de menú que puede lograrse por:

Creación de una nueva vista

de salida como un bloque

Uso de los campos:

del contenido del título (configurado a "Enlace este campo a la pieza original de contenido"

tipo de contenido (configurado a "Excluir de pantalla")

Formato como

lista no formateado con la configuración - Grupo de agrupamiento Nr.1 ​​seleccionar Contenido: Tipo;

Filtro Criterea: Contenido: Publicado (Sí) Tipo de contenido: configure para seleccionar los tipos de contenido que desea incluir;

Criterios de ordenamiento - Configurar según su preferencia