Павел Романов

Павел Романов

Был в сети 30 июля 2026, 15:23
Заказы принимаю
Ну там же какой-то запрос на сторонний ресурс?
Сделайте этот запрос из сниппета, который используйте в кач-ве хука. В нем поля можно получить через:
<?php
$formFields = $hook->getValues();
$name = $formFields['name'];
$phone = $formFields['phone'];
// дальше отправляйте

Сам сниппет в вызове:
[[!AjaxForm?
&hooks=`spam,email,Snippetname`
.....
]]
У Вас при запросе сайта по HTTP 301-й ответ сервера? Если да, то:
  1. Оставьте только HTTPS.
  2. В Яндекс.Вебмастере в разделе «Переезд сайта» поставьте галку «Добавить HTTPS».
  3. Добавьте сайт с HTTPS в Яндекс.Вебмастер и Google Search Console.
После этого все переедет на HTTPS без особых последствий и в результатах поиска все ссылки будут сразу с HTTPS.
Попробуйте через процессор (только бэкап на всяк случай сделайте)):
<?php
$data = array(
    'id' => $id // ID юзера
);    
$response = $modx->runProcessor('/security/user/delete', $data);
if ($response->isError()) {
    $modx->log(modX::LOG_LEVEL_ERROR, 'login error. Username: '.$username.', Message: '.$response->getMessage());
}
Можно не менять плагин, а в системных настройках в разделе «Дружественные URL» в параметре
friendly_alias_restrict_chars_pattern убрать точку, чтобы она не вырезалась из имени файла при его закачке.
Либо в friendly_alias_restrict_chars поставить alphanumeric — тогда шаблон использоваться не будет.
Можно в системных настройках в разделе «Дружественные URL» в параметре friendly_alias_restrict_chars поставить alphanumeric, либо оставить pattern, но убрать точку из шаблона.
filetranslit пользуется системными настройками и пытается вырезать точку из имени файла, что и вызывает ошибку.
Тогда получать ID нового объекта в ответе и прописывать непосредственно:
$data = [
    'id' => 'id продукта',
    'file' => 'путь к файлу',
];

$response = $modx->runProcessor('gallery/upload', $data, [
    'processors_path' => MODX_CORE_PATH . 'components/minishop2/processors/mgr/',
]);

if($gallery = $modx->getObject('msProductFile', $response->response['object']['id'])){
    $gallery->set('name',  'имя'); // тут пишем имя
    $gallery->save();
}
Тогда сниппет такой:
<?php
$arr = explode(',', $value);
foreach($arr as $id){
    if(!$res = $modx->getObject('modResource', $id)) continue;
    $out[] = $res->get('pagetitle').' - '.$res->get('longtitle');
}
return implode(', ', $out);

Можно с шаблонозацией в чанке сделать:
<?php
$arr = explode(',', $value);
foreach($arr as $id){
    if(!$res = $modx->getObject('modResource', $id)) continue;
    $out .= $modx->getChunk('collection_item', array(
        'pagetitle' => $res->get('pagetitle'),
        'longtitle' => $res->get('longtitle')
}
return $out;

Создайте чанк collection_item, где используйте соответствующие плейсхолдеры:
<div>
    <b>[[+pagetitle]]</b> <i>[[+longtitle]]</i>
</div>