Приветствую друзья!
Столкнулся с проблемой при формировании xml карты сайта. В варианте из коробки у меня все ссылки были просто доменом сайта.
После упорных изысканий выяснил, что метод recurs_xml класса mapsite содержит ошибку. Там запутались с if else конструкцией и последний else, который должен был бы включать код для случая ссылок без ЧПУ отрабатывал с вложенным условием if, который внутри условия ЧПУ проверял наличие в концовке .html и подставлял /. Короче ситуацию исправили пара кавычек. Привожу работающий код. Прошу включить в следующий релиз!
protected function recurs_xml($pages)
{
global $kernel;
//Начнем вывод
foreach ($pages as $key => $val) {
$id = $key;
//Возьмем свойство видимости из свойств страницы
$arr = $kernel->pub_page_property_get($key, 'visible');
$visible = true;
if ($arr['isset'] && ($arr['value'] == "false"))
$visible = false;
if ($visible) {
// Формирование ЧПУ-ссылки для статических страниц
if (defined("USE_PRETTY_URL") && USE_PRETTY_URL) {
if (!strpos($id, ".html"))
$link = $id . "/";
} else
if (strpos($id, ".html?") === false)
$link = $id . ".html";
else
$link = $id;
$this->put_link2sitemap_xml('/' . $link);
if (isset($val['include']) && !empty($val['include']))
$this->recurs_xml($val['include']);
} else {
if (isset($val['include']) && !empty($val['include']))
$this->recurs_xml($val['include']);
}
}
}