Поставил JSitemap v.3.3 , затем обновил до v.3.4. На офсайте последняя версия сейчас 3.5, но в свободном интернете пока не нашел где скачать.
Подскажите пожалуйста по поводу такого косяка - HTML-карта сайта создаваемая этим компонентом отображается замечательно.
Но когда открываю XML-карту сайта, который он создает по адресу http://мой домен.ru/index.php?option=com_jmap&view=sitemap&format=xml, то бразуер выдает ошибку:
This page contains the following errors:
error on line 83 at column 10: Extra content at the end of the document
Below is a rendering of the page up to the first error.Вот код последних шести строк страницы:
Спойлер
78<url>
79<loc>http://мой домен.ru/component/adsmanager/51-taunkhausy/133-taunkhaus-150-kv-m</loc>
80<changefreq>daily</changefreq>
81<priority>0.5</priority>
82</url>
83</urlset></head>
Косяк как выяснилось в том, что XML файл карты сайта имеет неправильный формат, а именно - в 83 строке (самая последняя строка страницы) содержится закрывающий тэг </head>.
Причем открывающего тэга <head> на странице нигде нет. Если убрать этот тэг, то XML-карта уже отлично открывается браузером, я пробовал сделать это на локальном компьютере.
Подскажите пожалуйста - какой именно компонент прописывает в конец файла XML-карты сайта этот тэг </head>? Как можно его его убрать? Это делает сам компонент JSitemap или же возможно дело не в нем, а в шаблоне например?
Карту сайта как я понимаю создается вот этим файликом:
/ public_html / components / com_jmap / views / sitemap / tmpl / default_xml.php
Вот его код:
<?php
/**
* @package JMAP::SITEMAP::components::com_jmap
* @subpackage views
* @subpackage sitemap
* @subpackage tmpl
* @AUTHOR Joomla! Extensions Store
* @CopyRight (C) 2015 - Joomla! Extensions Store
* @license GNU/GPLv2
http://www.gnu.org/licenses/gpl-2.0.html*/
defined ( '_JEXEC' ) or die ( 'Restricted access' );
echo "<?xml version='1.0' encoding='UTF-8'?>" . PHP_EOL;
if($this->xslt) {
echo "<?xml-stylesheet type='text/xsl' href='" . JURI::root(). "components/com_jmap/xslt/xml-sitemap.xsl'?>" . PHP_EOL;
}
?>
<urlset xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance" xmlns="
http://www.sitemaps.org/schemas/sitemap/0.9" xsi:schemaLocation="
http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
<?php
foreach ( $this->data as $source ) {
// Strategy pattern source type template visualization
if ($source->type) {
$this->source = $source;
$this->sourceparams = $source->params;
$this->asCategoryTitleField = $this->findAsCategoryTitleField($source);
if($this->sourceparams->get('xmlinclude', 1)) {
$subTemplateName = $this->_layout . '_xml_' . $source->type . '.php';
if (file_exists ( JPATH_COMPONENT_SITE . '/views/sitemap/tmpl/' . $subTemplateName )) {
echo $this->loadTemplate ( 'xml_' . $source->type );
}
}
}
}
?>
</urlset>
Последний тэг здесь это </urlset>. Откуда же берется на странице тэг </head>? Подскажите пожалуйста... Из-за этого тэга карта сайта получается корявой и вероятно ее не будут принимать Яндекс и Google ((