23.08.2012 || Раздел: || Контент KooBoo Представьте ситуацию: Вы только что установили сайт на kooboo и создали несколько статей через административную панель, согласно документации. При просмотре результатов своей работы Вы неожиданно обнаруживаете, что URL-адреса у созданных Вами статей оказываются частично на русском языке (к тому же преобразованные в Юникод). Причиной этого является UserKey. Попробую рассказать, что это и какие есть способы обойти эту маленькую неприятность. При работе с системой KooBoo CMS Вы будете постоянно сталкиваться с UserKey. UserKey - это поле, которое автоматически присваивается элементу содержимого, оно уникально для каждого элемента. Чаще всего его можно видеть при работе с правилами данных и в URL адресах. В системе KooBoo UserKey - это ключ URL-адреса, который при обращении к элементу содержимого на сайте сравнивается с ключевым параметром в URL строке (query string). Его можно использовать для фильтрации при отображении контента и в любых местах, где необходимо однозначно идентифицировать элемент содержимого. Рассмотрим все это на примере сайта SampleSite, входящего в kooboo по умолчанию. Сначала еще раз посмотрим в корень проблемы. Создаем статью, например, такую: Сохраняем статью и переходим на сайт. Смотрим, что получилось: А теперь перейдите на страницу просмотра статьи и Вы увидите примерно следующее: Т.е. мы получили такой адрес: Совсем не Friendly URL получается! Адрес статьи сформировался следующим образом: А UserKey в свою очередь формируется на основе заголовка статьи (title), который мы как раз указали на русском языке. Если говорить точнее, то он формируется из того поля, у которого в параметрах типа содержимого (Content Type) указано "Обобщающее поле (Summary field)". Он генерируется при создании статьи и в дальнейшем не меняется. Что же делать, если нужен адрес вроде: Сама система Kooboo не умеет транслитеровать текст в UserKey. Существует несколько путей обхода данной проблемы. Рассмотрю их опять же на примере статей, но они применимы к любому типу содержимого (контента). 1) Первый и самый банальный способ - вообще отказаться от использования UserKey в URL-адресах и, например, применять идентификатор статьи (UUID). Как это сделать читайте здесь. 2) Второй, довольно просто способ, но не для ленивых: создавать сначала статью с английским названием, а после сохранения переименовывать на русское. 3) Третий способ похож на второй, но позволяет задавать оба названия одновременно, используя одну недокументированную возможность Kooboo. Для этого в тип содержимого статьи нужно добавить поле с названием "UserKey": Таким образом при создании статьи Kooboo увидит, что поле UserKey уже имеет значение, и не будет генерировать свое:
Четвертый и пятый способы предполагают использовать транслитерацию. 4) Четвертый - похож на третий, но поле UserKey заполняется автоматически транслитом на основе введенного в заголовок статьи текста с применением скрипта транслитерации на javascript. Суть не меняется, но работу это существенно может облегчить, при чем оставляя возможность подкорректировать UserKey вручную. 5) Пятый способ заключается в автоматической транслитерации UserKey без участия пользователя. Это может быть удобно, если человек, заполняющий базу данных не готов вводить UserKey вручную. Чтобы реализовать этот способ, нужно использовать триггер-расширение, который будет срабатывать при создании элементов содержимого (контента). Как это сделать читайте в будущих статьях. На данный момент это все способы, которые мне удалось собрать. Если у Вас есть другие предложения, пожалуйста, опубликуйте их в комментариях.
Похожие статьи
|
|