我正在寻找一个可以在Drupal中创建站点地图的模块,但找不到任何模块。我尝试了Site Map模块,但它只能生成一个站点地图页面;它无法在每个页面的末尾创建一个站点地图块。我也尝试了site menu module,但它也无法创建如上所示的站点地图块。
也许只是因为我不知道如何配置,但我阅读了每个自述文件,并尝试了几天,仍然无法让它工作。
任何人都有任何想法?
答案 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: 内容:已发布(是) 内容类型 - 配置以选择您要包含的内容类型;
排序条件 - 根据您的偏好进行配置