Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Лишняя строка Google Sitemap


greataz

Recommended Posts

Приветствую,

имею проблему с генерацией файла сайтмап.

Скрин http://joxi.ru/V2Vpl5kc3Jbjrv

Суть проблемы заключается в том что в sitemap появляется лишний пробел.

Восстанавливал исходные файлы, не помогло. Пытался найти в интернете какое-то решение - увы, все не то.

Пытался даже ставить другие модификации сайтмапа,(Google Sitemap Fast и [_FAST_] Sitemap) та же проблема.

https://flame.az/index.php?route=feed/google_sitemap

 

Буду рад если подскажите в каком направлении искать.

Сам файл sitemap

<?php
class ControllerFeedGoogleSitemap extends Controller {
	public function index() {
		if ($this->config->get('google_sitemap_status')) {
			$output = '<?xml version="1.0" encoding="UTF-8"?>';
			$output .= '<urlset xmlns="https://www.sitemaps.org/schemas/sitemap/0.9">';

			$output .= '<url>';
		$output .= '<loc>' . HTTP_SERVER . '</loc>';
		$output .= '<changefreq>daily</changefreq>';
		$output .= '<priority>1.0</priority>';
		$output .= '</url>';

			$this->load->model('catalog/product');

			$products = $this->model_catalog_product->getProducts();

			foreach ($products as $product) {
				$output .= '<url>';
				$output .= '<loc>' . str_replace('&', '&amp;', str_replace('&amp;', '&', $this->url->link('product/product', 'product_id=' . $product['product_id']))) . '</loc>';
				$output .= '<lastmod>' . substr(max($product['date_added'], $product['date_modified']), 0, 10) . '</lastmod>';
				$output .= '<changefreq>weekly</changefreq>';
				$output .= '<priority>0.9</priority>';
				$output .= '</url>';
			}

			$this->load->model('catalog/category');

			$output .= $this->getCategories(0);

			$this->load->model('catalog/manufacturer');

			$manufacturers = $this->model_catalog_manufacturer->getManufacturers();

			

			$this->load->model('catalog/information');

			$informations = $this->model_catalog_information->getInformations();

			

			$output .= '</urlset>';

			$this->response->addHeader('Content-Type: application/xml');
			$this->response->setOutput($output);
		}
	}

	protected function getCategories($parent_id, $current_path = '') {
		$output = '';

		$results = $this->model_catalog_category->getCategories($parent_id);

		foreach ($results as $result) {
			if (!$current_path) {
				$new_path = $result['category_id'];
			} else {
				$new_path = $current_path . '_' . $result['category_id'];
			}

			$output .= '<url>';
			$output .= '<loc>' . str_replace('&', '&amp;', str_replace('&amp;', '&', $this->url->link('product/category', 'path=' . $new_path))) . '</loc>';
			$output .= '<lastmod>' . substr(max($result['date_added'], $result['date_modified']), 0, 10) . '</lastmod>';
			$output .= '<changefreq>weekly</changefreq>';
			$output .= '<priority>0.8</priority>';
			$output .= '</url>';

			$output .= $this->getCategories($result['category_id'], $new_path);
		}

		return $output;
	}
}
?>

 

Змінено користувачем greataz
Надіслати
Поділитися на інших сайтах


Google Sitemap, здесь не причем. У Вас на всех страницах сайта первая строка страницы пустая, а затем строка 

<?xml version="1.0" encoding="UTF-8"?>

Посмотрите исходный код любой страницы сайта. В файле header.tpl такого ничего нет?

flameaz.png

Надіслати
Поділитися на інших сайтах


  • 2 weeks later...
4 часа назад, AlfredS сказал:

В index.tpl

А где вы такой файл нашли? Если у вас не какой-нибудь экзотический шаблон, такого файла быть не должно.

Смотрите header.tpl и смотрите не на пустую первую строку, а просто на первую строку: если там не доктайп, а какой-то php код, после него при рендере может оставаться пустая строка.

Надіслати
Поділитися на інших сайтах


18 часов назад, Dotrox сказал:

А где вы такой файл нашли? Если у вас не какой-нибудь экзотический шаблон, такого файла быть не должно.

Смотрите header.tpl и смотрите не на пустую первую строку, а просто на первую строку: если там не доктайп, а какой-то php код, после него при рендере может оставаться пустая строка.

header.tpl и header.php конечно, извиняюсь. Но причина не в них, там все стандартно, и даже без header.tpl код начинается со второй строки и при смене шаблона тоже. На всех страницах и в админке... Ткните пожалуйста в документацию, попробую заменить все файлы влияющие на вывод шаблона.

Надіслати
Поділитися на інших сайтах


17 часов назад, Dotrox сказал:

А вы смотрели оригинальные или из кеша модификатров?

И оригинальный и этот тоже смотрел:  vq2-catalog_view_theme_default_template_common_header.tpl  Он формируется нормально, с первой строки доктайп. При стирании всего кода в header.tpl, footer.tpl и home.tpl такая картина:

2017-05-27_092909.jpg

Надіслати
Поділитися на інших сайтах


On 16.05.2017 at 7:20 AM, agefremov said:

Google Sitemap, здесь не причем. У Вас на всех страницах сайта первая строка страницы пустая, а затем строка 


<?xml version="1.0" encoding="UTF-8"?>

Посмотрите исходный код любой страницы сайта. В файле header.tpl такого ничего нет?

flameaz.png

 

Спасибо, только что заметил. Но с чего там пустой строке появиться не пойму.

Единственное что недавно было предпринято это переход на httpS

Шапка имеет вид

<?php if (isset($_SERVER['HTTP_USER_AGENT']) && !strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 6')) echo '<?xml version="1.0" encoding="UTF-8"?>'. "\n"; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="https://www.w3.org/1999/xhtml" dir="<?php echo $direction; ?>" lang="<?php echo $lang; ?>" xml:lang="<?php echo $lang; ?>">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?php echo $title; ?></title>
<base href="<?php echo $base; ?>" />
<?php if ($description) { ?>
<meta name="description" content="<?php echo $description; ?>" />
<?php } ?>
<?php if ($keywords) { ?>
<meta name="keywords" content="<?php echo $keywords; ?>" />

Надіслати
Поділитися на інших сайтах


Благодарю.

Решение оказалось как и говорили в 1 пробеле.

В файле index.php в самом верху был пробел.

Он и сайт изговнял и сайтмап.

Спасибо, все исправил.

Надіслати
Поділитися на інших сайтах


В 27.05.2017 в 15:23, olaff сказал:

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

Ни пробелов, ни переводов строки нет, проверил index.php, header.php, footer.php, function.php, config.php, Какие еще файлы могут повлиять? На данный момент файлы шаблона и vqmod не причастны к проблеме вывода кода на всех страницах со второй строки.

Надіслати
Поділитися на інших сайтах


16 часов назад, greataz сказал:

<?php if (isset($_SERVER['HTTP_USER_AGENT']) && !strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 6')) echo '<?xml version="1.0" encoding="UTF-8"?>'. "\n"; ?>

Вот это вообще лишнее. Как и весь хлам в доктайпе.

 

 

11 часов назад, AlfredS сказал:

На данный момент файлы шаблона и vqmod не причастны к проблеме

Покажите первые 10 строк кода из header.tpl, который в кеше.

Надіслати
Поділитися на інших сайтах


<!DOCTYPE html>
<html dir="<?php echo $direction; ?>" lang="<?php echo $lang; ?>">
<head>
<meta charset="UTF-8" />
<title><?php echo $title; ?></title>
<base href="<?php echo $base; ?>" />
<?php if ($description) { ?>
<meta name="description" content="<?php echo $description; ?>" />
<?php } ?>
<?php if ($keywords) { ?>

Это из vq2-catalog_view_theme_default_template_common_header.tp Начинаются с 1-й строки

Надіслати
Поділитися на інших сайтах


  • 2 weeks later...
9 minutes ago, Evgene said:

Добрый день!

Аналогичная проблема, весь сайт начинается с 2 пустых строк, соответственно и sitemap некорректно отображается.

 

Многое пересмотрел в интернете, помогло удаление 2х пустых строчек в конце файла config.php

Надіслати
Поділитися на інших сайтах


  • 2 weeks later...
В 07.06.2017 в 15:39, Evgene сказал:

 

Многое пересмотрел в интернете, помогло удаление 2х пустых строчек в конце файла config.php

 

Вам повезло)) в моем пустых строк нет. Сейчас попробовал добалять в config.php переводы строки и действительно все страницы стали грузиться с уже с 3-ей, 4-ей строки... Видимо, действительно где-то пустая строка, в каком-то php файле, попробую отыскать.

Змінено користувачем AlfredS
Надіслати
Поділитися на інших сайтах


  • 1 month later...

Отыскал в session.php два перевода строки в конце. Просто открывал все файлы по очереди и просматривал. Видимо редактировал его на сервере и при сохранении они дописались. А сколько нервов потратил из-за такой мелочи! Теперь Sitemap генерится как надо, всем спасибо!

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.