• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Помощь Изменение sitemap

Статус
В этой теме нельзя размещать новые ответы.

Tadasi

Постоялец
Регистрация
6 Май 2008
Сообщения
145
Реакции
6
Стандартный сайтмап в DLE 7.5 генерируется по шаблону:
PHP:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
	<url>
		<loc>http://адрес1.html</loc>
		<lastmod>2009-04-22</lastmod>
		<priority>0.6</priority>
	</url>
	<url>
		<loc>http://адрес2.html</loc>
		<lastmod>2009-04-23</lastmod>
		<priority>0.6</priority>
	</url>
</urlset>
Подскажите как изменить его, что бы он стал вида:
PHP:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
	<url>
		<loc>http://адрес1.html</loc> Название новости 1
		<lastmod>2009-04-22</lastmod>
		<priority>0.6</priority>
	</url>
	<url>
		<loc>http://адрес2.html</loc> Название новости 2
		<lastmod>2009-04-23</lastmod>
		<priority>0.6</priority>
	</url>
</urlset>
т.е. просто добавить название новости! Не спрашивайте зачем, просто очень нужно.
Я понял, что нужно все изменения производить в файле "\engine\classes\google.class.php" Но как его заставить выводить названия новости к кажой ссылке не могу понять. Нужно прописать какую-то функцию "function get_" так?
 
Может быть подскажите какая переменная за Название новости отвечает? $title - ?
 
То, что ты привёл (второй код) - сильное нарушение правил разметки xml.
google никогда такую карту сайта не прочтёт.

Если не секрет, а зачем вообще туда добавлять названия новостей? поисковики у нас не ленивые - по ссылкам пройти могут и сами узнать название - тоже.
Карта сайта лишь помогает им не дублировать новости и не пропускать те, на которые нету ссылок с главной.

P.s. не проще ли сделать модуль "карта сайта" в формате php (html), а не xml, если хотите людям её показывать?

А переменной такой попросту нету, ибо генерировать её никому не нужно было ;)
 
Стандартный сайтмап в DLE 7.5 генерируется по шаблону:
PHP:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
	<url>
		<loc>http://адрес1.html</loc>
		<lastmod>2009-04-22</lastmod>
		<priority>0.6</priority>
	</url>
	<url>
		<loc>http://адрес2.html</loc>
		<lastmod>2009-04-23</lastmod>
		<priority>0.6</priority>
	</url>
</urlset>
Подскажите как изменить его, что бы он стал вида:
PHP:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
	<url>
		<loc>http://адрес1.html</loc> Название новости 1
		<lastmod>2009-04-22</lastmod>
		<priority>0.6</priority>
	</url>
	<url>
		<loc>http://адрес2.html</loc> Название новости 2
		<lastmod>2009-04-23</lastmod>
		<priority>0.6</priority>
	</url>
</urlset>
т.е. просто добавить название новости! Не спрашивайте зачем, просто очень нужно.
Я понял, что нужно все изменения производить в файле "\engine\classes\google.class.php" Но как его заставить выводить названия новости к кажой ссылке не могу понять. Нужно прописать какую-то функцию "function get_" так?

ваш вариант не возможен,учите xml
 
ТС это бесполезная попытка. Существуют стандарты, если выходить из рамок стандартов появляются ошибки, нет гарантии что Гугл поймёт новый тип карты сайта.

На 4дле.ру добавили новость как модифицировать sitemap, почитайте интересная штука
 
То, что ты привёл (второй код) - сильное нарушение правил разметки xml.
google никогда такую карту сайта не прочтёт.
Если не секрет, а зачем вообще туда добавлять названия новостей? поисковики у нас не ленивые - по ссылкам пройти могут и сами узнать название - тоже.
Карта сайта лишь помогает им не дублировать новости и не пропускать те, на которые нету ссылок с главной.
P.s. не проще ли сделать модуль "карта сайта" в формате php (html), а не xml, если хотите людям её показывать?
А переменной такой попросту нету, ибо генерировать её никому не нужно было ;)

Мне этот код нужен совсем для другой карты сайта - тот второй вариант я привёл как пример. Просто подскажите возможные варианты вывода названия новостей в этой карте.

...нет гарантии что Гугл поймёт новый тип карты сайта.
На 4дле.ру добавили новость как модифицировать sitemap, почитайте интересная штука

Ещё раз повторяю поисковики здесь не причём. Мне для другого нужно.

А на счёт 4дле - да, спасибо огромное. Ток как теперь это использовать вот в этом: Для просмотра ссылки Войди или Зарегистрируйся для DLE 7.5?
 
хм..интересно тогда получаетса как же вы ее читать будите ? ваш вариант сайт мапа.Хотя названиэ возможно будит достать с тега <url>,возможно и без ошибок пройдет.Конкретно опишыте под какую задачу нужна изменения такого рода
 
beek, nithwich, Товарищи... Ну давайте без набора постов...
Я понимаю, очень кайфово расказывать, как же не правильно xml создал автор, когда это расказывалось за пол часа до Вас.


ТС, напиши подробно, с какой целью тебе это нужно и что именно туда нужно пихать - сделаем... Если просто вытащить название - могу записать в поле <title></title> внутри <url>. Но не могу гарантировать, что после этого гугля будет это читать ;)
Добавлено через 3 минуты
Открой /engine/classes/google.class.php
находим строку:
SELECT id, date, alt_name, category, flag FROM
и меняем на:
SELECT id, date, alt_name, category, flag, title FROM
Теперь в переменной $row['title'] содержится название текущей новости...
Добавить в xml сам сможешь?

Добавлено через 16 минут
Т.к. сам уже нашёл, решил тебя не мучать:

Найти:
$xml .= $this->get_xml( $loc, date( "Y-m-d", $row['date'] ) );
Заменить:
$xml .= $this->get_xml( $loc, date( "Y-m-d", $row['date'] ) , $row['title']);
Найти:
function get_xml($loc, $lastmod) {
Заменить:
function get_xml($loc, $lastmod, $row['date']) {
Чуть ниже, после:
$xml .= "\t\t<priority>" . $this->priority . "</priority>\n";
Добавить:
$xml .= "\t\t<title>$row['date']</title>\n";

В этом всём есть 2 момента, в которых я не уверен. Тестить лень, поэтому используй на свой страх и риск... Есть ошибки - буду переделывать.
 
beek, nithwich, Товарищи... Ну давайте без набора постов...
Я понимаю, очень кайфово расказывать, как же не правильно xml создал автор, когда это расказывалось за пол часа до Вас.

ТС, напиши подробно, с какой целью тебе это нужно и что именно туда нужно пихать - сделаем... Если просто вытащить название - могу записать в поле <title></title> внутри <url>. Но не могу гарантировать, что после этого гугля будет это читать ;)
Товарищ,тс явно написал что тегов <title></title> там нет..а просто в корень.Да и был задан коректный вопрос,а не набор постов.
 
В этом всём есть 2 момента, в которых я не уверен. Тестить лень, поэтому используй на свой страх и риск... Есть ошибки - буду переделывать.

Спасибо огромное за помощь, все получилось. Но ошибки все же были:

PHP:
Найти:
Цитата:function get_xml($loc, $lastmod) { 

Заменить:
Цитата:function get_xml($loc, $lastmod, $row['date']) { 

Чуть ниже, после:
Цитата:$xml .= "\t\t<priority>" . $this->priority . "</priority>\n"; 

Добавить:
Цитата:$xml .= "\t\t<title>$row['date']</title>\n";

А нужно было:

PHP:
Найти:
Цитата:function get_xml($loc, $lastmod) { 

Заменить:
Цитата:function get_xml($loc, $lastmod, $title) { 

Чуть ниже, после:
Цитата:$xml .= "\t\t<priority>" . $this->priority . "</priority>\n"; 

Добавить:
Цитата:$xml .= "\t\t<title>$title</title>\n";

Правда теперь нужно будет немного напильником обработать полученную карту в текстовом редакторе...)

Кстати, а можно туда ещё текст из short_story добавить (короткая новость). Понял сейчас, что тоже очень нужно будет и короткую новость добавить?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху