Konstantin

Konstantin

Был в сети 15 июня 2026, 19:21
Заказы не принимаю
Konstantin
Konstantin
Сам написал сам ответил ))

оказалось что pdoresources не умеет отсекать родительские ветки как я полагал, поэтому нужно использовать конструкции с where

[[pdoResources?
    &parents=`0`
    &where=`{"parent:!=": "ID_ИСКЛЮЧАЕМОГО_РОДИТЕЛЯ"}`
    &tpl=`rowTpl`
]]
или так если несколько отсечений

[[pdoResources?
    &parents=`0`
    &where=`{"parent:NOT IN": [ID_РОДИТЕЛЬ1, ID_РОДИТЕЛЬ2]}`
    &tpl=`rowTpl`
]]
Артур Шевченко
Артур Шевченко
создатели движка настоятельно рекомендуют это сделать
Что мешает сделать
так же (см. под заголовком Protect the Core and Other Locations) со второй версией?

Я не отрицаю наличие проблемы, просто не знаю как её решить со стороны компонента.
Артур Шевченко
Артур Шевченко
Ничто там непонятного? Вот был у тебя вызов
{'!AjaxForm' | snippet: [
'validate' => 'name:required,phone:required',
'successMessage' => 'Форма отправлена!',
'hooks' => 'email',
'emailTo' => 'some@email.ru',
'emailTpl' => 'defaultEmail',
'form' => 'defaultForm'
]}
Ты копируешь в файл core/components/sendit/presets/sendit.inc.php
return [
    'default' => [
        'validate' => 'name:required,phone:required',
        'successMessage' => 'Форма отправлена!',
        'hooks' => 'email',
        'emailTo' => 'some@email.ru',
        'emailTpl' => 'defaultEmail',
        ]
]
А вместо вызова сниппета вставляешь саму форму, которой добавляешь два атрибута data-si-form=«defaultForm», data-si-preset=«default». Всё форма работает. Согласен непривычно, но ничего сложного. Возможно стоит в доку добавить раздел Миграция с AjaxForm.

А по фильтрам, там SendIt идёт как зависимость, но сниппеты будут вызываться классическим способом)))
Сергей Карпович
Сергей Карпович