Плагин Similar Pages (Похожие страницы) для Cotonti
Назначение:
Плагин выводит блок похожих страниц (статей) на основе заголовка текущей страницы, с ранжированием по релевантности:
Страницы из той же подкатегории
Страницы из той же родительской категории
Прочие страницы по всему сайту
В какой-то мере полезен для SEO
Использует:
Fulltext-поиск MySQL по полю page_title
Кеширование и шаблоны через XTemplate
Поддерживает совместимость с PHP 8.3
Состав плагина:
- similar/similar.page.php — основной обработчик плагина, подключается к хуку page.tags для подключения своих тегов к модулю Pages
- similar/tpl/similar.tpl — шаблон вывода похожих страниц
- similar/lang/similar.ru.lang.php — языковой файл RU
- similar/lang/similar.en.lang.php — языковой файл EN
- similar/similar.setup.php — установочный файл плагина и конфигурация
- similar/setup/similar.install.sql запрос установки в БД для
ALTER TABLE `cot_pages` ADD FULLTEXT `page_title_fulltext` (`page_title`);
- similar/setup/similar.uninstall.sql - запрос удаления в БД для
ALTER TABLE `cot_pages` DROP INDEX `page_title_fulltext`;
Инструкция по установке
1. Скачать плагин и распаковать архив на своем ПК.
2. Папку "similar" закачать в "plugins" своего сайта на Cotonti
3. Установите плагин в админке Cotonti:
Панель управления → Расширения → Similar Pages → Нажмите "Установить"
После этого нажмите "Конфигурация" и установите свои настройки, как пример:
Макс. похожих страниц для показа: 3
Строгость релевантности: 5
Макс. длина заголовка: 120
4. Установка завершена.
Подключить плагина в своих шаблонах (обязательно)
1. В своей теме, найдите шаблон page.tpl,
как пример :
Вставьте там, где вы хотите видеть блок похожих статей (можно после комментариев):
<!-- IF {PHP|cot_plugin_active('similar')} -->
{SIMILAR_PAGES}
<!-- ENDIF -->
2. Настройте шаблон similar.tpl по своему вкусу, пример:
<!-- BEGIN: MAIN -->
<div class="col-12">
<h4 class="mb-3">{PHP.L.Similar_pages}</h4>
<div class="list-group mb-3">
<!-- BEGIN: SIMILAR_ROW -->
<div class="list-group-item list-group-item-action">
<div class="align-items-center">
<div class="col-12">
<a href="{SIMILAR_ROW_URL}" class="fw-bold text-decoration-none">{SIMILAR_ROW_TITLE}</a>
<div class="text-muted small">
{SIMILAR_ROW_NUMBER} {SIMILAR_ROW_TEXT_CUT_STRIP}
</div>
<div class="text-muted small">
{SIMILAR_ROW_CAT_PATH_SHORT} • {SIMILAR_ROW_CREATED} {SIMILAR_ROW_OWNER}
</div>
</div>
</div>
</div>
<!-- END: SIMILAR_ROW -->
</div>
</div>
<!-- END: MAIN -->
<!-- BEGIN: NOTFOUND -->
<div class="col-12">
<div class="alert alert-info" role="alert">
{PHP.L.Similar_notfound}
</div>
</div>
<!-- END: NOTFOUND -->
Небольшая справка по этим тегам в этом шаблоне similar.tpl
1. {SIMILAR_ROW_TITLE} - заголовок статьи, генерируется через cot_generate_pagetags
2. {SIMILAR_ROW_URL} - Url статьи, генерируется через cot_generate_pagetags
3. {SIMILAR_ROW_NUMBER} - Порядковый номер статьи в этом списке, - локальный тег из similar.page.php
4. {SIMILAR_ROW_TEXT_CUT_STRIP} - Усеченный текст и очищенный от HTML, - локальный тег из similar.page.php
5. {SIMILAR_ROW_CAT_PATH_SHORT} - Категория статьи, генерируется через cot_generate_pagetags
6. {SIMILAR_ROW_CREATED} - Дата публикации статьи, генерируется через cot_generate_pagetags
7. {SIMILAR_ROW_OWNER} - Не автор, но владелец статьи, - тот, кто ее опубликовал, генерируется через cot_generate_pagetags
При построение макета списков похожих страниц similar.tpl вы можете добавлять какие угодно теги для статей и пользователей, которые включены в функции cot_generate_pagetags и cot_generate_usertags.
Требования
Cotonti Siena v0.9.26
PHP 8.1 – 8.3
MySQL 8.0+ с поддержкой FULLTEXT по InnoDB
Советы
Работает лучше, если заголовки страниц содержат ключевые слова (не слишком короткие).
Можно адаптировать плагин для других сущностей (например, похожие товары, блоги и т.д.).
Плагин переписал и адаптировал webitproff
08 июль 2025 г