Alias Page PRO - Менеджер алиасов в URL для Cotonti

Плагин автоматически создает алиасы если их нет. Инструменты массового редактирования алиасов, мета-заголовков и заголовков статей в модуле page веб конструктора приложений на CMF Cotonti

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

Alias Page PRO — автоматические алиасы для страниц модуля Page 

 

Плагин автоматически создает алиасы если их нет. Инструменты массового редактирования алиасов, мета-заголовков и заголовков статей в модуле page веб конструктора приложений на CMF Cotonti


Полностью заменяет штатный плагин autoalias2 (идущий в комплекте Cotonti) — одновременное использование не допускается и может вызвать конфликты.

Важно: Не устанавливайте этот плагин вместе со штатным autoalias2 (https://github.com/Cotonti/Cotonti/tree/master/plugins/autoalias2) — они выполняют одну и ту же задачу, и их сосуществование приведёт к нестабильной работе.


Оглавление


История создания и решаемая проблема

Штатный плагин autoalias2 (поставляется с Cotonti) использует для транслитерации кириллицы языковой файл, зависящий от языка интерфейса сайта. Если интерфейс, например, русский, а контент страницы — украинский, то украинские буквы (і, є, ї, ґ) не транслитерируются и могут быть удалены или остаться без изменений, портя URL.

Alias Page PRO полностью решает эту проблему:

  • Использует встроенную функцию транслитерации, которая содержит единую таблицу символов русского и украинского алфавитов.
  • Не зависит от системных языковых файлов — результат всегда предсказуем.
  • Предоставляет удобную трёхвкладочную панель управления: статистика, просмотр, массовое редактирование.
  • Позволяет массово создавать или очищать алиасы для всех страниц.

Таким образом, плагин является полноценной заменой штатного autoalias2 с улучшенной функциональностью и контролем.


Возможности

  • Автоматическая генерация алиаса из заголовка страницы при её добавлении или редактировании, если поле алиаса не заполнено.
  • Внутренняя транслитерация кириллицы (русский + украинский) в латиницу — не зависит от языковых файлов Cotonti.
  • Удаление всех символов, кроме букв, цифр, дефиса, подчёркивания и пробела.
  • Гибкие настройки:
    • Включение/отключение транслитерации.
    • Добавление ID страницы в начало алиаса.
    • Поведение при дублировании алиаса (добавление ID или случайного числа).
    • Выбор разделителя слов (дефис, подчёркивание, точка).
    • Приведение к нижнему регистру.
  • Административная панель с тремя вкладками:
    • Статистика — общее количество страниц, сколько с алиасом, без алиаса, без Meta Title.
    • Списки и Алиасы — таблица всех страниц с ID, заголовком, мета‑заголовком и алиасом.
    • Управление — массовое редактирование заголовка, Meta Title и алиаса сразу для нескольких страниц.
  • Массовые действия на вкладке «Статистика»:
    • Создать алиасы — генерация алиасов для всех страниц, где алиас отсутствует.
    • Очистить все алиасы — полная очистка поля page_alias у всех страниц (с подтверждением).
  • Пагинация в списках и формах управления.
  • Полная локализация интерфейса (русский, английский).

Требования

  • Cotonti v1.+ (протестировано на актуальной версии)
  • Модуль page (должен быть установлен и активен)
  • PHP 8.5+
  • MySQL 8.4+
  • Права администратора для доступа к панели управления плагином.
  • Штатный плагин autoalias2 должен быть отключён или удалён, чтобы избежать конфликтов.

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

aliaspagepro/
├── aliaspagepro.setup.php           # Регистрация плагина и описание настроек
├── aliaspagepro.page.php            # Хук для добавления/редактирования страницы
├── aliaspagepro.admin.php           # Административная панель
├── inc/
│   └── aliaspagepro.functions.php   # Функции транслитерации, конвертации, обновления
├── lang/
│   ├── aliaspagepro.ru.lang.php     # Русский языковой файл
│   └── aliaspagepro.en.lang.php     # Английский языковой файл
└── tpl/
    └── aliaspagepro.admin.tpl       # Шаблон админ‑панели

Установка

  1. Отключите или удалите штатный плагин autoalias2, если он активен (Расширения → AutoAlias 2 → Деактивировать).
  2. Скачайте ZIP‑архив плагина aliaspagepro из официального репозитория.
  3. Распакуйте архив в папку plugins/ вашего сайта.
  4. Зайдите в админ‑панель Cotonti → Расширения.
  5. Найдите «Alias Page PRO» и нажмите «Установить».

После установки плагин сразу начинает работать — при добавлении или редактировании страниц алиас будет генерироваться автоматически, если поле оставлено пустым.


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

Все параметры доступны по пути Расширения → Alias Page PRO → Конфигурация.

ПараметрТипПо умолчаниюОписание
translitradio1 (вкл.)Включает транслитерацию нелатинских символов (кириллицы) в латиницу.
prepend_idradio0 (выкл.)Добавлять ID страницы в начало алиаса. Пример: 123-название-страницы.
on_duplicateselectIDДействие при обнаружении дубликата алиаса (если prepend_id выключен): ID — добавить ID страницы в конец; Random — добавить случайное число от 2 до 99.
sepselect-Разделитель слов: дефис (-), подчёркивание (_), точка (.).
lowercaseradio1 (вкл.)Приводить алиас к нижнему регистру.

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

Автоматическое создание алиаса

Когда вы добавляете или редактируете страницу в модуле page и оставляете поле «Alias» пустым, плагин срабатывает на хуках page.add.add.done и page.edit.update.done. Процесс генерации алиаса:

  1. Берётся заголовок страницы (page_title).
  2. Если транслитерация включена, заголовок пропускается через внутреннюю функцию aliaspagepro_transliterate(), которая заменяет все кириллические символы (русские и украинские) согласно единой таблице.
  3. Удаляются все символы, кроме букв, цифр, дефиса, подчёркивания и пробела.
  4. Пробелы заменяются на выбранный разделитель.
  5. Если включено приведение к нижнему регистру, все буквы становятся строчными.
  6. Если включена опция «Добавить ID в начало», перед алиасом ставится {id}{разделитель}.
  7. Проверяется уникальность: если сгенерированный алиас уже существует у другой страницы и prepend_id выключен, то в конец добавляется ID страницы или случайное число (в зависимости от настройки on_duplicate).
  8. Готовый алиас записывается в поле page_alias.

Административная панель (три вкладки)

Панель доступна через Админка → Инструменты → Alias Page PRO.

Вкладка «Статистика»

Показывает четыре числа:

  • Всего страниц — количество страниц с непустым заголовком.
  • С алиасом — страницы, у которых заполнено поле page_alias.
  • Без алиаса — страницы с пустым алиасом.
  • Без Meta Title — страницы, у которых не заполнен мета‑заголовок (page_metatitle).

Кнопки действий:

  • Создать алиасы — запускает генерацию алиасов для всех страниц, где алиас отсутствует.
  • Очистить все алиасы — стирает алиас у всех страниц (требуется подтверждение).
  • Конфигурация — переход к настройкам плагина.

Вкладка «Списки и Алиасы»

Отображает таблицу всех страниц (с пагинацией по 25 записей на странице) со столбцами:

  • ID
  • Заголовок (является ссылкой на страницу на сайте)
  • Meta Title
  • Алиас

Предназначена для быстрого обзора состояния алиасов.

Вкладка «Управление»

Позволяет редактировать заголовок, Meta Title и алиас сразу для нескольких страниц на одной странице (по 10 записей). Поле ID не редактируется.

Чтобы изменить данные:

  1. Внесите правки в нужные поля.
  2. Нажмите кнопку «Обновить».

После сохранения вы останетесь на той же странице пагинации, с которой начали.


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

Ниже — детальное описание всех файлов плагина.


aliaspagepro.setup.php

Назначение: регистрация плагина в системе Cotonti и описание его настроек.

Содержит две обязательные секции:

  • [BEGIN_COT_EXT] … [END_COT_EXT] – метаданные:
    • Code – уникальный идентификатор aliaspagepro.
    • Name – отображаемое имя.
    • Categoryseo (категория в админке).
    • Version – текущая версия (2.5.1).
    • Requires_modulespage.
    • Права доступа гостей и пользователей.
  • [BEGIN_COT_EXT_CONFIG] … [END_COT_EXT_CONFIG] – список параметров конфигурации:
    • translit, prepend_id, on_duplicate, sep, lowercase.
    • Каждая строка задаёт порядок сортировки, тип поля (radio/select), значение по умолчанию и описание.

Без этого файла Cotonti не сможет установить плагин и предоставить форму настроек.


aliaspagepro.page.php

Хуки: page.add.add.done, page.edit.update.done

Выполняется сразу после добавления или обновления страницы. Код минимален:

if (empty($ritem['page_alias']))
{
    require_once cot_incfile('aliaspagepro', 'plug');
    $ritem['page_alias'] = aliaspagepro_update($ritem['page_title'], $id);
}

Если поле алиаса пусто, подключаются функции плагина и вызывается aliaspagepro_update(), которая генерирует новый алиас на основе заголовка и ID страницы. Результат записывается прямо в массив $ritem, и модуль page сохраняет его в базу данных.


aliaspagepro.admin.php

Хук: tools

Формирует страницу администрирования плагина (в разделе «Инструменты»). Логика работы:

  1. Определяет текущую вкладку (tab) и действие (a) из URL.
  2. Назначает переменные навигации для шаблона (активные вкладки, ссылки).
  3. Обработка специальных действий (до вывода вкладок):
    • a=create – выбирает все страницы с пустым алиасом, для каждой вызывает aliaspagepro_update(), выводит сообщение с количеством созданных алиасов.
    • a=clear_aliases – обнуляет поле page_alias у всех страниц, выводит сообщение об очистке.
    • После выполнения редиректит на ту же вкладку (с сохранением параметров).
  4. Формирование содержимого вкладок:
    • Статистика – выполняет четыре SQL‑запроса для подсчёта показателей, передаёт их в шаблон, а также URL для кнопки «Создать алиасы».
    • Списки и Алиасы – получает данные с пагинацией (LIMIT/OFFSET) из таблицы cot_pages. Для каждой страницы вычисляет URL через cot_page_url(), присваивает переменные LIST_ROW_* и парсит блок LIST_ROW. При отсутствии страниц выводит LIST_EMPTY. Добавляет пагинацию.
    • Управление – аналогично получает данные с пагинацией. Если пришёл POST‑запрос с a=update, в цикле обновляет заголовок, мета‑заголовок и алиас для всех ID, переданных в форме. Использует $backUrl с номером текущей страницы (durl), чтобы после сохранения вернуться на ту же страницу. Проблема с & в URL решается заменой && перед редиректом.
  5. Выводит системные сообщения, парсит главный блок MAIN и возвращает HTML.

inc/aliaspagepro.functions.php

Содержит три основные функции плагина.

aliaspagepro_transliterate($str)

Внутренняя функция транслитерации. Принимает строку и пропускает через единый массив замен, отсортированный от длинных последовательностей к коротким:

  • Украинские уникальные буквы: Є, є, Ї, ї, Ґ, ґ, І, і.
  • Русские буквы, отсутствующие в украинском: ё, Ё, ы, Ы, э, Э, ъ, Ъ.
  • Общие многосимвольные комбинации: ЩShch, ЖZh, ХKh, ЦTs, ЧCh, ШSh, ЮYu, ЯYa.
  • Одиночные буквы (общие для русского и украинского): АA, бb и т.д.
  • Мягкий знак и апострофы заменяются на пустую строку (удаляются).

Возвращает строку с заменёнными символами. Не зависит от внешних файлов.

aliaspagepro_convert($title, $id, $duplicate)

Основная функция преобразования заголовка в алиас. Выполняет шаги:

  1. Если translit включён, вызывает aliaspagepro_transliterate().
  2. Удаляет запрещённые символы через preg_replace('#[^\p{L}0-9\-_ ]#u', '', $title).
  3. Заменяет пробелы на разделитель из конфига.
  4. При lowercase=1 приводит к нижнему регистру.
  5. Если prepend_id=1 и $id не пуст, добавляет префикс $id . $sep.
  6. Если $duplicate=true, добавляет в конец ID (если задан и выбран режим ID) или случайное число (режим Random). Возвращает готовый алиас.

aliaspagepro_update($title, $id)

Вызывается при добавлении/редактировании страницы и при массовом создании. В цикле do...while:

  • Генерирует алиас через aliaspagepro_convert().
  • Если prepend_id выключен, проверяет в базе существование такого алиаса у другой страницы (page_id != $id).
  • Если дубликат найден, устанавливает $duplicate=true, и на следующей итерации aliaspagepro_convert добавит ID/случайное число.
  • Когда получен уникальный алиас, обновляет запись в таблице cot_pages.
  • Возвращает финальный алиас.

Языковые файлы (lang/aliaspagepro.ru.lang.php, en.lang.php)

Содержат все текстовые строки: название плагина, описание, подписи к настройкам (включая подсказки и значения выпадающих списков), названия вкладок, сообщения.
Используются функцией cot_langfile() при загрузке плагина.


Шаблон tpl/aliaspagepro.admin.tpl

HTML‑шаблон с блоками XTemplate для админ‑панели. Использует Bootstrap 5 (входит в Cotonti v1.+). Основные блоки:

  • MAIN – контейнер страницы с вкладками.
  • LIST_ROW, LIST_EMPTY – строки таблицы во вкладке «Списки и Алиасы».
  • MANAGE_ROW, MANAGE_EMPTY – строки формы во вкладке «Управление».
  • Пагинация подключается через системный тег {PAGINATION}.

Вкладки переключаются через условные блоки <!-- IF {PHP.tab} == '...' -->.


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

Ситуация: сайт с русским интерфейсом, но страница создана с украинским заголовком «Нова сторінка». Алиас не заполнен.

  1. Пользователь сохраняет страницу.
  2. Плагин вызывает aliaspagepro_transliterate('Нова сторінка').
  3. Символы заменяются:
    • НN, оo, вv, аa,
    • сs, тt, оo, рr,
    • іi, нn, кk, аa.
    • Пробел заменяется на дефис (sep=-).
  4. С включённым lowercase получаем nova-storinka.
  5. Алиас уникален — записывается в базу.

Если бы использовался штатный autoalias2 с русской таблицей транслитерации, буква і осталась бы без изменений или была удалена, что привело бы к некорректному URL.


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

  • Алиас не создаётся. Убедитесь, что плагин активен и поле «Alias» в форме редактирования страницы пусто. Проверьте, что штатный плагин autoalias2 отключён.
  • В админке не отображаются строки таблиц. Проверьте, что файл шаблона aliaspagepro.admin.tpl соответствует последней версии, а блоки LIST_ROW и MANAGE_ROW находятся непосредственно внутри MAIN (не обёрнуты в другие блоки).
  • После сохранения в «Управлении» URL содержит &amp;. Эта проблема исправлена в версии 2.5.1 путём принудительной замены &amp;& в URL редиректа. Если всё ещё проявляется, убедитесь, что у вас актуальный admin.php.
  • Транслитерация работает не так, как ожидается. Таблица транслитерации зашита в aliaspagepro_transliterate(). Если нужного символа нет, добавьте его в массив $translit (файл functions.php), соблюдая порядок от длинных последовательностей к коротким.
  • Кнопка «Создать алиасы» не даёт результата. Убедитесь, что в таблице cot_pages есть записи с пустым page_alias. Проверьте права на запись в базу данных.
  • Конфликт с плагином autoalias2. Если оба плагина активны, возможна непредсказуемая работа. Удалите или деактивируйте штатный autoalias2.

Лицензия

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




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

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

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


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

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

 

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

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

webitproff

Онлайн

webitproff

Последняя авторизация: 06.08.2026 16:37

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

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

  • Разработки на GitHub бесплатно
    • 06.08.2026 15:26
    • 06.08.2026 15:29
    • Язык:

    Витрина Market PRO

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