Перейти к содержимому


Простейший генератор sitemap.xml. На лету. Без ЧПУ.


  • Вы не можете ответить в тему
Сообщений в теме: 4

#1 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 10 June 2012 - 12:10 PM

Модуль наипростейший, примитивный. sitemap.xml создается каждый раз заново при запросе _http://ваш_сайт/sitemap.xml, т.е. в виде готового файла нигде не лежит. Кому-то это удобно, кому-то не очень.

<?php
#
# генерация sitemap.xml "на лету" (по запросу)
#
# этот файл (sitemap.php) надо положить в корень сайта
# в файл .htaccess надо добавить строку
# RewriteRule ^sitemap\.xml$ sitemap.php [L]
#
require_once "core/config/connect.inc.php";
$sitemap = array("category" => array("priority" => 0.7,"changefreq" => "monthly" ,"lastmod" => date("c")),
"products" => array("priority" => 0.9,"changefreq" => "weekly" ),
"news" => array("priority" => 0.5,"changefreq" => "monthly" ,"lastmod" => date("c")),
"show_news"=> array("priority" => 0.7,"changefreq" => "daily" ),
"pages" => array("priority" => 0.9,"changefreq" => "monthly" ,"lastmod" => date("c")),
"articles" => array("priority" => 1.0,"changefreq" => "weekly" ,"lastmod" => date("c")));
mysql_connect(DB_HOST,DB_USER,DB_PASS) or die(mysql_error());
mysql_select_db(DB_NAME) or die(mysql_error());
header ("content-type: text/xml");
echo '<?xml version="1.0" encoding="UTF-8" ?>'."\n";
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'."\n";
$data = mysql_query("SELECT categoryID
FROM ".DB_PRFX."categories
WHERE categoryID <> 1") or die(mysql_error());
while ($row = mysql_fetch_assoc($data))
{
echo "<url><loc>http://".$_SERVER['SERVER_NAME']."/category_".$row['categoryID'].".html</loc>".
"<lastmod>".$sitemap['category']['lastmod']."</lastmod>".
"<changefreq>".$sitemap['category']['changefreq']."</changefreq>".
"<priority>".$sitemap['category']['priority']."</priority></url>\n";
}
$data = mysql_query("SELECT productID, date_added, date_modified
FROM ".DB_PRFX."products
WHERE categoryID <> 1 AND enabled = 1") or die(mysql_error());
while ($row = mysql_fetch_assoc($data))
{
echo "<url><loc>http://".$_SERVER['SERVER_NAME']."/product_".$row['productID'].".html</loc>".
"<lastmod>".date("c",strtotime($row['date_modified'] ? $row['date_modified'] : $row['date_added']))."</lastmod>".
"<changefreq>".$sitemap['products']['changefreq']."</changefreq>".
"<priority>".$sitemap['products']['priority']."</priority></url>\n";
}
echo "<url><loc>http://".$_SERVER['SERVER_NAME']."/news_news.html</loc>".
"<lastmod>".$sitemap['news']['lastmod']."</lastmod>".
"<changefreq>".$sitemap['news']['changefreq']."</changefreq>".
"<priority>".$sitemap['news']['priority']."</priority></url>\n";
$data = mysql_query("SELECT NID,add_date
FROM ".DB_PRFX."news_table") or die(mysql_error());
while ($row = mysql_fetch_assoc($data))
{
echo "<url><loc>http://".$_SERVER['SERVER_NAME']."/show_news_".$row['NID'].".html</loc>".
"<lastmod>".date("c",strtotime($row['add_date']))."</lastmod>".
"<changefreq>".$sitemap['show_news']['changefreq']."</changefreq>".
"<priority>".$sitemap['show_news']['priority']."</priority></url>\n";
}
$data = mysql_query("SELECT aux_page_ID
FROM ".DB_PRFX."aux_pages") or die(mysql_error());
while ($row = mysql_fetch_assoc($data))
{
echo "<url><loc>http://".$_SERVER['SERVER_NAME']."/page_".$row['aux_page_ID'].".html</loc>".
"<lastmod>".$sitemap['pages']['lastmod']."</lastmod>".
"<changefreq>".$sitemap['pages']['changefreq']."</changefreq>".
"<priority>".$sitemap['pages']['priority']."</priority></url>\n";
}
mysql_close() or die(mysql_error());
echo "</urlset>\n";
?>

  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#2 Kirman

    Новичок

  • Download User
  • Pip
  • 2 сообщений
Репутация: 0
Начинающий

Отправлено 14 November 2012 - 04:27 PM

а не подскажите, как этот модуль прикрутить если уже стоит ЧПУ?
  • 0

#3 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 14 November 2012 - 04:34 PM

а не подскажите, как этот модуль прикрутить если уже стоит ЧПУ?

Зачем нужен sitemap.xml, состоящий из неЧПУ ссылок на сайте с ЧПУ?

Да и что за странный ЧПУ, в котором нет выдачи sitemap.xml?
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#4 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 14 November 2012 - 04:39 PM

Зачем нужен sitemap.xml, состоящий из неЧПУ ссылок на сайте с ЧПУ?

Ты ж сам написал в заголовке что этот sitemap без ЧПУ.

Да и что за странный ЧПУ, в котором нет выдачи sitemap.xml?

Почему странный... вот тот который обсуждали тут очень долго, и установить никто не мог нормально - он без sitemap.
  • 0

#5 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 14 November 2012 - 05:01 PM

Ты ж сам написал в заголовке что этот sitemap без ЧПУ.

Да. Без ЧПУ. Т.е. будет выдавать ссылки вида /product_xxx и /category_yyy. Вот я и спрашиваю, зачем такой sitemap.xml на сайте с ЧПУ? :)

Почему странный... вот тот который обсуждали тут очень долго, и установить никто не мог нормально - он без sitemap.

Мнда? Ну, значит я не заметил и один из четырех модулей таки без sitemap :).
Тот, который нормально ставится при внимательном чтении темы - с сайтмапом.
Мой с сайтмапом.
LiteSEOtools - c сайтмапом.

Ну а странность ЧПУ модуля без встроенной генерации sitemap.xml, ИМХО, довольно очевидна. Сторонний модуль не знает логику построения ЧПУ-ссылки и, соответственно, не сможет сгенерировать правильный сайтмап. А какой смысл в ЧПУ ссылках (которые делаются в основном для поисковика) без соответствующего sitemap.xml?

Можно, конечно, любой модуль создания сайтмапа прикрутить к ЛЮБОМУ ЧПУ (обращаться по стандартной ссылке без ЧПУ, ловить header с редиректом-301 и в sitemap.xml вставлять уже именно его), но это совсем уж черезпопное решение. На генерацию сайтмапа сайта с большим количеством товара уйдет либо очень много времени, либо очень много ресурса.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)