Тема: Карта сайта для гугла
Карта сайта для Strawberry 1.1.1 была построена на базе rss.php и некоторых доработок...
1 что нужно - это создать шаблон для ссылок, который бы понимал гугл.
/data/tpl/google/active.tpl
<url>
<loc><?=htmlspecialchars($tpl['post']['link']['post']); ?></loc>
<priority>0.5</priority>
<changefreq>daily</changefreq>
</url>2 - это скрипт выводящий карту сайта, к примеру, google.php:
<?php
/**
* @package Show
* @access private
*/
include_once 'news/head.php';
add_filter('allow-comment-form', 'comment_form');
function comment_form(){return false;}
add_filter('unset-template', 'unset_template');
function unset_template($files){
$files[] = basename($_SERVER['PHP_SELF']);
return $files;
}
header('Content-type: text/xml');
echo '<?xml version="1.0" encoding="UTF-8" ?>';
?>
<urlset
xmlns="http://www.google.com/schemas/sitemap/0.84"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84
http://www.google.com/schemas/sitemap/0.84/sitemap.xsd">
<?
/**
* $row=$sql->select(array('table' => 'news', 'select' => array('id')));
* $result = count($row);
* $skip=rand(0, $result); // если новостей слишком много, можно поставить случайный вывод
*/
$template = 'google';
$number = ($number ? $number : 1500); // где 1500 - количество новостей.
$config['cnumber'] = 0;
include root_directory.'/show_news.php';
?>
</urlset>3 - А теперь делаем удобным формирование карты для гугла, создаем php файл, который будет запускаться через cron раз в день:
<?
$rss = file_get_contents("http://www.moy-sayt.ru/google.php");
$file = fopen ("/path-to-host/sitemap.xml","w");
fwrite($file,$rss);
fclose($file);
?>И теперь наша карта сайта для гугла будет сохраняться ежедневно в файл sitemap.xml ! ![]()
P.S. Огромное спасибо всем форумчанам, чьими советами воспользовался для реализации этой идеи!
Лёха zloy и красивый, SHiSH, ANT-Soft, респект! ![]()
Отредактировано UltraPixel (27 Apr 2007 13:17:47)