Как передать в сниппет переменную (MODX)?

В MODX для передачи переменных в сниппеты можно использовать различные методы. Вот некоторые из них:

1. Передача переменных через шаблон вызова сниппета:

Переменные могут быть переданы в сниппет через параметры вызова его в шаблоне. Например, если у вас есть вызов сниппета в шаблоне:

[[!MySnippet? ¶m1=значение1 ¶m2=значение2]]

то в сниппете вы можете получить эти значения следующим образом:

$param1 = $modx->getOption('param1', $scriptProperties, '');
$param2 = $modx->getOption('param2', $scriptProperties, '');

В этом случае значения переменных будут доступны внутри сниппета в переменных $param1 и $param2.

2. Передача переменных через вызов сниппета из другого сниппета:

Если у вас есть вызов сниппета внутри другого сниппета, то вы можете передать переменные следующим образом:

$snippetOutput = $modx->runSnippet('MySnippet', array(
'param1' => 'значение1',
'param2' => 'значение2'
));

В сниппете MySnippet вы можете получить эти значения таким же образом, как в предыдущем методе.

3. Передача переменных через глобальную переменную $modx:

Глобальная переменная $modx доступна во всех сниппетах и содержит множество полезных методов и свойств для работы с MODX. Вы можете передавать переменные между сниппетами, используя $modx->setPlaceholder() и $modx->getPlaceholder().

Пример использования:

// В сниппете, где передается переменная
$modx->setPlaceholder('myVariable', 'значение');

// В сниппете, где получается переменная
$myVariable = $modx->getPlaceholder('myVariable');

В этом случае значение переменной "значение" будет доступно внутри сниппета, где вызывается $modx->getPlaceholder('myVariable').

Надеюсь, это поможет вам передавать переменные в сниппеты MODX.