Modx evo очистить кэш
Кэшируя повторно используемые данные, можно предотвратить множество запросов к базе данных, что приведет к повышению производительности. MODX Revolution предлагает ряд различных функций кэширования на разных уровнях в приложении. Кэширование в MODX в основном обрабатывается базовым классом modCacheManager , который расширяет класс xPDOCacheManager и позволяет использовать обработчики кэша, зависящие от раздела. Реализация по умолчанию записывает кэши в файлы в папке core/cache/ .
Если вы определили пользовательский ключ MODX_CONFIG_KEY , менеджер кэша выполнит запись в core/cache/MODX_CONFIG_KEY/
Перенос сайта на MODx на другой сервер
Шпаргалка по переносу сайтов на MODx с одного хостинга на другой (или на/с локальный компьютер) по большому счету не особо отличается от шпаргалки по переносу блога на Wordpress
Для того, чтобы перенести сайт на MODx, потребуется скопировать сам сайт и базу данных Как правило, в этом заключается перенос любого сайта, который использует базу. Читать целиком »
MODx и ISPManager - доступ к manager
В ситуации, когда сайт на MODx установлен на хостинге, работающем под управлением ISPManager есть один тонкий момент.
MODx и ISPManager имеют одинаковый адрес для доступа к “админке”
Переопределение настроек (Наследование)¶
В то время как в этом документе в основном говорится о Системных настройках, MODX поставляется с очень мощной системой наследования, которая позволяет переопределять настройки в контексте, пользовательской группе или пользовательской настройке.
По сути, когда параметр запрашивается в сеансе определенного пользователя, параметры проверяются в следующем порядке:
- Настройка пользователя
- Настройка группы пользователей
- Настройка контекста (обратите внимание, что в менеджере контекст обычно называется mgr)
- Настройка системы
Получение списка связанных настроек¶
Если вы заметили в графическом интерфейсе выше, MODX позволяет несколько логично сгруппировать настройки системы. Самые полезные группировки - это area и префикс key. Использование xPDO getCollection Метод, мы можем легко предоставить некоторые критерии поиска, чтобы получить настройки, которые мы хотим.
Вот как мы можем получить все настройки из области «Почта»:
Это естественным образом приводит нас к одной из других особенностей xPDO: xPDOQuery объект. Мы можем использовать его для передачи более сложных критериев нашему вызову getCollection. Вот как мы можем получить все настройки, которые используют префикс «quip»:
Возможно, вы не ожидали введения в xPDO, пока вы просто пытались получить и установить системные настройки, но он там.
Получение метаданных настроек¶
Как только мы начнем извлекать Objects, которые представляют системные настройки, а не только их значение, мы можем увидеть все метаданные для любого заданного параметра (то есть все атрибуты). Посмотрите на этот код в качестве примера:
Как только вы поймете, как манипулировать объектами с помощью MODX и xPDO, вы сможете извлекать и изменять практически все внутри MODX, потому что практически все является объектом.
Как отключить очистку кэша в MODx?
По умолчанию при каждом сохранении документа (как нового так и уже существующего) modx производит очистку кэша. Действительно, пока кэш не будет очищен, система будет брать данные из “устаревших” кэш файлов. Причем удалять надо все файлы - иначе данные в некоторых сниппетах (например, Ditto) будут взяты из кэша.
Иногда, при редактировании или добавлении нескольких документов подряд гораздо удобнее не очищать каждый раз текст, а после всех изменений “накатить” новую версию.
Немного хакнув /plugins/managermanager/functions/fieldvalues.inc.php строка
$allowed_actions = array('85','4','72');
заменил на
$allowed_actions = array('85','4','72','27');
где, 27 = Editing document (manager/includes/actionlist.inc.php);
Метки: modx
Автор будет признателен, если Вы поделитесь ссылкой на статью, которая Вам помогла:
BB-код (для вставки на форум)
html-код (для вставки в ЖЖ, WP, blogger и на страницы сайта)
ссылка (для отправки по почте)
Сохранение настроек системы (программно)¶
Здесь все становится немного сложнее: когда мы получаем значение, используя getOption, мы получаем объект из кэша настроек. Это имеет явное преимущество в скорости, но это означает, что у нас по существу есть копия значения настройки, доступная только для чтения.
Пока есть метод setOption; это только обновляет кэш настроек в памяти.
Это по архитектурным причинам: системные настройки должны быть определены как configurations, NOT runtime dynamic values. Они обычно устанавливаются во время установки, а затем не часто обновляются. Однако могут быть законные времена, когда вам нужно обновить системные настройки программно, например, возможно, вы написали Пользовательская страница менеджера которая предлагает настраиваемую форму для ваших пользователей для своих системных настроек.
Если мы хотим обновить настройки системы, мы используем мощный xPDO getObject функция. Итак, давайте вернемся к нашему поиску простой настройки сайта и сравним ее рядом с более подробным (и более гибким) аналогом xPDO:
Разница в том, что использование getObject извлекает объект из базы данных без кэширования, и мы можем делать с объектом гораздо больше вещей, включая сохранение этого объекта. Итак, вот как мы должны получить и сохранить настройки системы:
Однако обратите внимание, что это не очищает кэш настроек, поэтому любые последующие вызовы getOption по-прежнему будут возвращать более старую кешированную версию настройки.
В WordPress сопоставимая функция API update_option().
MODx - шпаргалка по установке и настройке
Решил собрать в одном месте краткое руководство по настройке MODx. Сразу оговорюсь, что на полноту изложения не претендую - на то и шпаргалка.. И подойдет она для сайтов без специфичного функционала (там уж кто на что горазд). И да.. шпаргалка по MODx Evolution 1.0.4 (скорее всего, подойдет и для других версий MODx EVO)
Установка MODx
При установке MODx особых трудностей возникнуть не должно - автоматический установщик отлично справляется со своими обязанностями. Кроме того, по умолчанию выбраны для установки все элементы (плагины-чанки-сниппеты…). Пример сайта я обычно не устанавливаю, хотя он может оказаться полезным для изучения (как раз в качестве примера). Единственное, что хотелось бы отметить - это
- переименовать файл ht.access в .htaccess и раскомментировать строки register_globals и AddDefaultCharset
Настройка MODx
- Создать шаблон(ы);
- Создать помимо главной (по умолчанию с ID 1) 404 (403) страницу;
- Указать (проверить) абсолютные и относительные пути для файл-менеджера и редактора (Путь к файлам,URL к файлам и Путь для файл-менеджера), установить разрешения на запись в каталог;
- Настраиваем транслитерацию имени для загружаемых файлов;
- Настраиваем транслитерацию URL (плагин TransAlias)
- Обычно ставлю плагин Seo strict URLs - склеивает дубли страниц перенаправлением на “основной” алиас, убирает alias главной страницы (minimal-base по умолчанию) в wayfinder-меню и хлебных крошках;
- Если испольуем ЧПУ, то следует проверить в шаблоне внутренних страниц наличие - облегчает настройку работы с загруженными файлами; на рабочем сайте
- Если на сайте используется JQuery, следует отключить автозагрузку JQuery в плагине QuickManager (Load JQuery in front-end). В сниппетах могут задаваться параметры для отключения JQuery.
- Служебные документы можно защитить от редактирования, используя mm_widget_accessdenied- виджет “Доступ запрещен”. При необходимости, можно скрыть или настроить отображение практически любых полей для каждого документа и каждого пользователя (роли)
Много полезных советов по настройке MODx можно найти у e-KAO, однако следует помнить, что создание различных сборок MODx не поощряется разработчиками… Используйте её для собственных нужд
MODx Evo clear_cache - программная очистка кэша
Однако, при разработке различных модулей, дополнений и плагинов может потребоваться очищать кэш программно, то есть средствами PHP. Аналогично программной очистке кэша в Amiro, возможна реализация и для системы управления MODx.
Для программной очистки кэша MODx (для EVO) можно использовать небольшую функцию, которая задействует “стандартные” средства системы:
Кэширование базы данных¶
Если вы включите системный параметр cache_db, MODX может автоматически кэшировать наборы результатов базы данных, извлеченные любым экземпляром xPDOCriteria или xPDOQuery . Это включает в себя все наборы результатов, представляющие xPDOObjects или коллекции xPDOObjects , возвращаемые такими методами, как getObject и getCollection .
Эта функция может быть включена в средах, где доступ к базе данных обходится дороже, чем время подключения файлов PHP, например, при использовании внешнего сервера базы данных, или настраивается для сред с доступным memcached , APC или другими системами кэширования. Это отдельный раздел кеша в MODX, поэтому его можно настроить с другими обработчиками кэша. Смотрите xPDO Caching для дополнительной информации.
modx - ditto, reflect, tags (tagging) - делаем тэги на MODx
Несмотря на довольно солидное сообщество, не только русскоязычное, на некоторые простые вопросы ответы найти удается с трудом. Без претензий, но факт. (Скорее, претензии к себе.. плохо ищу, или не могу правильно сформулировать вопрос.. хотя, ряд аналогичных вопросов на форуме оставлен без ответа).
Для начала, до разработки сайтов на MODx рекомендуется ознакомиться с некоторыми терминами, специфичными для этой системы.. Сниппеты, Чанки, TV, Шаблоны… организация документов. В качестве примера можно изучить DEMO-сайт, почитать WikiУчебник .
В статье описан работающий пример организации записей (постов) по датам и тэгам (по аналогии с блогом на wordpress) с удобным редактированием. Все подводные камни расписывать не буду.. Скажу лишь, что в DEMO-блоге этот механизм работает не совсем так, как описано, а привести его без особых ухищрений к привычному виду не удалось…
Итак, делаем тэги + даты на MODx
Основная часть закончена. По идее, всё должно отображаться как нужно. Теперь бубен и напильник
При совместном использовании Ditto, Reflect и тэгов к ссылкам добавляются “лишние” параметры . К ссылкам дат добавляется &tags, а к ссылкам тэгов добавляются даты (wp_year…)
- Чистим ссылки в выводе Reflect. Сделано добавлением нового сниппета Leftmenu с кодом:
$tmp=$modx->runSnippet('Reflect', array(
'targetID' => 3,
'config'=>'wordpress' ,
'path'=>'3' ,
'tplContainer'=>'reflect_tpl',
'dittoSnippetParameters'=>'parents:3',
'id'=>'wp',
'getDocuments'=>'1'
));
// echo $tmp; // для проверки корректности выполнения сниппета$tmp = preg_replace ('/(&)?(wp_)?tags=[^&"]*(&)?(start=0&)?/is','',$tmp);
// регулярник для очистки от параметров wp_tags=xxx (от текущего ditto) tags=xxx (облако тэгов) и start=0
echo $tmp;
//[!Reflect? &config=`wordpress` &targetID=`3` &path=`3` &tplContainer=`reflect_tpl` &dittoSnippetParameters=`parents:3` &wp_tags=`` &id=`wp_` &getDocuments=`1`!]
?> - 2. Чистим ссылки на страницы тэгов в выводе DITTO:
В шаблоне вместо плейсхолдера [+tagLinks+] используем вызов сниппета - вывод тэгов со ссылками только на тэги
[!tagLinks? &tv=`tags` &label=`
Метки: ` &id=`[+id+]` &path=`3`!]
Если с первого раза не получится - отчаиваться не стОит. Опыт.. опыт.. и ещё раз опыт.
А вообще-то можно использовать стандартную конфигурацию из DEMO-сайта.
ps По умолчанию, Reflect считает, что в Ditto используется дата создания документа. Иногда удобнее использовать дату публикации документа. Кроме указания соответствующего параметра в Ditto, эту информацию следует передать и в Reflect, примерно так: &dittoSnippetParameters=`parents:11| sortBy:pub_date `
MODX поставляется с гибким набором системных настроек. Они находятся в Система -> Системные настройки и могут быть легко отредактированы и изменены. Все системные настройки доступны в ваших шаблонах с помощью обозначения [[++placeholder]] . Посмотрите Теги шаблона для дополнительной информации.
Пример 2. Добавление и получение кэша из пользовательского раздела¶
Обратите внимание в Revolution 2.0¶
В MODX Revolution 2.0 была другая система кеширования с отличающимися разделами. Чтобы очистить кеш в 2.0, вы должны использовать метод clearCache() , который устарел с 2.1. Лучше обновиться до последней версии, чем продолжать использовать 2.0.
Разработано, построено и написано со всей любовью в мире от сообщества MODX.
Комментарии (4) к записи “Как очистить кэш в MODx? Кэширование в modx”
Все отлично меня интересует обновление кэша снипета в установленное время суток. Если есть такой скрипт было бы хорошо
Сергей, очистка кэша в определённое время возможна. В зависимости от версии MODx, решение будет различным. Для Revo, например:
$modx->executeProcessor(array(
'location' => 'system',
'action' => 'clearCache',
));
return '';
Спасибо, а куда нужно вставить функцию, неподскажите? В шапку сайта или в чанки?
Создание новых системных настроек (через графический интерфейс)¶
Чтобы создать новый параметр системы, нажмите ссылку «Создать новые параметры» в разделе «Система» -> «Параметры системы».
Типы системных настроек¶
Атрибут xtype определяет, какой тип поля GUI будет использовать при рендеринге интерфейса для этого поля:
- combo-boolean : сохраненные значения 1 и 0. Будет отображать «Да» и «Нет»
- textfield : стандартное текстовое поле
- textarea : стандартная текстовая область
- text-password : стандартное поле пароля (ввод маскируется)
- numberfield : используется для ввода цифр
- modx-combo-language : позволяет пользователю выбрать язык
- modx-combo-source :
- modx-combo-template : позволяет пользователю выбрать шаблон
- modx-combo-content-type : позволяет пользователю выбрать тип контента
- modx-combo-charset : позволяет пользователю выбрать набор символов
- modx-combo-rte : как текстовая область, но с элементами управления форматированием
- modx-combo-context : позволяет пользователю выбрать контекст
- modx-combo-manager-theme : позволяет пользователю выбрать тему оформления интерфейса менеджера MODX
web программирование, администрирование и всякая всячина, которая может оказаться полезной
web программирование, администрирование и всякая всячина, которая может оказаться полезной
В системе modx предусмотрено кэширование документов. Если не вдаваться в подробности, то это значит, что данные, необходимые для формирования страницы сохраняются из базы данных в отдельный файл, к которому в дальнейшем происходит повторное обращение.
Самый простой и часто встречаемый ответ - зайти в админку по адресу /manager/ (что делать, если при входе в админку modx открывается ispmanager) и нажать ссылку “Очистить кэш“.
Как отключить кэширование в MODx
Конечно, для некоторых страниц в кэшировании необходимости нет, некоторые страницы и разделы при кэшировании теряют функционал. Настраивается кэширование как для отдельного документа (галочка “Кэшировать” на вкладке Настройка страницы), так и для любого сниппета (зачем каждый раз формировать данные, если они не изменяются?) - вызов сниппета в виде [[SnippetName]] ([!SnippetName!] -вызов без кэширования)
Очень часто неправильный тип вызова становится причиной некорректной работы сниппета (не работает разбивка на страницы, например)
Список настроек¶
Описание каждого параметра следующее:
Разработано, построено и написано со всей любовью в мире от сообщества MODX.
Доброго времени суток!
Столкнулся проблемой — не удаляются файлы кэш (assets/cache/).
При нажатии кнопки «Очистить кэш» система сообщает:
При этом, на самом деле этого не делает, т.е. по адресу «assets/cache/» всё ещё присутствуют файлы типа «docid_XX.pageCache.php».
Сейчас приходится вручную удалять всё по FTP, что весьма уже утомляет.
Что уже делал:
1) Перепроверил доступ к папке «assets/cache/» и содержащимся в ней файлы — 777;
2) Пробовал перезаливать и вновь устанавливать систему MODx скаченную с официального сайта;
3) Путь к файлам и файл-менеджера сбрасывал, всё тщетно… т.е. файл-менеджер работает (заливает файлы как и положено).
Произошло это после обновления MODx Evo с 1.0.10 на 1.0.12. На старой версии, так что 1.0.10, кэш нормально очищался.
Буду очень признателен за советы в решении проблемы.
P.S. Хостинг работает на ОС Debian GNU/Linux и панелью управления Parallels Plesk Panel
Азиз Абд
24.02.14 в 06:02
Комментарии (5)
Я бы порекомендовал поэкспериментировать на другом хосте, используя тот же самый сайт. Но, конечно, стоит в первую очередь проверять логи сервера, там скорее всего будут ответы на Ваши вопросы.
Прежде всего, спасибо за внимание! Однако к большому сожалению сменить хостинг не представляется возможным. Жаль, что эта досадная неприятность замечена не сразу после обновления, а уже после добавления достаточного количества ресурсов, а так бы откатил на 1.0.10 :-(
Кстати, вот что пишется в разделе «Системная информация»:
Пути же правильно вроде выставлены?
Запустите сайт на локалке если сможете и посмотрите удаляются файлы или нет. Может дело в каком-то функционале накрученном (плагины там например какие-нибудь), который оказался несовместим с обновлением.
Логи тоже надо обязательно посмотреть + настроить уровень вывода ошибок PHP чтобы в логи все ошибки падали
Ерунда какая-то… :-(
Зашёл в «Управление файлами» пишет:
Т.е. файловый менеджер не видет содержимого, хотя имеет права за запись.
Перенёс на локальный хост — ситуация изменилась, теперь панель управления вообще перестала нормально прогружаться, т.е. открывается только верхнее меню не прогружая дерево сайта и ничего не отобража в основной части экрана (размер сайта ~400 ресурсов).
Для добавления комментариев вы должны авторизоваться или зарегистрироваться.
Jot - комментарии в Modx
Сниппет jot позволяет организовать работу с комментариями в системе MODx. Для удобного управления комментариями из админки можно воспользоваться сниппетом JoCo
Jot входит в “стандартную” поставку MODx версии 1… Однако, по умолчанию - на английском языке. Чтобы использовать комментарии JOT на русском языке следует внести изменения в шаблоны (jot/templates) и в php-файлы используемых классов. Строго говоря, вместо внесения изменений в файлы шаблонов можно воспользоваться чанками и указать их в качестве параметров при вызове сниппета.
Перевод Jot. Можно также воспользоваться готовым переводом (качать в этой теме форума) . Однако, в шаблонах используются иконки от старой “темы” панели управления… В общем, видимо, без напильника не обойтись. Делается один раз и надолго.
Подводные камни JOT
Переходы при нажатии на “tab” в некоторых браузерах (у меня “нормально” сработала только “Опера”) воспринимаются не совсем корректно. Параметр tabindex должен принимать значения до 32767. В общем, открываем файл jot.class.inc.php и исправляем
$this->config[”seed”] = rand(); // строка 119, на
$this->config[”seed”] = rand(300, 32760); // новая строка 119
Разрешаем web-пользователям редактировать свои комментарии.
&canedit (comma delimitted web groups) Comma delimitted web groups that can edit their OWN comments.
Если опустить параметр &canpost, то все смогут комментировать
JOT - защита от спама
(спасибо пользователю kp52)
JoCo - управление JOT-комментариями в ModX
Несмотря на универсальность и функционал сниппет комментариев JOT не очень удобен для администрирования комментариев. Их просто нельзя найти нигде, кроме как на страницах сайта. Естественно, перебирать весь сайт в поисках новых комментариев не очень удобно.
Неплохое дополнение к jot, которое значительно расширяет имеющиеся функции - JoCo : Jot Comment tool.
Это дополнение включает в себя модуль (позволяющий управлять комментариями в панели управления MODx) и сниппет для расширения стандартного функционала JOT.
Установка модуля JoCo проста - копируем папку JoCo в каталог /assets/modules/ , после чего создаем новый модуль JoCo, в который прописываем всего лишь одну строку кода (содержимое искать в текстовом файле, в архиве с модулем)
Разделы основного кэша MODX¶
В ядре несколько разделов. Их можно легко определить, просмотрев папку core/cache/ с конфигурацией кэша по умолчанию.
Обычно вам не нужно работать с кэшированными данными напрямую (вместо этого используйте доступные API), но для понимания ядра MODX здесь мы рассмотрим основные разделы и кратко опишем их назначение и содержание.
Как мы обсудим позже, пользовательские провайдеры также могут быть использованы в разработке.
- action_map содержит большой массив всех действий (идентификаторов, ссылающихся на контроллеры и пространства имен), которые могут быть доступны в менеджере. Поскольку действия устарели и больше не используются в 2.3, никогда не полагайтесь на них.
- auto_publish содержит метку времени Unix, которая определяет, когда ресурс должен быть автоматически опубликован или распубликован (см. ModCacheManager.autoPublish() )
- context_settings для каждого контекста на сайте содержит карту ресурсов (идентификаторы родительских и дочерних документов), карту псевдонимов, используемые в контексте плагины и политики доступа.
- db раздел кэша базы данных используется, когда включена системная или контекстная настройка cache_db , и содержит необработанные наборы результатов для запросов xPDO getObject / getCollection . Подробнее об этом ниже.
- includes - на самом деле, это не раздел кэша, но он содержит файлы PHP, где сниппеты и плагины заключены в вызовы функций для легкого выполнения ядром. Смотрите сценарии для раздела кэша для сниппетов и плагинов.
- logs - это также не раздел кэша, но содержит файл error.log и иногда другие файлы журнала (например, журнал установки).
- menu cодержит для каждого языка менеджера многомерный массив верхнего меню менеджера.
- mgr не является настоящим разделом кэша, но используется Smarty и Google Minify в 2.2 для записи файлов кэша.
- registry - это директория по умолчанию для modRegistry, в которую записываются журналы регистрации файлов. Не является настоящим разделом кэша.
- resource содержит организованный по контексту и идентификатору ресурса механизм частичного кэширования ресурсов. Эти файлы кэша содержат метаданные для ресурса, кэшированное представление ресурса (_content) с оставшимися без кэширования тегами, политиками доступа к ресурсу и элементами и их источниками, используемые при обработке ресурса.
- rss не является настоящим разделом кэша, но используется MagpieRSS (виджеты RSS панели) для записи в кеш.
- scripts содержит источник сниппетов и плагинов, которые впоследствии записываются в папку кэша includes.
- setup не является настоящим разделом кэша, но используется инсталлятором MODX для кэширования шаблонов Smarty.
- system_settings содержит глобальную конфигурацию MODX и системные настройки. Этот раздел загружается первым по запросам в MODX. Поскольку альтернативные обработчики кэша для разделов хранятся в системных настройках, этот раздел не может быть загружен из другого обработчика кэша таким образом.
Чтобы изменить обработчик кэша для определенного раздела кэша, просто создайте новый системный (или контекстный) параметр с именем cache_PARTITION_handler (например, cache_resource_handler или cache_scripts_handler ) и присвойте ему значение обработчика кэша, который вы хотели бы использовать. По умолчанию используется xPDOFileCache , однако и другие обработчики доступны для APC , memcache (d) и wincache .
Обратите внимание, что в MODX 2.0.x система кэша довольно сильно отличалась. Доступные разделы были иными, а системные настройки сохранялись в core/cache/config.cache.php . Если вы все еще используете MODX 2.0.x, вам следует потратить больше времени на обновление и меньше времени на чтение этого документа.
Параметры¶
- Ключ: в конечном итоге это уникальное имя вашего [[++placeholder]]
- Имя: эта метка отображается в столбце «Имя» при просмотре всех настроек системы. Это значение может быть локализовано (см. Ниже).
- Тип поля: в настоящее время поддерживаются 3 типа ввода: TextField, TextArea, Yes/No
- Пространство имен: как с Пользовательские страницы менеджера, пространство имен определяет папку внутри core/components/.
- Area Lexicon Entry: это значение влияет на группировку системных настроек; создайте несколько системных настроек, которые совместно используют «Область ввода лексики», и они будут сгруппированы вместе.
- Значение: значение по умолчанию.
- Описание: это значение может быть локализовано (см. Ниже).
MODx - плагин TransAlias - автоматическая транслитерация адресов
В CMS/CMF MODx для автоматической транслитерации URL-ов страниц в комплект входит плагин TransAlias. Однако, по умолчанию настроен он так, что позволяет добавлять URL-ы, содержащие и русские буквы.
Для транслитерации русских букв в строке URL адреса следует произвести небольшую настройку плагина. А именно - заходим на вкладку “Конфигурация” (Элементы - Управление элементами - Плагины- TransAlias (8) - 1.0.1 Human readible URL translation supporting multiple languages and overrides), и выбираем значение “russian” для параметра Trans table Читать целиком »
Локализация¶
Значения, используемые для описания настроек системы, могут быть необязательно локализованы (т.е. переведены) путем ссылки на конкретный файл локализации. Ключи лексики следуют определенному формату:
- Имя: setting_ + Key
- Описание: setting_ + Key + _desc
Например, если мы посмотрим на Quip's [[++quip.emailsFrom]] настройки, мы видим, что он использует пространство имен quip. Ожидаемая структура папок состоит в том, чтобы искать файлы локализации в папке пространства имен, затем в папке «лексикона», затем в папках, разделенных по языковым кодам, и затем в default.inc.php файле, для примера core/components/quip/lexicon/en/default.inc.php
В нашем примере Quip мы видим имя setting_quip.emailsFrom и описание setting_quip.emailsFrom_desc. Эти два значения соответствуют ключам в $_lang массив внутри default.inc.php:
Мы рекомендуем вам щелкнуть правой кнопкой мыши существующий системный параметр и выбрать «Обновить системный параметр», чтобы получить представление о том, как это работает.
Как очистить кэш в MODx? Кэширование в modx
В системе modx предусмотрено кэширование документов. Если не вдаваться в подробности, то это значит, что данные, необходимые для формирования страницы сохраняются из базы данных в отдельный файл, к которому в дальнейшем происходит повторное обращение. Читать целиком »
Обновление кэша MODX Core¶
Чтобы обновить любой из основных разделов кэша MODX, используйте метод modCacheManager->refresh() . Минимальный вызов не имеет параметров и обновит все разделы основного кэша.
Кроме того, вы можете определить массив $providers с разделом элементов key => $partitionOptions .
Второй параметр $results передается по ссылке и будет содержать результаты каждого раздела кэша. В зависимости от раздела это может быть логическое значение или массив с дополнительной информацией о результате обновления определенного раздела. Сама функция возвращает логическое значение, указывающее, вернул ли какой-либо из разделов логическое значение false .
Общая терминология кэширования и поведение¶
MODX использует разные разделы для отдельных типов кэшируемых данных. Упрощенно, раздел - это папка в директории core/cache/ , но настоящая ценность разделов в том, что каждому разделу могут быть назначены разные обработчики кэша. Обработчики кэша являются производными от класса xPDOCache и предоставляют единый API для хранения, чтения и удаления записей кэша.
Обработчик кэша по умолчанию xPDOFileCache записывает кэш в файловую систему в папке core/cache/ , но в ядре доступны также другие обработчики кэша для APC ( xPDOAPCCache ), memcache(d) ( xPDOMemCache , xPDOMemCached ) и WinCache ( xPDOWinCache ).
Пример 1: Простое добавление и получение кэша¶
MODx Evo reset cache - программная очистка кэша
Самый простой и часто встречаемый ответ - зайти в админку по адресу /manager/ (что делать, если при входе в админку modx открывается ispmanager) и нажать ссылку “Очистить кэш“. Читать целиком »
Получение настроек системы (программно)¶
Чтобы получить значение настройки из сниппета, плагина или другого PHP-кода, вы используете getOption функции и передачи ей уникальный ключ для опции, например:
В WordPress сопоставимая функция API get_option().
Эта функция извлекает значение из кэша настроек.
MODx Yams - мультиязычные сайты на modx Evo
Задача реализации мультиязычных сайтов (сайт, содержимое которого может быть на нескольких языках) возникает, пожалуй, у многих разработчиков. На сегодняшний день существует довольно много готовых решений, как выделенных в отдельные независимые библиотеки (i..n L..n), так и в рамках конкретных движков-продуктов.
Если в MODx Revolution средства для реализации мультиязычности и мультисайтовости уже встроены, то для создания сайта на нескольких языках с использованием MODx Evo (Evolution - более ранняя версия MODx) придётся немного повозиться. Благо, сейчас есть уже готовые решения. Одно из популярных - YAMS. Читать целиком »
Создание системной настройки программно¶
Возможно, вы захотите создать Системные настройки программно, чтобы предоставить вашим пользователям более чистый UX / UI. В своем коде вы можете поместить что-то вроде следующего:
Обратите внимание, что вы должны создать записи лексики, которые соответствуют вашему имени ключа (см. Раздел «Локализация» выше):
- Имя: setting_ + Key
- Описание: setting_ + Key + _desc
Таким образом, в этом примере вам необходимо добавить следующие записи лексикона в загруженный вами лексикон:
MODX заполняет значения для имени и описания на основе этих записей лексики.
Может оказаться полезным ссылаться на ваши локализованные языковые строки внутри ваших шаблонов или CMP. Это можно сделать с помощью тега лексикона, но вы должны указать тему «setting», например,
Программное (пользовательское) кэширование¶
Взаимодействуя с modCacheManager , вы можете легко кэшировать данные любого типа. Есть несколько полезных функций, которые вы можете использовать для поддержания рабочего кэша. Используя modCacheManager с пользовательским разделом (хотя и необязательно), пользователи вашего кода могут изменить обработчик кэша и сохранить данные в экземпляре memcached , APC или WinCache вместо файлового кэша по умолчанию.
ModCacheManager (производный от xPDOCacheManager ) предоставляет следующие полезные методы:
- add($key, $var, $life = 0, $options = array()) используется для добавления значения в кэш, но только если оно еще не существует или срок его действия истек.
- replace($key, $var, $life = 0, $options = array()) используется для замены существующего кэшированного значения другим.
- set($key, $var, $life = 0, $options = array()) используется для установки значения в кэш независимо от того, существует ли оно уже (перезаписывается) или нет (добавляется).
- delete($key, $options = array()) удаляет кэшированное значение из кэша.
- get($key, $options = array()) получает кэшированное значение из кэша.
- clean($options = array()) очищает (удаляет) весь поставщик кэша. Убедитесь, что вы определили xPDO::OPT_CACHE_KEY в массиве параметров.
В общем случае вы можете использовать get($key) и set($key, $value) для получения и установки значений соответственно, но дополнительные методы обеспечивают дополнительный контроль над способом управления данными.
Массив $options может содержать следующие параметры, указывающие раздел кэша для записи, используемый обработчик кэша и время истечения по умолчанию.
- xPDO::OPT_CACHE_KEY - раздел кэша для записи.
- xPDO::OPT_CACHE_HANDLER - используемый обработчик кэша. Как правило, вам не нужно жестко определять этот параметр, но имеет смысл разрешать конкретной реализации обрабатывать обработчик кэша с помощью системных настроек (то есть системных настроек cache_PARTITION_handler ).
- xPDO::OPT_CACHE_EXPIRES - время истечения по умолчанию.
Читайте также: