Используем $modx->getOption()
Метод $modx->getOption()
один из основных методов MODX. Очень часто он используется для получения какой-либо системной настройки.
mixed getOption (string $key [, array|null $options [, mixed $default [, boolean $skipEmpty]]] )
- $key — ключ настройки, который нужно найти.
- $options — ассоциативный массив или NULL. Если указано последнее, то поиск будет производится в системных настройках. В противном случае, ключ будет искаться в указанном массиве.
- $default — значение по-умолчанию, которое будет передано методом, если настройка с указанным ключом не найдена.
- $skipEmpty — если установлено в true, то значение по-умолчанию будет передано не только когда ключ не найден, но и когда возвращается пустая строка.
Примеры вызова
Найдем значение системной настройки «some_setting».
$value = $modx->getOption('some_setting');Если эта настройка не найдена, то в
$value
будет NULL
. Но у getOption()
есть возможность в этом случае передать значение по-умолчанию. Для этого нужно задействовать третий параметр.$value = $modx->getOption('some_setting', null, 'default value');В этом случае метод
getOption()
вернет или значение системной настройки или значение по-умолчанию. Очень удобно. А если настройка найдена, но она пустая. Что делать? Для этого существует четвертый параметр $skipEmpty
. $value = $modx->getOption('some_setting', null, 'default value', true);
Если он установлен в TRUE
, то getOption()
вернет значение по-умолчанию и в случае, если настройка не найдена и если она пустая. Это иногда очень выручает. Причем, в отличие от метода empty()
PHP, он считает пустой только строку. Т.е. значение 0 не считается пустым и, соответственно, значение по-умолчанию в данном случае не присвоится.
Использование с массивами
Очень удобно использовать это метод, чтобы получить значение массива. Например, параметры сниппета. Вот такой код заменяет несколько строчек с различными проверками.
$tpl = $modx->getOption('tpl', $scriptProperties, 'myTpl', true);
Такой прием можно использовать и в других случаях
$option = $modx->getOption('secret_key', $_SESSION, null); $option = $modx->getOption('product_id', $_GET, 0); $option = $modx->getOption('user_email', $_POST, '', true);
Подробнее можно почитать на официальном сайте или у Боба Рея.
Комментарии ()
Вы должны авторизоваться, чтобы оставлять комментарии.
Ну тут только один вариант — эта настройка определяется после того, как вы её запрашиваете.