diff --git a/xmlsitemap_menu/xmlsitemap_menu.install b/xmlsitemap_menu/xmlsitemap_menu.install index 54136da..48fee80 100644 --- a/xmlsitemap_menu/xmlsitemap_menu.install +++ b/xmlsitemap_menu/xmlsitemap_menu.install @@ -45,3 +45,14 @@ function xmlsitemap_menu_update_6201() { drupal_load('module', 'xmlsitemap'); xmlsitemap_link_type_rename('menu', 'menu_link'); } + +/** + * Remove unneeded menu entries from xmlsitemap. + */ +function xmlsitemap_menu_update_7200() { + db_delete('xmlsitemap') + ->condition('type', 'menu_link') + ->condition('status', 0) + ->condition('status_override', 0) + ->execute(); +} diff --git a/xmlsitemap_menu/xmlsitemap_menu.module b/xmlsitemap_menu/xmlsitemap_menu.module index f0ba9e2..67f1fb7 100644 --- a/xmlsitemap_menu/xmlsitemap_menu.module +++ b/xmlsitemap_menu/xmlsitemap_menu.module @@ -192,8 +192,11 @@ function xmlsitemap_menu_menu_delete(array $menu) { * Implements hook_menu_link_insert(). */ function xmlsitemap_menu_menu_link_insert(array $link) { - $link += array('xmlsitemap' => array()); - xmlsitemap_menu_xmlsitemap_process_menu_links(array($link['mlid']), $link['xmlsitemap']); + $settings = xmlsitemap_link_bundle_load('menu_link', $link['menu_name'], FALSE); + if ($settings['status']) { + $link += array('xmlsitemap' => array()); + xmlsitemap_menu_xmlsitemap_process_menu_links(array($link['mlid']), $link['xmlsitemap']); + } } /** @@ -202,8 +205,11 @@ function xmlsitemap_menu_menu_link_insert(array $link) { * @see hook_menu_link_alter() */ function xmlsitemap_menu_menu_link_update(array $link) { - //$link += array('xmlsitemap' => array()); - //xmlsitemap_menu_xmlsitemap_process_menu_links(array($link['mlid']), $link['xmlsitemap']); + //$settings = xmlsitemap_link_bundle_load('menu_link', $link['menu_name'], FALSE); + //if ($settings['status']) { + // $link += array('xmlsitemap' => array()); + // xmlsitemap_menu_xmlsitemap_process_menu_links(array($link['mlid']), $link['xmlsitemap']); + //} } /** @@ -217,8 +223,11 @@ function xmlsitemap_menu_menu_link_update(array $link) { */ function xmlsitemap_menu_menu_link_alter(array &$link) { if (!empty($link['mlid'])) { - $link += array('xmlsitemap' => array()); - xmlsitemap_menu_xmlsitemap_process_menu_links(array($link['mlid']), $link['xmlsitemap']); + $settings = xmlsitemap_link_bundle_load('menu_link', $link['menu_name'], FALSE); + if ($settings['status']) { + $link += array('xmlsitemap' => array()); + xmlsitemap_menu_xmlsitemap_process_menu_links(array($link['mlid']), $link['xmlsitemap']); + } } }