2009-04-15 83 views
6

我正在尋找一個模塊,可以在Drupal中創建站點地圖,但找不到任何。我試過Site Map模塊,但它只能生成一個站點地圖頁面;它不能在每個頁面的末尾創建一個站點地圖塊。我也嘗試過site menu module,但它也不能創建如上所示的站點地圖塊。Drupal站點地圖模塊

也許這只是我不知道如何配置,但我閱讀每個自述文件,並嘗試了幾天,仍然無法讓它工作。

任何人有任何想法?

回答

11

我有同樣的問題,嘗試一個模塊(網站地圖)後,但缺少自定義選項,我寫了一個自定義模塊。花更少的時間,然後與站點地圖模塊搞亂,只是得到一個站點地圖下面的代碼就足夠了(適應你的菜單):

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

我的想法是使用Views模塊自定義塊類型。

1

類似Auto Menu也可能適合你。您可以簡單地將它生成的菜單添加到首頁的頁腳塊。

+0

不幸的是自動菜單不適用於Drupal的6 :( – Graviton 2009-06-04 16:02:07

1

在安裝站點地圖模塊,這個PHP代碼將打印網站地圖。

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

您可以創建一個空的視圖塊並指定上面的空文本,選擇PHP代碼輸入格式。

可能有更好的方法來創建自定義塊來顯示php代碼,但我不知道它。

0

我想你可以從Menu block模塊中受益。因爲您可以爲頁腳中需要的所有菜單創建菜單塊。然後,可以使用小型面板塊(來自panels模塊)將它們全部添加到頁腳或一個塊中。

0

這是最好的回答有點國防部它使用當前主題以顯示層級

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

被列爲菜單項不依賴於內容的簡單解決方案可通過以下方式實現:

創建新的視圖

輸出作爲塊

使用字段:

內容標題(被配置爲「鏈接此字段爲原始內容片段」

內容類型(配置成「從顯示中排除」)

格式化爲

未格式化的列表與設置 - 分組字段Nr.1選擇內容:類型;內容:發佈(是) 內容類型 - 配置爲選擇您希望包含的內容類型;

排序標準 - 配置,按您的喜好