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 страницы, дата публикации и?

Оставьте комментарий!

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

Вход / регистрация или войти без комментирования
  Имя и сайт используются только при регистрации

Авторизация MaxSiteAuth. Войти через loginza

(обязательно)