Sitemap Users — XML-карта профилей пользователей

Плагин для Cotonti. Генерирует XML-карту сайта (sitemap) только для профилей пользователей. Помогает поисковым системам находить и индексировать публичные страницы пользователей.

Опубликовано в: Модули и Плагины для Cotonti

Sitemap Users — XML-карта профилей пользователей

Плагин для Cotonti. Генерирует XML-карту сайта (sitemap) только для профилей пользователей.
Помогает поисковым системам находить и индексировать публичные страницы пользователей.

История создания и зачем это нужно

Этот плагин — часть проекта по разделению стандартного плагина SiteMap (входящего в комплект Cotonti) на несколько независимых плагинов.

Оригинальный SiteMap генерировал одну большую карту для всего сайта сразу: страницы, форум, пользователи, товары.
При любых изменениях или ошибках в одном из разделов приходилось «чинить» весь плагин целиком, что часто приводило к поломкам всей карты.

Чтобы избежать этой проблемы, было решено разбить единый плагин на специализированные, каждый из которых отвечает только за свой тип контента:

  • sitemap_users – XML-карта профилей пользователей (этот плагин)
  • sitemap_pages – XML-карта страниц (с мультиязычной поддержкой)
  • sitemap_forums – XML-карта форумов
  • sitemap_market – XML-карта товаров (модуль Market)

Каждый плагин полностью автономен, настраивается отдельно и не влияет на работу других.
Такой подход упрощает поддержку и позволяет гибко управлять картами сайта.

sitemap_users создан на основе кода оригинального SiteMap, но полностью переработан специально для модуля users и адаптирован под PHP 8.x.

Возможности

  • Генерирует XML-карту, содержащую ссылки на профили всех пользователей, доступных для публичного просмотра (с учётом прав доступа).
  • Автоматически разбивает карту на несколько файлов (sitemap index), если общее число ссылок превышает заданный лимит (perpage).
  • При установке автоматически добавляет ссылки на карту в robots.txt.
  • При установке автоматически добавляет правила rewrite в .htaccess для красивых URL (если активен плагин URLEditor).
  • Кеширует готовые карты в файлы для быстрой отдачи.
  • Гибкие настройки: частота обновления, приоритет для профилей пользователей.
  • Полная совместимость с PHP 8.x.

Требования

  • Cotonti Siena (рекомендуется актуальная версия)
  • Модуль users — должен быть установлен и активен
  • Плагин urleditor — если планируете использовать красивые URL (sitemap-users.xml)
  • Права на запись в папку datas/cache/ (для кеширования карт)
  • Доступ к списку пользователей: для генерации карты плагин проверяет право cot_auth('users', 'a', 'R'). Убедитесь, что гости или поисковые боты имеют это право (по умолчанию в Cotonti гости не могут просматривать список пользователей). Рекомендуется включить это право в админке: Права → users → a (список пользователей) → Гости: чтение.
  • PHP 8.0 или выше

Структура плагина

sitemap_users/
├── sitemap_users.setup.php           # Заголовок, метаданные и настройки плагина
├── sitemap_users.ajax.php            # Главный обработчик запросов (AJAX)
├── inc/
│   └── sitemap_users.functions.php   # Функции: сжатие XML, работа с датами, сохранение карт
├── lang/
│   ├── sitemap_users.ru.lang.php     # Русские подписи к настройкам
│   └── sitemap_users.en.lang.php     # Английские подписи к настройкам
├── tpl/
│   ├── sitemap_users.tpl             # Шаблон для обычного urlset
│   └── sitemap_users.index.tpl       # Шаблон для индексного файла (sitemapindex)
└── setup/
    └── sitemap_users.install.php     # Автоматическое добавление ссылок в robots.txt
                                        # и правил в .htaccess при установке

Установка

  1. Скачайте ZIP-архив плагина из репозитория GitHub.
  2. Распакуйте архив в папку plugins/ вашего сайта. Должна получиться структура, описанная выше.
  3. Зайдите в админ-панель Cotonti → Расширения.
  4. Найдите в списке плагин «Users Sitemap» и нажмите «Установить».

Важно: при установке плагин автоматически:

  • Добавит ссылки на карту пользователей в robots.txt.
  • Добавит правила rewrite в .htaccess для красивых URL (только если активен URLEditor и если этих правил ещё нет).

После установки плагин сразу начинает работать. Не забудьте проверить права доступа к списку пользователей (см. Требования).

Настройка плагина в админке

Все параметры находятся в Расширения → Users Sitemap → Конфигурация.

ПараметрТипПо умолчаниюОписание
cache_ttlстрока3600Время жизни кеша в секундах.
perpageстрока50000Максимальное число URL в одном файле карты.
freqselectdefaultЧастота изменения по умолчанию.
prioselect0.5Приоритет по умолчанию.
usersradio1 (вкл.)Включить профили пользователей в карту сайта.
users_freqselectdailyЧастота изменения страниц профилей.
users_prioselect0.5Приоритет страниц профилей.
use_pretty_urlsradio1 (вкл.)Использовать красивые URL для карты.

Рекомендуется оставить значения по умолчанию, если нет специфических требований.

Настройка красивых URL (ЧПУ)

Чтобы ваша карта была доступна по адресам:

  • https://вашсайт/sitemap-users.xml – основная карта
  • https://вашсайт/sitemap-users-index.xml – индекс (при большом количестве URL)

необходимо, чтобы на сайте был активен плагин URLEditor с любым пресетом, отличным от none.

При установке плагин сам добавляет следующие правила в .htaccess (если их ещё нет):

RewriteRule ^sitemap-users\.xml$ index.php?r=sitemap_users [L]
RewriteRule ^sitemap-users-index\.xml$ index.php?r=sitemap_users&a=index [L]

Вручную эти правила прописывать не нужно — установка сделает всё автоматически. Если вы отключали автоматическое изменение .htaccess, просто скопируйте строки выше в свой .htaccess после строки RewriteEngine On.

Использование

Просмотр карты

  • Основная карта: откройте в браузере https://вашсайт/sitemap-users.xml или https://вашсайт/index.php?r=sitemap_users
  • Индекс (если карта разбита на части): https://вашсайт/sitemap-users-index.xml или https://вашсайт/index.php?r=sitemap_users&a=index

Добавление в robots.txt

При установке плагин автоматически добавляет в корневой robots.txt следующие строки (в зависимости от настроек ЧПУ):

Sitemap: https://вашсайт/index.php?r=sitemap_users
Sitemap: https://вашсайт/index.php?r=sitemap_users&a=index
Sitemap: https://вашсайт/sitemap-users.xml
Sitemap: https://вашсайт/sitemap-users-index.xml

Если вам нужно изменить или удалить эти ссылки — отредактируйте robots.txt вручную.

Проверка валидности

Вы можете использовать XML Sitemap Validator или аналогичные сервисы, чтобы убедиться, что карта сформирована правильно.

Кеширование и его очистка

Готовые карты сохраняются в папке datas/cache/sitemap_users/ и обновляются только по истечении времени cache_ttl (по умолчанию 1 час). Это значительно снижает нагрузку на сервер при частых запросах от поисковых систем.

Если вам нужно принудительно обновить карты раньше срока — просто удалите файлы в папке кэша (datas/cache/sitemap_users/). При следующем обращении они создадутся заново.

Подробное описание каждого файла

Ниже приведено очень подробное описание каждого файла, входящего в плагин. Описание ведётся от общего назначения к конкретным деталям, чтобы новичок смог разобраться.

1. sitemap_users.setup.php

Назначение: «паспорт» плагина. Здесь хранится информация, которую Cotonti использует для регистрации плагина в системе и для построения страницы настроек в админ-панели.

Что содержит:

  • Секция [BEGIN_COT_EXT] и [END_COT_EXT] – метаданные плагина: его код, название, категорию, описание, версию, автора, требуемые модули, права доступа.
  • Секция [BEGIN_COT_EXT_CONFIG] и [END_COT_EXT_CONFIG] – список настроек, доступных администратору. Формат: имя_параметра=порядок:тип:значение_по_умолчанию:подсказка. Примеры: cache_ttl, freq, users.

Важно: изменение этого файла вручную не рекомендуется — все настройки можно менять через админку, и они сохранятся в базе данных.

2. sitemap_users.ajax.php

Назначение: сердце плагина. Вызывается через AJAX-хук при открытии ссылки карты. Формирует и отдаёт готовую XML-карту.

Как он работает (по шагам):

  1. Защита вывода: очищает буферы, устанавливает заголовок Content-Type: application/xml; charset=utf-8.
  2. Получение параметров: $d (номер части) и $a (действие: 'index' для индекса).
  3. Чтение настроек плагина.
  4. Определение путей к кешу (папка datas/cache/sitemap_users/).
  5. Генерация индексного файла (при ?a=index): проверяет кеш, пересчитывает части, формирует <sitemapindex>.
  6. Генерация основной карты: при устаревшем кеше пересобирает данные: проверяет доступ к списку пользователей, выбирает пользователей, формирует URL, передаёт в шаблон, сохраняет части в кеш.
  7. Отдача готового файла: определяет нужный файл кеша, читает, очищает и выводит с правильной XML-декларацией.

3. inc/sitemap_users.functions.php

Назначение: библиотека вспомогательных функций.

  • sitemap_users_compress — удаляет лишние пробельные символы из XML.
  • sitemap_users_date — форматирует Unix-метку в W3C (ISO 8601).
  • sitemap_users_freq — возвращает значение для <changefreq> (если не default).
  • sitemap_users_prio — аналогично для <priority>.
  • sitemap_users_parse — добавляет одну запись в шаблон, при достижении лимита сохраняет текущую часть.
  • sitemap_users_save — сохраняет XML в файл кеша.

4. Языковые файлы (lang/sitemap_users.ru.lang.php и en.lang.php)

Назначение: перевод строк, отображаемых в админ-панели при редактировании настроек плагина. Содержат массив $L и массивы для выпадающих списков.

5. Шаблоны (tpl/)

sitemap_users.tpl (обычная карта)

Содержит блок <!-- BEGIN: MAIN --> с корневым элементом <urlset> и блок <!-- BEGIN: SITEMAP_ROW --> для одного URL. Условные блоки {SITEMAP_ROW_DATE}, {SITEMAP_ROW_FREQ}, {SITEMAP_ROW_PRIO} позволяют опускать необязательные теги.

sitemap_users.index.tpl (индексный файл)

Аналогичен, но корневой элемент — <sitemapindex>, а внутри блока SITEMAP_ROW<sitemap> с <loc> и опционально <lastmod>.

Важно: никогда не добавляйте в эти шаблоны строку <?xml version="1.0" encoding="UTF-8"?> — она вставляется программно.

6. setup/sitemap_users.install.php

Назначение: выполняется при установке плагина. Настраивает robots.txt (добавляет ссылки на карту) и .htaccess (добавляет правила rewrite для красивых URL), если они доступны для записи и правила ещё не существуют.

Пример использования

  1. Установите плагин (см. Установка).
  2. Включите в админке Cotonti для гостей право чтения списка пользователей (Права → users → a → Гости: чтение).
  3. Проверьте, что в robots.txt появились строки Sitemap:.
  4. Откройте https://вашсайт/sitemap-users.xml — вы увидите XML со списком профилей пользователей.
  5. Для проверки карты онлайн-валидатором добавьте 'Sitemaps Generator' в белый список ботов плагина visitor_stats, если он установлен.

Устранение неполадок

  • Карта не открывается (ошибка 404 или 500). Проверьте, активен ли модуль users и доступна ли для записи папка datas/cache/sitemap_users/.
  • Карта пуста, хотя пользователи есть. Проверьте права доступа: для гостей должно быть включено чтение списка пользователей (Права → users → a → Гости: чтение).
  • Красивые URL (sitemap-users.xml) не работают. Убедитесь, что плагин urleditor активен, пресет не none, и правила в .htaccess добавлены.
  • Валидатор показывает ошибку «Incorrect http header content-type: text/html». Добавьте 'Sitemaps Generator' в белый список ботов visitor_stats (файл WhitelistBots.php).
  • Индексный файл пуст или содержит неправильные ссылки. Очистите кеш и проверьте настройки perpage и use_pretty_urls.

Лицензия

Распространяется под лицензией BSD. Свободное использование и модификация при сохранении копирайта.



Рейтинг на основе отзывов:
Звезд получено: 0
Oтзывов всего: 0
Средняя оценка: 0
7 минут чтения
Владелец: Carbonate Sodium

Отзывы к товарам

Отзывов пока нет


Добавить в корзину

Товар без файла для загрузки

 

Категория расширения
SEO и оптимизация

Обсуждение страницы в Telegram

Автор контента

webitproff

Оффлайн

webitproff

Последняя авторизация: 05.08.2026 11:32

  • Чем могу помочь?

    Оказываю весь спектр услуг по CMF Cotonti. Разработка открытых и закрытых корпоративных интернет порталов, небольших социальных сетей, торговые площадки, маркетплейсы, биржи фриланса, каталоги товаров оптовых поставщиков, интернет-магазин под заказ, чтобы делать совместные покупки и групповые совместные продажи от имени нескольких продавцов.

  • Разработки на GitHub бесплатно
    • 05.08.2026 10:47
    • 05.08.2026 11:10
    • Язык:

    Витрина Market PRO

    CMS, Скрипт и Движок - веб сайта онлайн-витрины, интернет магазина инфопродуктов и цифровых товаров. Разные цены в разных валютах на товар. Онлайн-оплата в криптовалюте за товары и услуги.