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

Тема в разделе "DLE", создана пользователем Tadasi, 8 окт 2009.

Информация :
Актуальная версия DataLife Engine 12.0
( Final Release v.12.0 | Скачать DataLife Engine | Скачать 12.0 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.3 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Статус темы:
Закрыта.
Модераторы: killoff
  1. Tadasi

    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_" так?
     
  2. Tadasi

    Tadasi Постоялец

    Регистр.:
    6 май 2008
    Сообщения:
    145
    Симпатии:
    6
    Может быть подскажите какая переменная за Название новости отвечает? $title - ?
     
  3. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.211
    Симпатии:
    2.239
    То, что ты привёл (второй код) - сильное нарушение правил разметки xml.
    google никогда такую карту сайта не прочтёт.

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

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

    А переменной такой попросту нету, ибо генерировать её никому не нужно было ;)
     
  4. nithwich

    nithwich

    Регистр.:
    10 фев 2007
    Сообщения:
    421
    Симпатии:
    74
    ваш вариант не возможен,учите xml
     
  5. beek

    beek Создатель

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

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

    Tadasi Постоялец

    Регистр.:
    6 май 2008
    Сообщения:
    145
    Симпатии:
    6
    Мне этот код нужен совсем для другой карты сайта - тот второй вариант я привёл как пример. Просто подскажите возможные варианты вывода названия новостей в этой карте.

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

    А на счёт 4дле - да, спасибо огромное. Ток как теперь это использовать вот в этом: http://www.nulled.ws/showpost.php?p=1106132&postcount=3 для DLE 7.5?
     
  7. nithwich

    nithwich

    Регистр.:
    10 фев 2007
    Сообщения:
    421
    Симпатии:
    74
    хм..интересно тогда получаетса как же вы ее читать будите ? ваш вариант сайт мапа.Хотя названиэ возможно будит достать с тега <url>,возможно и без ошибок пройдет.Конкретно опишыте под какую задачу нужна изменения такого рода
     
  8. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.211
    Симпатии:
    2.239
    beek, nithwich, Товарищи... Ну давайте без набора постов...
    Я понимаю, очень кайфово расказывать, как же не правильно xml создал автор, когда это расказывалось за пол часа до Вас.


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

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

    Найти:
    Заменить:
    Найти:
    Заменить:
    Чуть ниже, после:
    Добавить:
    В этом всём есть 2 момента, в которых я не уверен. Тестить лень, поэтому используй на свой страх и риск... Есть ошибки - буду переделывать.
     
    Tadasi нравится это.
  9. nithwich

    nithwich

    Регистр.:
    10 фев 2007
    Сообщения:
    421
    Симпатии:
    74
    Товарищ,тс явно написал что тегов <title></title> там нет..а просто в корень.Да и был задан коректный вопрос,а не набор постов.
     
  10. Tadasi

    Tadasi Постоялец

    Регистр.:
    6 май 2008
    Сообщения:
    145
    Симпатии:
    6
    Спасибо огромное за помощь, все получилось. Но ошибки все же были:

    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 добавить (короткая новость). Понял сейчас, что тоже очень нужно будет и короткую новость добавить?
     
Статус темы:
Закрыта.