Доступ к TV данным
Последнее обновление Dec 11th, 2019 | История страницы | Улучшить эту страницу | Сообщить о проблеме
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$301 per month—let's make that $500!
Learn moreДоступ к значениям переменных шаблона через API¶
Как и все в графическом интерфейсе MODX, вы можете получить доступ к переменным шаблона и их значениям через API MODX. Это зависит от метода xPDO getObject и связанных функций, но мы демонстрируем некоторые примеры здесь, потому что это напрямую связано с переменными шаблона.
getTVValue¶
string|null getTVValue (str|integer $tv_name OR ID of TV)
Смотри core/model/modx/modresource.class.php
Использование getTVValue¶
Допустим, у нас есть TV с именем «био», и мы собираемся получить идентификатор страницы 123, который использует этот TV. Вот как может выглядеть наш сниппет:
$page = $modx->getObject('modResource', 123);
return $page->getTVValue('bio');
getTVValue
извлекает значения из кэша ресурсов, когда они доступны. Эти кэши обычно очищаются при сохранении ресурса, однако, если вы обновляете значения TV с помощью метода setTVValue
, приведенного ниже, эти значения не будут отражаться напрямую из-за кэша.
Если вам абсолютно необходимы последние данные, вы можете обойти кеш, перейдя прямо к данным и используя getObject
, чтобы получить запись значения TV.
$tvr = $modx->getObject('modTemplateVarResource', array(
'tmplvarid' => $tvId,
'contentid' => $resourceId
));
if ($tvr) {
return $tvr->get('value');
}
else {
$tv = $modx->getObject('modTemplateVar', $tvId);
if ($tv) return $tv->get('default_text');
}
return '';
setTVValue¶
Используйте setTVValue, чтобы сохранить новое значение в TV. В отличие от некоторых других методов API xPDO, этот метод немедленно сохраняет значения в базе данных, поэтому вам не нужно вызывать отдельный вызов метода save(). Этот метод не очищает кэш ресурсов.
boolean setTVValue (str|integer $tv_name OR ID of TV, string $value)
Обратите внимание, что при использовании setTVValue
возможно немедленное получение getTVValue
для возврата кэшированного значения.
Использование setTVValue¶
$page = $modx->getObject('modResource', 123);
if (!$page->setTVValue('bio', 'This is my new bio...')) {
$modx->log(xPDO::LOG_LEVEL_ERROR, 'There was a problem saving your TV...');
}
Смотрите также¶
- Создание переменных шаблона
- Привязки
- Типы ввода переменных шаблона
- Типы вывода шаблонных переменных
- Добавление пользовательского типа TV - MODX 2.2
- Создание поля множественного выбора для связанных страниц в вашем шаблоне
- Доступ к значениям переменных шаблона через API
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$301 per month—let's make that $500!
Learn more