Как в MODX REVO генерировать ALIAS из MENUTITLE вместо PAGETITLE?

В MODX Revolution (MODX REVO) вы можете генерировать ALIAS из MENUTITLE вместо PAGETITLE с помощью хуков (hooks) или собственных сниппетов.

Один из способов - использовать хук OnPageSave. Хуки - это события, которые запускаются в MODX в разных точках жизненного цикла. Хук OnPageSave вызывается после сохранения страницы. Вы можете использовать этот хук, чтобы изменить ALIAS перед сохранением, взяв значение из MENUTITLE. Это позволит автоматически генерировать ALIAS всегда из MENUTITLE.

Предположим, что вы создали сниппет с именем "auto_generate_alias". В этом сниппете вы можете получить значение MENUTITLE и использовать его для создания нового ALIAS. Затем вы можете присвоить новый ALIAS с помощью функции $page->set('alias', $newAlias) перед сохранением страницы.

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

<?php
// Получаем текущую страницу
$page = $modx->resource;

// Получаем значение MENUTITLE
$menuTitle = $page->get('menutitle');

// Генерируем новый ALIAS
$newAlias = strtolower(str_replace(' ', '-', $menuTitle));

// Устанавливаем новый ALIAS
$page->set('alias', $newAlias);

// Сохраняем изменения
$page->save();

Вы можете сохранить этот сниппет (например, с именем "auto_generate_alias") в папке сниппетов вашего MODX-сайта (обычно "assets/snippets/"). Затем вы можете добавить этот сниппет в список вызовов хуков "OnPageSave", чтобы он выполнялся после сохранения каждой страницы.

Чтобы добавить его в список вызовов хуков "OnPageSave", выполните следующие шаги:

1. Откройте раздел "Элементы" в административной панели MODX.
2. Выберите "Система" в верхнем меню, а затем выберите "Хуки".
3. Создайте новый хук с именем "auto_generate_alias".
4. В настройках хука выберите событие "OnPageSave".
5. В списке "Сниппеты" добавьте созданный вами сниппет с именем "auto_generate_alias".
6. Нажмите "Сохранить" для сохранения хука.

Теперь, при сохранении страницы в MODX, ALIAS будет автоматически сгенерирован из значения MENUTITLE.

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