Модуль Карты Сайта Drupal

Я ищу модуль, который может создать sitemap в Drupal, но не смог найти его. Я пытался!--1-->Карта Сайта модуль, но он может генерировать только страницу sitemap; он не может создать блок sitemap в конце каждой страницы. Я также пытался меню сайта модуль, но он не может создать блок sitemap, как показано выше.

может быть, это просто, что я не знаю, как настроить, но я читал каждый файл readme и пытался в течение нескольких дней, все еще не могу получить его работа.

кто-нибудь знает?

9 ответов


У меня была та же проблема, после попытки модуля (Карта сайта), но отсутствующие параметры настройки я написал пользовательский модуль. Потребовалось меньше времени, чем возиться с модулем site-map, для получения карты сайта достаточно следующего кода (адаптировать ваше-меню):

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;
}

существует базовое сравнение модулей sitemap в http://groups.drupal.org/node/15980

Я использовал sitemenu, и он работал для моих нужд, но реальный ответ зависит от того, как вы структурируете свой сайт с помощью таксономии, типов контента и т. д.


что-то вроде Автоматическое Меню может работать и для вас здесь. Вы можете просто добавить меню, которое он генерирует, в нижний колонтитул на вашей первой странице.


с установленным модулем карты сайта этот php-код будет печатать карту сайта.

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

вы можете создать пустой блок представлений и указать выше для пустого текста, выбрав формат ввода кода PHP.

может быть лучший способ создать пользовательский блок для отображения php-кода, но я этого не знаю.


моя идея здесь-использовать вид модуль с подгонянным типом блока.


Я думаю, вы можете извлечь выгоду из блок меню модуль. поскольку вы можете создавать блоки меню для всех меню, которые вам нужны в нижнем колонтитуле. Затем вы можете добавить их все в нижний колонтитул или в один блок, используя блок minipanels (от панели модуль).


вы можете использовать модуль Footer_sitemap, который предоставляет нам настраиваемый блок. https://drupal.org/project/footer_sitemap


Это маленький мод лучший ответ, он использует текущую тему, чтобы показать иерархию

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");

простое решение, которое не зависит от контента, включаемого в качестве пункта меню, может быть достигнуто :

создание нового представления

вывод в виде блока

С Использованием Полей:

название контента (настроено на "связать это поле с исходным фрагментом контента"

тип контента (настроен на "исключить из отображения")

формат as

Неформатированный список с настройками-поле группировки NR. 1 Выбрать Содержание: Тип;

Фильтр Criterea: Содержание: Опубликовано (Да) Тип контента-настройка для выбора типов контента, которые вы хотите включить;

критерии сортировки-настройка в соответствии с вашими предпочтениями