INHERIT привязка
Последнее обновление Jun 15th, 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Что такое @INHERIT привязка?¶
Привязка @INHERIT автоматически найдет соответствующее значение родительского ресурса и будет использовать его в качестве значения. Если родительский ресурс также имеет @INHERIT, он будет смотреть на значение родительского ресурса этого родителя и так далее. Если это заканчивается в корне, и никакое значение не было указано, значение будет 0.
Например, если вы определяете переменную шаблона для использования значения по умолчанию «@INHERIT», то при создании дочернего ресурса под родителем значение TV в дочернем элементе будет отражать значение, хранящееся в родительском ресурсе.
Дьявол кроется здесь в деталях: если значение дочернего TV не было переопределено (т.е. Унаследованное значение сохраняется), тогда MODX следует экономным правилам хранения, и ни одна строка не будет создана внутри таблицы modx_site_tmplvar_contentvalues. Если вы обращаетесь к значениям через API, то с помощью метода getTVValue() для объекта страницы он будет проходить вверх по иерархии, чтобы найти значение из родительского ресурса.
$pages = $modx->getCollection('modResource');
foreach ($pages as $p) {
print $p->getTVValue('my_inheritance');
}
Будь осторожен Значение не всегда записывается в базу данных, когда вы используете @INHERIT.
Обратите внимание, что это динамический поиск, который происходит всякий раз, когда дочерняя страница сохраняется и ее значение пусто. Если вы позже отредактируете значения в родительском, они будут отражены в дочернем. Вы можете нарушить наследство, указав свою собственную ценность в ребенке. Вы также можете восстановить наследование, удалив значение и оставив поле пустым.
Использование¶
Это используется, когда вы определяете переменную шаблона. Вы вставляете следующее в поле «Значение по умолчанию» TV:
@INHERIT
Смотрите также¶
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