From 633bf431e063cfa04a91efecbc7d71b1c8060dad Mon Sep 17 00:00:00 2001 From: Romuald Brisson Date: Wed, 25 Sep 2013 23:09:55 +0200 Subject: [PATCH] XML Sitemap compatibility with entity translation --- .../xmlsitemap_node/xmlsitemap_node.module | 26 +++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/sites/all/modules/xmlsitemap/xmlsitemap_node/xmlsitemap_node.module b/sites/all/modules/xmlsitemap/xmlsitemap_node/xmlsitemap_node.module index b7463d5..e2c21c9 100644 --- a/sites/all/modules/xmlsitemap/xmlsitemap_node/xmlsitemap_node.module +++ b/sites/all/modules/xmlsitemap/xmlsitemap_node/xmlsitemap_node.module @@ -40,7 +40,15 @@ function xmlsitemap_node_xmlsitemap_process_node_links(array $nids) { $nodes = node_load_multiple($nids); foreach ($nodes as $node) { $link = xmlsitemap_node_create_link($node); - xmlsitemap_link_save($link); + if (is_array($link['language'])){ + foreach ($link['language'] as $lang){ + $lang_link = $link; + $lang_link['language'] = $lang; + xmlsitemap_link_save($lang_link); + } + }else{ + xmlsitemap_link_save($link); + } } } @@ -56,7 +64,15 @@ function xmlsitemap_node_node_insert(stdClass $node) { */ function xmlsitemap_node_node_update(stdClass $node) { $link = xmlsitemap_node_create_link($node); - xmlsitemap_link_save($link); + if (is_array($link['language'])){ + foreach ($link['language'] as $lang){ + $lang_link = $link; + $lang_link['language'] = $lang; + xmlsitemap_link_save($lang_link); + } + }else{ + xmlsitemap_link_save($link); + } } /** @@ -204,7 +220,11 @@ function xmlsitemap_node_create_link(stdClass $node) { $node->xmlsitemap['loc'] = $uri['path']; $node->xmlsitemap['lastmod'] = count($timestamps) ? max($timestamps) : 0; $node->xmlsitemap['access'] = $node->nid ? xmlsitemap_node_view_access($node, drupal_anonymous_user()) : 1; - $node->xmlsitemap['language'] = isset($node->language) ? $node->language : LANGUAGE_NONE; + if (isset($node->translations)){ + $node->xmlsitemap['language'] = array_keys($node->translations->data); + }else{ + $node->xmlsitemap['language'] = isset($node->language) ? $node->language : LANGUAGE_NONE; + } return $node->xmlsitemap; } -- 1.8.2.3