[РЕЛИЗ] SendIt 1.0.0-pl и документация
Приветствую! Первая стабильная версия моего нового компонента для отправки данных на сервер SendIt готова к использованию. Чтобы Вам было проще начать, я написал подробную документацию с примерами
Если хотите в общих чертах понять, что это за компонент, можете прочитать анонс.
Обращаю ваше внимание на то, что минимальная версия PHP с которой работает компонет 7.4. Если версия будет ниже, сайт сильно сломается и без доступа в БД Вы его не почините.В случае поломки, идите в БД и отключайте плагин SendIt, а потом шлите мне баг репорт.
Поддержки Modx 3 пока нет.
При установке должны скачаться FormIt и pdoTools. Однако со скачиванием FormIt могут возникнуть сложности, поэтому, возможно, придётся ставить его вручную.
pdoTools нужен только для возможности вызывать файловые сниппеты и чтобы работали стандартные чанки писем, если вам это не нужно pdoTools устанавливать необязательно.
Остальную информацию Вы сможете найти в документации. Она имеет такую структуру:
Ссылка на компонент в репозитории.
Ссылка на документацию.
Хочу поблагодарить @Баха Волков за великолепный инструмент создания документации.
Если хотите в общих чертах понять, что это за компонент, можете прочитать анонс.
Обращаю ваше внимание на то, что минимальная версия PHP с которой работает компонет 7.4. Если версия будет ниже, сайт сильно сломается и без доступа в БД Вы его не почините.В случае поломки, идите в БД и отключайте плагин SendIt, а потом шлите мне баг репорт.
Поддержки Modx 3 пока нет.
При установке должны скачаться FormIt и pdoTools. Однако со скачиванием FormIt могут возникнуть сложности, поэтому, возможно, придётся ставить его вручную.
pdoTools нужен только для возможности вызывать файловые сниппеты и чтобы работали стандартные чанки писем, если вам это не нужно pdoTools устанавливать необязательно.
Остальную информацию Вы сможете найти в документации. Она имеет такую структуру:
- Главная — содержит общую информацию и вариант быстрого старта
- Простые формы — тут вы найдёт информацию о том как отправлять одношаговые формы
- Опросники — этот раздел расскажет как создать многошаговую форму
- Загрузка файлов — тут вы узнаете как загружать файлы любого размера на сервер
- Сохранение данных — сюда могу заглянуть те, кому интересно, как сохраняются и заполняются данные форм.
- Уведомления — краткая информация об используемой библиотеке уведомлений.
- События — на этой странице вы узнаете как влиять на работу компонента.
- Разработка — ну и наконец я написал несколько примеров решения практических задач с помощью SendIt
Ссылка на компонент в репозитории.
Ссылка на документацию.
Хочу поблагодарить @Баха Волков за великолепный инструмент создания документации.
Комментарии: 51
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Вообще мне кажется, что правильнее показывать уведомление об успешной отправке не в «тосте», а в самой форме. «Тост» можно и не заметить, особенно на большом экране. Вроде как отправил форму, а ничего не произошло) Хотя думаю это несложно через событие сделать.
Кстати, компонент сессии использует? Была задача встроить форму через iframe, такая форма не работала из-за сессий. Пришлось переписывать (использовал своё решение, не ajaxform) чтоб данные в кэше хранились.
Есть ли стандартный шаблон для писем?
Нет, не использует, но использует куки.
Есть три шаблона писем: для обычных форм и опросов, для подтверждения email, для сброса пароля.
Остался вопрос почему в консоли такие ошибки вылези?
data-si-preset
или
data-si-form
Создал два пресета для двух языков
Форма вроде как и работает только уведомления не показывает ни на одной.
Пресет
'onestepform' => [
'extends' => 'default',
'hooks' => 'FormItSaveForm,email,sendMessageTelegram',
'redirectTo' => 0,
'redirectTimeout' => 3000,
'clearFieldsOnSuccess' => 1,
'fieldNames' => 'name==Имя',
'successMessage' => 'Ваш запрос успешно отправлен! На протяжинии 30 минут вам перевзонит наш менеджер!',
],
Если в настройках default
'default' => [
'validate' => 'phone:required,name:required,email:email:required,politics:checkbox:required',
],
оставить все поля а мне надо только 2 поля проверять то форма не отправляется пишет Это поле обязательно.
Если же в настройках default
'default' => [
'validate' => 'phone:required,name:required',
],
оставить только нужные мне поля то сообщения об ошибке нет вообще.
Еще одно hooks sendMessageTelegram если раньше он на любом сниппете работал на fetchit на ajaxformlogin отправлял уведомления без проблем то сейчас не работает.
Такой вопрос возник.
В личном кабинете есть форма изменения данных пользователя.
Для нее используются такие настройки:
При таких настройках, можно в форме указать почту другого пользователя, который тоже есть в бд, и все сохранится. Как сделать, чтобы выдавал ошибку, что такой пользователь уже зарегистрирован и эту почту использовать нельзя?
Назвал userExists
Код:
Все работает!
'validate' => 'phone:required,name:required,email:email:required,politics:checkbox:required',
Если же сам задаешь поля для валидации то сообщения нет.
вот это надо поменять
А может есть пример какой нибудь?
Есть форма. В ней клиент оставляет email и имя того кому должно уйти письмо.
Необходимо, чтобы письмо после отправки уходило на почты:
— Почта администратора сайта
— Почта того кто отправляет письмо name=«name»
— Почта того кого указали получателем письма в форме name=«recipient_name»
Форма:
Подскажите на что обратить внимание? Т.е. получается нам надо отправлять письма на почты которые заранее неизвестны, их заполняет клиент.
В логах:
Версия PHP 8.2, modx revo последний, что делать не пойму
Как раз «сайт сильно сломался»)
В общем в любом случае, хотелось бы узнать, каким образом я могу вернуть сайт в рабочее состояние
При загрузке файлов с русскими именами возникает ошибка:
Uncaught (in promise) TypeError: Failed to execute 'fetch' on 'Window': Failed to read the 'headers' property from 'RequestInit': String contains non ISO-8859-1 code point.
Подскажите как это исправить? Спасибо.