2009-04-15 11 views
6

Drupalでサイトマップを作成できるモジュールを探していますが、見つかりませんでした。私はSite Mapモジュールを試しましたが、サイトマップページを生成することしかできません。すべてのページの最後にサイトマップブロックを作成することはできません。私もsite menu moduleを試しましたが、上記のようにサイトマップブロックを作成することはできません。Drupalサイトマップモジュール

設定方法はわかりませんが、すべてのreadmeファイルを読んで数日間試してみても、動作させることはできません。

誰でも知っていますか?

答えて

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モジュールをカスタマイズしたブロックタイプで使用することです。

5

など、

あり、私はsitemenuを使用している http://groups.drupal.org/node/15980

でサイトマップモジュールの基本的な比較があり、それは私のニーズのために働いたが、本当の答えは、あなたが分類、コンテンツタイプを使用してサイトを構築する方法に依存します

1

Auto Menuのようなものがここでもあなたのために働くかもしれません。生成したメニューをフロントページのフッターブロックに追加するだけです。

+0

残念ながら、自動メニューはDrupal 6では使用できません。 – Graviton

1

、このPHPコードが印刷されます(あなたのメニューを適応させる)、その後に短い時間だけ、次のコードは十分にあるサイトマップを取得するために、サイトマップモジュールをいじりを取りましたサイトマップ。

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

空のビューブロックを作成し、空のテキストに対して上記を指定して、PHPコード入力フォーマットを選択することができます。

PHPコードを表示するカスタムブロックを作成するより良い方法があるかもしれませんが、わかりません。

0

Menu blockモジュールのメリットがあると思います。フッタに必要なすべてのメニューのメニューブロックを作成することができます。次に、ミニパネルブロック(panelsモジュール)を使用して、すべてをフッターまたは1ブロックに追加できます。

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

コンテンツに依存しない簡単な解決策は、メニュー項目として含まれているを表示するために、現在のテーマを使用して、最良の答えを少しMODです:

出力フィールドを使用してブロック

として新しいビューを作成:

コンテンツのタイトル(コンテンツタイプ(「表示から除外」するように設定)

書式設定で

未フォーマットのリストとして「コンテンツのオリジナル作品に、この分野のリンク」に

を設定して - グループ化フィールドNr.1 selectコンテンツ:タイプ。

フィルタの条件: コンテンツ:公開済み(はい) コンテンツタイプ - 含めるコンテンツタイプを選択するように設定します。

ソート基準 - ご希望に応じて設定