Как вызвать сниппет по кнопке?

Чтобы вызвать сниппет по кнопке в MODX, вам понадобится создать собственный плагин.

1. Создайте новый плагин в панели управления MODX, перейдите на вкладку "Элементы" и нажмите "Создать новый" рядом с разделом "Плагины". Введите имя плагина (например, "CustomSnippetTrigger") и нажмите "Создать".

2. В фазе "Создание" плагина вам нужно будет вставить следующий код:

<?php
if ($modx->event->name == 'OnWebPageComplete') {
    // Ваш собственный сниппет
    $snippetName = 'ВАШ_СНИППЕТ';
    
    // Проверяем, была ли нажата кнопка
    if (isset($_POST['custom_button'])) {
        $output = $modx->runSnippet($snippetName);
        $modx->setPlaceholder('custom_snippet_output', $output);
    }
}
return;
?>

Вам нужно заменить 'ВАШ_СНИППЕТ' на имя вашего собственного сниппета. Также, если у вас есть системные или пользовательские параметры сниппета, вы можете передавать их в функцию $modx->runSnippet после имени сниппета.

3. Сохраните плагин и активируйте его.

4. Далее вам нужно создать шаблон, на котором будет отображаться кнопка. Вам понадобится внести следующий код в шаблон:

<form action="[[~[[*id]]]]" method="post">
  <input type="submit" name="custom_button" value="Выполнить сниппет">
</form>

<p>Результат сниппета: [[+custom_snippet_output]]</p>

Примечание: [[~[[*id]]]] в атрибуте action формы заменяет его на URL текущей страницы. Если у вас нет необходимости передавать дополнительные параметры, это будет работать. Если вам нужно передать параметры, вам придется модифицировать код соответственно.

5. Сохраните шаблон и создайте новую страницу, используя этот шаблон.

Теперь, когда вы посещаете созданную страницу, вы должны увидеть кнопку "Выполнить сниппет". При нажатии на кнопку будет вызван ваш собственный сниппет, а результаты будут отображаться после кнопки.