Александр Быковский

Александр Быковский

С нами с 19 декабря 2013; Место в рейтинге пользователей: #562
Александр Быковский
23 марта 2022, 09:00
0
Для чистоты эксперимента переключил работу дополнения в дефолтный режим. Форма на айфонах отправляется и проходит валидацию




По моим наблюдениям в режиме nojq затык происходит в момент отправки запроса: форма будто бы замирает, либо пытаясь отправить данные, либо ожидая ответа от сервера
Александр Быковский
22 марта 2022, 15:11
0
Заменил в файле *.js let на var. Безрезультатно(
Александр Быковский
22 марта 2022, 12:47
0
По всей видимости на айфонах не работает. Связка AjaxForm (без JQ) + FormIt + SweetAlert2.
Тестировал отправку на Windows, Chrome Android — всё отправляется.
На айфонах (реальных) + тест в Browserstack — форма не отправляется.
Александр Быковский
14 марта 2022, 11:17
0
По умолчанию данных хранятся в чанке формы (value=«Форма обратной связи»), иногда меняется средствами JS, как раз для того, чтобы были разные темы писем.
Александр Быковский
14 марта 2022, 07:14
0
нет, он определен значением скрытого инпута в форме.
<input type="hidden" name="email_subject" id="af_email_subject" value="Форма обратной связи">
Таким образом:
emailReplyTo = input name=«email»
emailSubject = input name=«email_subject»
Александр Быковский
13 марта 2022, 21:22
0
там же где и email, в форме, только email_subject определён заранее, до отправки, а email непосредственно в момент
Александр Быковский
12 марта 2022, 14:45
0
Добрый день. Чтобы не создавать новый топик опишу ситуацию здесь.
Имею такой вызов сниппета AjaxForm
{'!AjaxForm'|snippet:[
  'snippet' => 'FormIt',
  'form' => '@FILE chunks/feedback/feedback_form.tpl',
  'emailTpl' => '@FILE chunks/feedback/feedback_letter.tpl',
  'hooks' => 'chekSpamProtectionMessageKey,checkSpam,email,FormItSaveForm',
  'formName' => 'Форма'
  'formFields' => 'name,email,phone,message',
  'fieldNames' => 'name==Имя отправителя,email==Электронная почта,phone==Телефон,message==Сообщение',
  'emailTo' => 'email_to'|config,
  'emailSubject' => $_modx->getPlaceholder('email_subject'),
  'emailReplyTo' => $_modx->getPlaceholder('email'),
  'emailFrom' => 'email_from'|config,
  'emailFromName' => 'site_name'|config,
  'validate' => 'name:required,email:email:required,message:required,nospam:blank,usecontrol:blank',
]}
Соответственно значение emailReplyTo берется из поля email отправляемой формы. И оно удачно отправляется.
Но вот данные для emailSubject планировал брать из скрытого поля
<input type="hidden" name="email_subject" id="af_email_subject" value="Форма обратной связи">
значение которого меняется в зависимости от шаблона и выбранных настроек, чтобы не плодить формы.Так вот оно не отправляется. Письма приходят без темы.
Но если использовать такую конструкцию в вызове
'emailSubject' => '[[+email_subject]]',
то всё работает.
Я где-то что-то упустил? Спасибо
Александр Быковский
12 марта 2022, 14:07
0
я правильно понимаю, что код сниппета можно взять из файла snippet.ajaxform.php в вашем репозитории ajaxform_without_jquery на гитхаб?
Александр Быковский
12 марта 2022, 01:25
0
Здравствуйте.
Заменил default.js и core/components/ajaxform/model/ajaxform/ajaxform.class.php

При загрузке страницы ошибка:
default.js:7 Form not found. Check the correctness of the selector.
При отправке происходит перезагрузка страницы. Форма не отправляется, журнал ошибок пуст
Александр Быковский
10 марта 2022, 12:31
0
Спасибо большое!
Есть ли где-нибудь мануал по этим тонкостям?
Александр Быковский
10 марта 2022, 10:58
0
Я себе уже всю голову сломал с феномом) Вот такой чанк, который обрабатывается pdoResources
<!-- [[#[[+parent]].alias]] -->
<!-- {$_modx->resource.parent | resource : 'alias'}-->

<li data-category="[[#[[+parent]].alias]]">
  <div class="catalog-card">
    {$pagetitle}
  </div>
</li>
Структура такова

В коллекциях лежат ресурсы, мы их выбираем и каждому элементу присваиваем атрибут data-category с алиасом родителя (названием категории)

Вызов pdoResources
{'pdoResources' | snippet: [
    'parents' => $_modx->resource.id,
    'depth' => '3',
    'limit' => '0',
    'tpl'  => '@FILE chunks/painting/catalog_block.tpl',
    'sortby'  =>  'menuindex',
    'sortdir'  =>  'ASC',
    'where' => '{"template":4}'
  ]}
Проблема в том, что вызов
[[#[[+parent]].alias]]
даёт верный результат, а вызов через Fenom выдает алиас страницы, на которой вызывается сниппет: в данном случае catalog

Что я делаю не так?
Спасибо
Александр Быковский
17 февраля 2022, 23:21
0
@Илья Уткин подниму тему, дабы новую не начинать.
Есть сайт с уже древненькой версией 2.6.5. После начала установки вышел на 404 ошибку (не найден путь /setup/). В панель зашёл без проблем. Откатился на заранее сделанный бекап через BackupModx. Но simpleUpdater считает что я успешно обновился и система актуальная.
Александр Быковский
09 февраля 2022, 14:06
0
Добрый день. Удалось как-то решить задачу?
Александр Быковский
09 июня 2021, 11:50
0
Добрый день. Тоже подключился к данной теме по просьбе) Дополнения последние msMultiCurrency и Polylang. У У ссылок класс polylang-toggle как и в trigger. Событие OnTogglePolylangLanguage для плагина из документации. Но переключение валюты при смене языка не происходит
Александр Быковский
16 июня 2020, 12:34
0
Благодарю, попробую данный вариант.
Александр Быковский
19 ноября 2019, 14:20
0
Действительно. Даже и предположить не мог. Спасибо
Александр Быковский
27 сентября 2019, 09:44
0
Я правильно понимаю что вы этот код
<?php
$isAjax = !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest';
if (!$isAjax) {
    // Выставляем плейсхолдер ошибки
    $hook->addError('name', 'Спам!');
    return false;
}

$pageId = $hook->getValue('pageId');
if (empty($pageId)){
    $hook->addError('name', 'Спам!');
    return false;
}
return true;
вставляете в сниппет и вызываете этот сниппет перед хуком mail в formit?
Александр Быковский
26 сентября 2019, 11:34
0
В режиме PHP модуль апаче отрабатывает плагин на ура. А вот в режиме PHP-FPM редиректы не работают. Так и должно быть?
Александр Быковский
26 сентября 2019, 00:26
0
Добавил в конфиг такой блок
location ~ /\. {
        deny all;
    }
Но сервер всё равно отдаёт .htaccess
Александр Быковский
27 августа 2019, 13:19
0
в целом самый простой вариант реализации — это просто добавить email автора комментария к отправляемому уведомлению. А где это сделать я не могу найти к сожалению