РазделыСтатьиОбновления ReloadCMS → Окончательный вариант Google sitemap для ReloadCMS-2011

Новый Google sitemap.
png

Google sitemap для ReloadCMS доделан окончательно и кардинально меняться больше не будет. Это значит, что все дополнительные включения из модулей, которые будут прикручиваться к нему, должны писаться в составе других модулей, а к карте сайта добавляться в папку admin/modules/google_sitemap в виде отдельных файлов.

Но обо всём по порядку.
Выдержки из ReadMe.txt (входит в комплект), добавлено форматирование и скриншоты:


Установка
1. Удалить старый sitemap (если есть).
2. Распаковать в корень ReloadCMS.
3. Зайти в админку и настроить.

Принцип работы и изменения.
1. Формирование сайтмапа производится за счёт GPL-библиотеки (автор PaweA‚ Antczak <pawel@antczak.org>, немного подправлена и допилена под нужды). Сама библиотека находится в библиотеке администратора.
2. Добавлено добавление вручную любого количества адресов в сайтмап построчно.
3. Немного допилен интерфейс. Добавлен вывод времени исполнения скрипта и используемой памяти.
Было особенно актуально в одном магазине.
4. Появилась новая кнопка - "Послать поисковым машинам sitemap.xml.gz"
Т.е. готовый файл в случае успеха посылается в yahoo, google, ask, bing.
Посылка файла использует библиотеку cUrl, которая кстати обычно отсутствует на Денвере.
Если библиотеки нет, я добавил в класс возможность отсылки в ручном режиме.
5. Результат посылки в поисковые машины увидите сразу, в виде массива
[site] - Домен куда засылался sitemap.xml.gz
[fullsite] - полный адрес куда слали
[http_code] - код ответа по протоколу
[message] - подробный ответ сервера
png
6. Один раз введённые настройки для каждого из модулей сохраняются (раньше нет).
7. Модули для формирования сайтмапа инклудятся из папки в админке admin/modules/google_sitemap
Кроме самого sitemap.php и module.php, естественно.
png


В связи с этим - как добавить новый модуль, например, для добавки одного адреса?
Модуль должен возвращать -
- имя модуля в переменной $name_module;
- добавлять в сайтмап хотя бы 1 адрес (а иначе зачем он?).

Вот структура простейшего модуля
Код:

<? //example easy_module.php

$name_module 'Эээ какая-то фигня, но нужная:)';
$sitemap -> addUrl($directory 'tools/phpinfo.php'rcms_format_time('Y-m-d'time()),    $chfr,    $prio);
?>
Используемые переменные:
$name_module - имя отображаемое в админке;
$directory - переменная содержащая полный путь установки ReloadCMS
$sitemap -> addUrl(url,time,changefreq,priority) - добавить_адрес(адрес,время,частота_изменения,приоритет)
последние два параметра - changefreq, priority - необязательны.
Переменные $chfr, $prio используются для передачи в подключаемый модуль настроек пользователя из админки, поэтому их лучше так и оставить. Но если Вы хотите чтобы настройки (частота_изменения, приоритет) не изменялись, можете задать им статические значения.

Пока мной добавлены модули для включения Главной страницы, Статей и Форума - как самые важные.
//upd 18.04.2011 - реализовано добавление адресов вручную
В формировании статей исправлена ошибка, выскакивающая при сканировании пустой категории статей.
В форуме переформированы времена изменений так, что временем изменения темы будет время последнего ответа.

Для чего всё это делалось.
Для простоты добавления новых адресов в карту сайта

Ссылка на закачку
19.04.2011 14:30 Автор/источник: admin

Комментировать

Вы не залогинены! Регистрация

Устал читать? Напиши! Или позвони +375 29 5344286. На связи по будним дням с 800 до 1700.