Регистрация
Вход через соцсети
Восстановление пароля

Генератор SiteMap для NetCat

Новый топик
13.12.2010, 22:56
Ответить | Цитировать
Pilot
Тех-Альянс

Зарегистрирован:
2007-02-20
Сообщений: 42

Друзья Всем привет! Накатал код для автоматической генерации SiteMap. Делал его для всех версий кроме extra. На extra почему-то не хочет генерить готовый файл. На всех предыдущих версиях работает гад.
Данный код называем index.php с правами 0644 и кладём его в корень сайта в папку sitemap с правами 0755.


function c()
{
mysql_pconnect('localhost','логин','пароль') or die ("Ошибка подключения к базе данных");
mysql_select_db('cназвание базы данных') or die ("Не выбрана БД");
}


function q($sql,$debug='y')
{
$res = mysql_query($sql);
return $res;
}

function a($res) {return mysql_fetch_array($res);}

function n($res) {return mysql_num_rows($res);}

c();

######################################################################################################################

$sql="SELECT * FROM Catalogue";
$row=q($sql);

echo "
<form method=post>
Выберите сайт<br>
<select name=site>
";
for($i=0;$i<n($row);$i++)
{
$res=a($row);
echo "<option value='{$res['Catalogue_ID']}'>{$res['Catalogue_Name']}</option>";
}
echo "
</select><br><br>
Укажите адрес индекса сайта<br>
<input type=text name=siteindex value='http://$SERVER_NAME' size=40><br><br>
Название файла xml<br>
<input type=text name=xmlname value='sitemap.xml' size=40><br>
<input type=submit name=sub value='Создать SITEMAP'>
</form>
";

if(isset($sub))
{
$date=date("Y-m-d");
$sql_sub="SELECT * FROM Subdivision WHERE Catalogue_ID=$site";
$row_sub=q($sql_sub);

$file_new=fopen("../$xmlname","w");
echo "<textarea cols=60 rows=30>";

echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r";
echo "<sitemapindex xmlns=\"$siteindex\">\r";

fputs($file_new,'<?xml version="1.0" encoding="UTF-8"?><sitemapindex xmlns="'.$siteindex.'">');

for($i=0;$i<n($row_sub);$i++)
{
$res_sub=a($row_sub);

echo "<sitemap>\r<loc>$siteindex{$res_sub['Hidden_URL']}</loc>\r<lastmod>$date</lastmod>\r</sitemap>\r";
fputs($file_new,"<sitemap><loc>$siteindex{$res_sub['Hidden_URL']}</loc><lastmod>$date</lastmod></sitemap>");
}
echo "</sitemapindex>";
fputs($file_new,'</sitemapindex>');
echo "</textarea>";
fclose($file_new);
chmod("../$xmlname",0777);

echo "<br><br><a href=$siteindex/$xmlname>$siteindex/$xmlname</a>";

}

В чем ошибка????? Берите те , у кого не экстра и пользуйтесь наздоровье!

Pilot
15.12.2010, 19:32
Ответить | Цитировать
iprus

Зарегистрирован:
2008-10-07
Сообщений: 73

Спасибо, Pilot! Пригодится.
16.12.2010, 19:58
Ответить | Цитировать
Гость
Гость

из поиска бы интереснее получилось бы
22.12.2010, 19:09
Ответить | Цитировать
DiGGy
DiGGy
DiGGy

Зарегистрирован:
2005-04-04
Сообщений: 1546

Скрипт ооочень сырой. Минусы:
1. В файл выводятся только разделы, причем даже скрытые.
2. Записи компонента не выводятся
3. Нельзя задавать теги changefreq и sitemap_priority
4. Вроде как в utf надо переводить.
5. Не предусмотрен запуск через планировщик, т.е. при большом контенте сайта, скрипт может не отработать до конца при превышении времени выполнения пхп скрипта.

Проще уж взять готовые скрипты, которые по страницам сайта лазиют и файл генерят.

Тут все не оч. просто и скорее зависит от требований конкретного заказчика к реализации. Т.е. все начинается с задания. Как пример:

Цитата:
Разработать пхп скрипт, который выгружает в sitemap.xml все разделы сайта и наполнение по этим разделам в соотв-ии с указанными ниже настройками.

Вынести настройки в виде доп. полей к разделам:
1. Выводить раздел в sitemap
2. Priority для раздела
3. Priority для записей раздела
4. Changefreq для раздела
5. Changefreq для записей раздела

тег <lastmod>:
для разделов берется текущая дата минус 1 неделя
для записей разделов - дата посл. редактирования записи

Разделы и записи, которые выключены (checked=0) - в файл не выводятся


Ваще в идеале это всё завязать с модулем поиска (как выше кто-то сказал).

Temet nosce...
27.01.2011, 03:34
Ответить | Цитировать
Pilot
Тех-Альянс

Зарегистрирован:
2007-02-20
Сообщений: 42

Согласен. Это все круто! Предлагаю организовать копилку в НетКате чтоб разработчики облегчили НетКатовцам жизнь.

Pilot
13.02.2011, 16:30
Ответить | Цитировать
Pilot
Тех-Альянс

Зарегистрирован:
2007-02-20
Сообщений: 42

После телефонного разговора с Тех-Поддержкой ждём результатов о совместном изготовлении универсального решения SiteMap для всех копий нетката.

Pilot
15.10.2013, 12:57
Ответить | Цитировать
Станислав

Зарегистрирован:
2012-01-27
Сообщений: 2

НЕ работает. NetCat 5.0 standart

bearing-service
198 196 2013-10-15 12:57:44 10913
Описание проекта