The Similar Pages plugin displays a block of similar pages (articles) based on the title of the current page, ranked by relevance:
- Pages from the same subcategory
- Pages from the same parent category
- Other pages across the entire site
- Somewhat useful for SEO
- Uses MySQL full-text search on the
page_titlefield - Caching and templating via XTemplate
- Supports compatibility with PHP 8.3
similar/similar.page.php— Main plugin handler, connects to thepage.tagshook to integrate its tags with the Pages modulesimilar/tpl/similar.tpl— Template for displaying similar pagessimilar/lang/similar.ru.lang.php— Russian language filesimilar/lang/similar.en.lang.php— English language filesimilar/similar.setup.php— Plugin installation file and configurationsimilar/setup/similar.install.sql— Database installation query:
ALTER TABLE `cot_pages` ADD FULLTEXT `page_title_fulltext` (`page_title`);similar/setup/similar.uninstall.sql— Database uninstallation query:
ALTER TABLE `cot_pages` DROP INDEX `page_title_fulltext`;- Download the plugin and unzip the archive on your PC.
- Upload the
similarfolder to thepluginsdirectory of your Cotonti site. - Install the plugin in the Cotonti admin panel:
- Go to Control Panel → Extensions → Similar Pages → Click "Install"
- Then click "Configuration" and set your desired settings, for example:
- Max similar pages to display: 3
- Relevance strictness: 5
- Max title length: 120
- Installation is complete.
-
In your theme, locate the
page.tpltemplate, for example:
https://github.com/webitproff/cot_2waydeal_build/tree/master/public_html/themes/2waydeal/modules/pageInsert the following where you want the similar pages block to appear (e.g., after comments):
<!-- IF {PHP|cot_plugin_active('similar')} --> {SIMILAR_PAGES} <!-- ENDIF -->
-
Customize the
similar.tpltemplate to your liking. Example:<!-- 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_ROW_TITLE}- Page title, generated viacot_generate_pagetags{SIMILAR_ROW_URL}- Page URL, generated viacot_generate_pagetags{SIMILAR_ROW_NUMBER}- Sequential number of the page in the list, local tag fromsimilar.page.php{SIMILAR_ROW_TEXT_CUT_STRIP}- Truncated text, stripped of HTML, local tag fromsimilar.page.php{SIMILAR_ROW_CAT_PATH_SHORT}- Page category, generated viacot_generate_pagetags{SIMILAR_ROW_CREATED}- Page publication date, generated viacot_generate_pagetags{SIMILAR_ROW_OWNER}- Page owner (not author, but the user who published it), generated viacot_generate_pagetags
When designing the similar pages list in similar.tpl, you can add any tags for pages and users supported by cot_generate_pagetags and cot_generate_usertags.
- Cotonti Siena v0.9.26
- PHP 8.1 – 8.3
- MySQL 8.0+ with FULLTEXT support for InnoDB
- Works best if page titles contain meaningful keywords (not too short).
- The plugin can be adapted for other entities (e.g., similar products, blogs, etc.).
Plugin rewritten and adapted by webitproff
July 08, 2025
Плагин выводит блок похожих страниц (статей) на основе заголовка текущей страницы, с ранжированием по релевантности:
- Страницы из той же подкатегории
- Страницы из той же родительской категории
- Прочие страницы по всему сайту
- В какой-то мере полезен для SEO
- Fulltext-поиск MySQL по полю
page_title - Кеширование и шаблоный через XTemplate
- Поддерживает совместимость с PHP 8.3
similar/similar.page.php— основной обработчик плагина, подключается к хукуpage.tagsдля подключения своих тегов к модулю Pagessimilar/tpl/similar.tpl— шаблон вывода похожих страницsimilar/lang/similar.ru.lang.php— языковой файл RUsimilar/lang/similar.en.lang.php— языковой файл ENsimilar/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`;- Скачать плагин и распаковать архив на своем ПК.
- Папку
similarзакачать вpluginsсвоего сайта на Cotonti. - Установить плагин в админке Cotonti:
- Панель управления → Расширения → Similar Pages → Нажмите "Установить"
- После этого нажмите "Конфигурация" и установите свои настройки, например:
- Макс. похожих страниц для показа: 3
- Строгость релевантности: 5
- Макс. длина заголовка: 120
- Установка завершена.
-
В своей теме найдите шаблон
page.tpl, например:
https://github.com/webitproff/cot_2waydeal_build/tree/master/public_html/themes/2waydeal/modules/pageВставьте там, где вы хотите видеть блок похожих статей (можно после комментариев):
<!-- IF {PHP|cot_plugin_active('similar')} --> {SIMILAR_PAGES} <!-- ENDIF -->
-
Настройте шаблон
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_ROW_TITLE}- заголовок статьи, генерируется черезcot_generate_pagetags{SIMILAR_ROW_URL}- URL статьи, генерируется черезcot_generate_pagetags{SIMILAR_ROW_NUMBER}- Порядковый номер статьи в списке, локальный тег изsimilar.page.php{SIMILAR_ROW_TEXT_CUT_STRIP}- Усеченный текст, очищенный от HTML, локальный тег изsimilar.page.php{SIMILAR_ROW_CAT_PATH_SHORT}- Категория статьи, генерируется черезcot_generate_pagetags{SIMILAR_ROW_CREATED}- Дата публикации статьи, генерируется черезcot_generate_pagetags{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 г.

