вторник, 9 июня 2015 г.

Управление словарями в MODX

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

Но в Управлении словарями эти самые словари разделены на пространства имен(среди них компоненты) и темы в них, и все они заполнены уже сформированными специализированными наборами слов, которые применяются в других компонентах в большинстве случаев для отображения в админке сайта на MODX. Эти наборы слов будут мешаться контент менеджеру, если он захочет изменить содержимое конкретно нашего сайта.

Для того чтобы позволить контент менеджеру редактировать слова, относящиеся только к нашему сайту нужно создать свое пространство имен. Для этого с начала создадим папки с содержимым начального набора слов, которые потом можно будет добавлять через это-же Управление словарями.
Структура папок для нашего пространства имен должна находится в core/components/sitename(где sitename - название нашего сайта) и иметь такой вид:

Внутри должен лежать файл default.inc.php, в котором и будут находится исходные слова для нашего словаря.
Теперь, когда папка есть, нужно создать пространство имен через соответствующую страницу в админке MODX:

Создаем пространство имен:
Очищаем кеш сайта и заходим в управление словарями, которое у меня расположено во вкладке Управление как в моей предыдущей статье

Вуаля, все ради того, чтобы в Управлении словарями появился наш сайт с нашими словами:
Теперь, для того чтобы их использовать, в любом месте сайта просто вставляем:
[[!%sitename.example? &namespace=`sitename` &language=`ru`]]
или
[[!%sitename.another_example? &namespace=`sitename` &language=`ru`]]
в зависимости от того, какое слово мы хотим вывести из словаря.
Если кого-то смущает дублирование sitename, то можете не создавать имена слов из Словаря через точку с именем файла, но так безопаснее, потому-что многие имена слов из Словаря могут перебиваться именами из других пространств имен, хотя указано именно наше пространство, по крайней мере у меня такой баг возникал.

Есть еще такой трюк: в значения слов из словаря можно вставлять переменные MODX, например:
"Наш сайт [[++site_name]] рад приветствовать вас"
или:
"Вы попали на страничку [[*pagetitle]]"
Читать далее