Drupal站点地图模块

时间:2009-04-15 11:09:32

标签: drupal

我正在寻找一个可以在Drupal中创建站点地图的模块,但找不到任何模块。我尝试了Site Map模块,但它只能生成一个站点地图页面;它无法在每个页面的末尾创建一个站点地图块。我也尝试了site menu module,但它也无法创建如上所示的站点地图块。

也许只是因为我不知道如何配置,但我阅读了每个自述文件,并尝试了几天,仍然无法让它工作。

任何人都有任何想法?

9 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:5)

http://groups.drupal.org/node/15980

的网站地图模块有基本比较

我使用过sitemenu,它可以满足我的需求,但真正的答案取决于你如何使用分类法,内容类型等构建网站。

答案 2 :(得分:1)

Auto Menu这样的东西也适合你。您只需将其生成的菜单添加到首页的页脚块中即可。

答案 3 :(得分:1)

安装了Site Map模块后,这个php代码将打印站点地图。

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

您可以创建一个空视图块,并为空文本指定上述内容,选择PHP代码输入格式。

可能有更好的方法来创建自定义块来显示php代码,但我不知道。

答案 4 :(得分:0)

我的想法是使用Views模块和自定义块类型。

答案 5 :(得分:0)

我认为您可以从Menu block模块中受益。因为您可以在页脚中为所需的所有菜单创建菜单块。然后,您可以使用minipanels块(来自panels模块)以页脚或一个块的形式添加它们。

答案 6 :(得分:0)

您可以使用为我们提供可配置块的Footer_sitemap模块。 https://drupal.org/project/footer_sitemap

答案 7 :(得分: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");

答案 8 :(得分:0)

一个简单的解决方案并不依赖于作为菜单项包含的内容,可以通过以下方式实现:

创建新视图

输出为块

使用字段:

内容标题(配置为&#34;将此字段链接到原始内容&#34;

内容类型(配置为&#34;从显示中排除&#34;)

格式为

带设置的无格式列表 - 分组字段Nr.1选择内容:类型;

过滤Criterea: 内容:已发布(是) 内容类型 - 配置以选择您要包含的内容类型;

排序条件 - 根据您的偏好进行配置