Чтобы вызвать сниппет по кнопке в 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. Сохраните шаблон и создайте новую страницу, используя этот шаблон.
Теперь, когда вы посещаете созданную страницу, вы должны увидеть кнопку "Выполнить сниппет". При нажатии на кнопку будет вызван ваш собственный сниппет, а результаты будут отображаться после кнопки.