Как создать карту сайта для людей и поисковиков?

Статус
Закрыто для дальнейших ответов.

Великий Гуру

Well-Known Member
Регистрация
24.10.2011
Сообщения
65
Привет всем! Я создал свой сайт, но незнаю как залить туда карту для людей и поисковиков. Помогите, плиз!
 

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 138
1) На чем создал?

2) В вордпрессе есть плагин сайтмапа (XML Sitemap Feed), у того сайтмапа есть стили. Просто подключи их и будет у тебя и для поисковиков и для людей.
Я в свое время оттуда взял стили и для PHPBB
 

Великий Гуру

Well-Known Member
Регистрация
24.10.2011
Сообщения
65
1) На чем создал?
Я немного схитрил))) Взял готовый скрипт Kubelance 1.7, переписал чуток под себя, под хостинг свой, подмарафетил и в бой. В Вордпресс я знаю как карты делать. И Drupal. А вот как в Кубеланс добавить хз)))
 

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 138
Ну а у нее нету похожего плагина?
Если нет, то придется писать.
Делай запрос в бд с сортировкой по дате и выводи на экран.

Вот простой вариант для PHPBB, без кэширования. По хорошему бы это кэширование дописать.

Код:
<!--?php
header('Content-Type: text/xml; charset=utf-8');
$date_gen = date("c");
echo '<?xml version="1.0" encoding="UTF-8"?--><!--?xml-stylesheet type="text/xsl" href="http://путьдофайластилейотвордпресса/sitemap.xsl.php"?-->
<!-- generated-on='.$date_gen.' -->
<!-- generator="XML & Google News Sitemap Feed for АдресСайта.ru" -->
<!-- generator-url="http://АдресСайта.ru" -->
<!-- generator-stylesheet="http://4visions.nl/en/wordpress-plugins/xml-sitemap-feed/" -->
<!-- generator-version="0.1" -->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">';

echo '<url><loc>http://АдресСайта.ru/</loc><lastmod>'.$date_gen.'</lastmod><changefreq>Daily</changefreq><priority>1.0</priority></url>';

#Тут пишем строки для коннекта с БД. Можно и свое соединение прописать, не обязательно из движка
// Далее заменить на свои БД
	$query = mysql_query("SELECT * FROM `phpbb_posts` WHERE `post_approved` = '1' ORDER BY `post_time`",$db);
	while($query2 = mysql_fetch_array($query)){
		echo '<url><loc>http://АдресСайта.ru/viewtopicКАК_ВЫГЛЯДИТ_ССЫЛКА_В_ОБЩЕМ.php?p='.$query2['post_id'].'#p'.$query2['post_id'].'</loc><lastmod>'.date("c", $query2['post_time']).'</lastmod><changefreq>Daily</changefreq><priority>0.7</priority></url>';
	}
echo "</urlset>";
?>
Кэширование примерно так делается. Далее пишу с ходу.
Код:
$cache_file = 'Указываем_путь_до_закэшированного_файла';						
$cashe_time = time()-@filemtime($cache_file);

if ($cashe_time<43200) { // Время хранения кеша. 43200 = 24 часам
	echo file_get_contents($cache_file);
	exit();
}

ob_start ();
Вставляется в самое начало, после header

А в конце
Код:
$cache = ob_get_contents();
ob_end_clean ();
echo $cache;

$fp = @fopen ('Указываем_путь_до_закэшированного_файла', "w");
@fwrite ($fp, $cache);
@fclose ($fp);
Не забыв предварительно записать в переменную $cache все то, что выводится на экран, т.е. вместо echo в первом коде.

Может кто поправит еще этот говнокод )))
 
Статус
Закрыто для дальнейших ответов.
Верх Низ