На время проведения реконструкции сайт переведён в режим "ТОЛЬКО ЧТЕНИЕ" (Read only). Приносим свои извинения!
MaxHub
Полезности по Maxsite CMS

Какие варианты по авто-заполнению page_slug возможны?

Обсуждения / 30 марта 2016

Долгое время вынашивал идею, чтобы заменить "page_slug" собственным значением. Например, чтобы "page_slug" содержал не название статьи в латинице, а к примеру id статьи или какой-то случайный номер. Посудите сами. Легче запомнить ссылку на статью вида site.ru/page/p3215, чем такой - site.ru/page/eto-moja-luchshaja-statja-zdes. Оказалось, что решение проблемы состоит в поиске нужной функции и ее изменении. Подробности ниже.

Итак, нужная функция лежит в файле common/functions-edit.php. Имя функции mso_new_page(). Строка 597. Вот тут-то и начинается все самое интересное. Проверки, присваивание и т.д. Можно увидеть, как используется mso_slug() - функция перевода кириллицы в латиницу. Не долго думая, я вписал свой кусок кода после функции проверки page_slug на пустое значение.

//дата вместо короткой ссыдки, задать в админке нельзя
if ($page_slug)
{
$page_slug = 'p' . date('dmyHi');
}

Ситуация в корне изменилась, теперь слуг стал гораздо короче и запомнить его легче, да и ссылками делиться легче и удобнее. Но возникло несколько вопросов: Как реализовать возможность работы с отключением и включением данной функции из админки? У кого есть какие варианты, по изменению page_slug, отличному от моего?

Комментариев: 2
  1. Так то можно использовать мой плагин ЧПУ и достичь того же эффекта, да. Но понятно, что это дополнительная нагрузка и задачу хотелось бы решить без привлечения «крупной артиллерии». Но вот как сделать по твоему варианту - пока затрудняюсь ответить. Очевидно нужно плагин писать, который бы перехватывал момент сохранения новой записи и переопределял значение параметра page_slug ещё до сохранения записи в базу. Там (в функции) вроде такое возможно сделать.

  2. Если писать плагин, то он будет скорее "админский", чем пользовательский. Хотя это не так существенно. Возможно стоит поработать с хуком "new_page", "new_page_", "new_page_publish". Но я понятия не имею как с ними работать. Хотя вариант варианты по замене slug возможны следующие: id страницы, дата публикации и?