Alias Page PRO - Менеджер алиасов в URL для Cotonti
Плагин автоматически создает алиасы если их нет. Инструменты массового редактирования алиасов, мета-заголовков и заголовков статей в модуле page веб конструктора приложений на CMF 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 # Шаблон админ‑панелиУстановка
- Отключите или удалите штатный плагин
autoalias2, если он активен (Расширения → AutoAlias 2 → Деактивировать). - Скачайте ZIP‑архив плагина
aliaspageproиз официального репозитория. - Распакуйте архив в папку
plugins/вашего сайта. - Зайдите в админ‑панель Cotonti → Расширения.
- Найдите «Alias Page PRO» и нажмите «Установить».
После установки плагин сразу начинает работать — при добавлении или редактировании страниц алиас будет генерироваться автоматически, если поле оставлено пустым.
Настройка плагина в админке
Все параметры доступны по пути Расширения → Alias Page PRO → Конфигурация.
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
translit | radio | 1 (вкл.) | Включает транслитерацию нелатинских символов (кириллицы) в латиницу. |
prepend_id | radio | 0 (выкл.) | Добавлять ID страницы в начало алиаса. Пример: 123-название-страницы. |
on_duplicate | select | ID | Действие при обнаружении дубликата алиаса (если prepend_id выключен): ID — добавить ID страницы в конец; Random — добавить случайное число от 2 до 99. |
sep | select | - | Разделитель слов: дефис (-), подчёркивание (_), точка (.). |
lowercase | radio | 1 (вкл.) | Приводить алиас к нижнему регистру. |
Использование
Автоматическое создание алиаса
Когда вы добавляете или редактируете страницу в модуле page и оставляете поле «Alias» пустым, плагин срабатывает на хуках page.add.add.done и page.edit.update.done. Процесс генерации алиаса:
- Берётся заголовок страницы (
page_title). - Если транслитерация включена, заголовок пропускается через внутреннюю функцию
aliaspagepro_transliterate(), которая заменяет все кириллические символы (русские и украинские) согласно единой таблице. - Удаляются все символы, кроме букв, цифр, дефиса, подчёркивания и пробела.
- Пробелы заменяются на выбранный разделитель.
- Если включено приведение к нижнему регистру, все буквы становятся строчными.
- Если включена опция «Добавить ID в начало», перед алиасом ставится
{id}{разделитель}. - Проверяется уникальность: если сгенерированный алиас уже существует у другой страницы и
prepend_idвыключен, то в конец добавляется ID страницы или случайное число (в зависимости от настройкиon_duplicate). - Готовый алиас записывается в поле
page_alias.
Административная панель (три вкладки)
Панель доступна через Админка → Инструменты → Alias Page PRO.
Вкладка «Статистика»
Показывает четыре числа:
- Всего страниц — количество страниц с непустым заголовком.
- С алиасом — страницы, у которых заполнено поле
page_alias. - Без алиаса — страницы с пустым алиасом.
- Без Meta Title — страницы, у которых не заполнен мета‑заголовок (
page_metatitle).
Кнопки действий:
- Создать алиасы — запускает генерацию алиасов для всех страниц, где алиас отсутствует.
- Очистить все алиасы — стирает алиас у всех страниц (требуется подтверждение).
- Конфигурация — переход к настройкам плагина.
Вкладка «Списки и Алиасы»
Отображает таблицу всех страниц (с пагинацией по 25 записей на странице) со столбцами:
- ID
- Заголовок (является ссылкой на страницу на сайте)
- Meta Title
- Алиас
Предназначена для быстрого обзора состояния алиасов.
Вкладка «Управление»
Позволяет редактировать заголовок, Meta Title и алиас сразу для нескольких страниц на одной странице (по 10 записей). Поле ID не редактируется.
Чтобы изменить данные:
- Внесите правки в нужные поля.
- Нажмите кнопку «Обновить».
После сохранения вы останетесь на той же странице пагинации, с которой начали.
Подробное описание каждого файла
Ниже — детальное описание всех файлов плагина.
aliaspagepro.setup.php
Назначение: регистрация плагина в системе Cotonti и описание его настроек.
Содержит две обязательные секции:
[BEGIN_COT_EXT] … [END_COT_EXT]– метаданные:Code– уникальный идентификаторaliaspagepro.Name– отображаемое имя.Category–seo(категория в админке).Version– текущая версия (2.5.1).Requires_modules–page.- Права доступа гостей и пользователей.
[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
Формирует страницу администрирования плагина (в разделе «Инструменты»). Логика работы:
- Определяет текущую вкладку (
tab) и действие (a) из URL. - Назначает переменные навигации для шаблона (активные вкладки, ссылки).
- Обработка специальных действий (до вывода вкладок):
a=create– выбирает все страницы с пустым алиасом, для каждой вызываетaliaspagepro_update(), выводит сообщение с количеством созданных алиасов.a=clear_aliases– обнуляет полеpage_aliasу всех страниц, выводит сообщение об очистке.- После выполнения редиректит на ту же вкладку (с сохранением параметров).
- Формирование содержимого вкладок:
- Статистика – выполняет четыре SQL‑запроса для подсчёта показателей, передаёт их в шаблон, а также URL для кнопки «Создать алиасы».
- Списки и Алиасы – получает данные с пагинацией (LIMIT/OFFSET) из таблицы
cot_pages. Для каждой страницы вычисляет URL черезcot_page_url(), присваивает переменныеLIST_ROW_*и парсит блокLIST_ROW. При отсутствии страниц выводитLIST_EMPTY. Добавляет пагинацию. - Управление – аналогично получает данные с пагинацией. Если пришёл POST‑запрос с
a=update, в цикле обновляет заголовок, мета‑заголовок и алиас для всех ID, переданных в форме. Использует$backUrlс номером текущей страницы (durl), чтобы после сохранения вернуться на ту же страницу. Проблема с&в URL решается заменой&→&перед редиректом.
- Выводит системные сообщения, парсит главный блок
MAINи возвращает HTML.
inc/aliaspagepro.functions.php
Содержит три основные функции плагина.
aliaspagepro_transliterate($str)
Внутренняя функция транслитерации. Принимает строку и пропускает через единый массив замен, отсортированный от длинных последовательностей к коротким:
- Украинские уникальные буквы:
Є,є,Ї,ї,Ґ,ґ,І,і. - Русские буквы, отсутствующие в украинском:
ё,Ё,ы,Ы,э,Э,ъ,Ъ. - Общие многосимвольные комбинации:
Щ→Shch,Ж→Zh,Х→Kh,Ц→Ts,Ч→Ch,Ш→Sh,Ю→Yu,Я→Ya. - Одиночные буквы (общие для русского и украинского):
А→A,б→bи т.д. - Мягкий знак и апострофы заменяются на пустую строку (удаляются).
Возвращает строку с заменёнными символами. Не зависит от внешних файлов.
aliaspagepro_convert($title, $id, $duplicate)
Основная функция преобразования заголовка в алиас. Выполняет шаги:
- Если
translitвключён, вызываетaliaspagepro_transliterate(). - Удаляет запрещённые символы через
preg_replace('#[^\p{L}0-9\-_ ]#u', '', $title). - Заменяет пробелы на разделитель из конфига.
- При
lowercase=1приводит к нижнему регистру. - Если
prepend_id=1и$idне пуст, добавляет префикс$id . $sep. - Если
$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} == '...' -->.
Пример использования
Ситуация: сайт с русским интерфейсом, но страница создана с украинским заголовком «Нова сторінка». Алиас не заполнен.
- Пользователь сохраняет страницу.
- Плагин вызывает
aliaspagepro_transliterate('Нова сторінка'). - Символы заменяются:
Н→N,о→o,в→v,а→a,с→s,т→t,о→o,р→r,і→i,н→n,к→k,а→a.- Пробел заменяется на дефис (
sep=-).
- С включённым
lowercaseполучаемnova-storinka. - Алиас уникален — записывается в базу.
Если бы использовался штатный autoalias2 с русской таблицей транслитерации, буква і осталась бы без изменений или была удалена, что привело бы к некорректному URL.
Устранение неполадок
- Алиас не создаётся. Убедитесь, что плагин активен и поле «Alias» в форме редактирования страницы пусто. Проверьте, что штатный плагин
autoalias2отключён. - В админке не отображаются строки таблиц. Проверьте, что файл шаблона
aliaspagepro.admin.tplсоответствует последней версии, а блокиLIST_ROWиMANAGE_ROWнаходятся непосредственно внутриMAIN(не обёрнуты в другие блоки). - После сохранения в «Управлении» URL содержит
&. Эта проблема исправлена в версии 2.5.1 путём принудительной замены&→&в URL редиректа. Если всё ещё проявляется, убедитесь, что у вас актуальныйadmin.php. - Транслитерация работает не так, как ожидается. Таблица транслитерации зашита в
aliaspagepro_transliterate(). Если нужного символа нет, добавьте его в массив$translit(файлfunctions.php), соблюдая порядок от длинных последовательностей к коротким. - Кнопка «Создать алиасы» не даёт результата. Убедитесь, что в таблице
cot_pagesесть записи с пустымpage_alias. Проверьте права на запись в базу данных. - Конфликт с плагином
autoalias2. Если оба плагина активны, возможна непредсказуемая работа. Удалите или деактивируйте штатныйautoalias2.
Лицензия
BSD. Свободное использование и модификация при сохранении авторских прав.
Ссылки
Товар без файла для загрузки
Обсуждение страницы в Telegram
Автор контента
Онлайн
webitproff
Последняя авторизация: 06.08.2026 16:37
Чем могу помочь?
Оказываю весь спектр услуг по CMF Cotonti. Разработка открытых и закрытых корпоративных интернет порталов, небольших социальных сетей, торговые площадки, маркетплейсы, биржи фриланса, каталоги товаров оптовых поставщиков, интернет-магазин под заказ, чтобы делать совместные покупки и групповые совместные продажи от имени нескольких продавцов.
Разработки на GitHub бесплатно
Telegram
- 06.08.2026 15:26
- 06.08.2026 15:29
- Язык:
Связанные и похожие товары
Витрина Market PRO
CMS, Скрипт и Движок - веб сайта онлайн-витрины, интернет магазина инфопродуктов и цифровых товаров. Разные цены в разных валютах на товар. Онлайн-оплата в криптовалюте за товары и услуги.
English