14 сентября 2024, 22:53 Мысли в слух. Было бы неплохо создать список жизненно необходимых дополнений для minishop3. Например способы оплаты такие как ЮKassa, Robokassa или доставку такие как Почта России и СДЭК. Возможно сделать отдельную страницу для сбора денег на эти дополнения, а поддержку и исправление багов уже осуществлять скажем так за счёт продаж этих самых дополнений. На данный момент например на площадке нету СДЭК. Так же дополнение ЮKassa представленное в modstore поддерживает как я понимаю не все фичи а только самую первую из этого списка: — Работа с облачными кассами (по 54-ФЗ, ФФД 1.05) — Платежи с предавторизацией (в два этапа) — Выставление счетов — Быстрая интеграция — B2B-платежи — Умный платеж — Возвраты То есть в общем и целом подводя итоги критериев для списка и требования к дополнениям предлагаю следующие: — Добавлять в список только популярные часто используемые решения (чтобы не распыляться на дополнения у которых будет 1-5 загрузок) — Поддержка и разработка этих дополнений на ровне с самим minishop3 то есть отношения к ним как к неотъемлемой части minishop3 — Все дополнения из этого списка должны быть платными (скажем так для мотивации поддержки дополнения) — Дополнения должны иметь все возможные фичи а так же возможность их гибко настраивать (например добавить фичу по автоматическому созданию заказов в СДЭК при заказе товара с сайта, но при этом добавить возможность отключить эту функцию) Новые дополнения и их версии / MiniShop3 - когда и чего ждать? 15 +1
03 июля 2024, 19:19 Тоже пользовался стандартной транслитерацией translit всё нормально индексировалось так что в принципе эти настройки необязательны. На новом сайте хотел использовать именно транслитерацию Яндекс но все онлайн сервисы в которых написано что у них всё по стандарту Яндекса делают это по-разному Уроки / Настройка translit для поисковой системы яндекс 10 0
03 июля 2024, 16:42 С translit у меня файлы транслитерируются но с точками проблем нет при этом никакие дополнительные настройки я для этого не использовал. В translitor наверняка это можно исправить но есть другая проблема с совместимостью с другими пакетами поэтому я не стал разбираться. Одно из преимуществ translitor как указано на сайте пакета это: — Улучшена фильтрация ненужных символов. В отличие от Translit, который пропускает скобки, подчеркивания, слеши, различные служебные символы, Translitor их не пропускает. В поле alias попадают только буквы, цифры. Все остальное заменяется разделителем-заменителем (дефисом). В translit для этого нужно поставить значение alphanumeric в ключе friendly_alias_restrict_chars Информация для составления транслитерации которую я выложил взята из Яндекса и отличается от translitor хоть и не сильно yandex.ru/support/nmaps/app_transliteration.html (Статья для карт). Учитывая что с translitor могут быть определенные проблемы я решил что более разумно будет добавить необходимую мне транслитерацию в translit и для этого потребовалось довольно скромное количество кода. Уроки / Настройка translit для поисковой системы яндекс 10 +1
03 июля 2024, 02:30 Добавил ещё несколько изменений в транслитерацию. Теперь отличий чуть больше) Уроки / Настройка translit для поисковой системы яндекс 10 0
01 июля 2024, 20:25 Посмотрел файл в translitor следующие 2 буквы отличаются из тех что я менял 'Shch' => ['Щ'], 'H' => ['Х'],. В общем и целом в стандартном файле translit я заменил только 4 буквы Уроки / Настройка translit для поисковой системы яндекс 10 0
01 июля 2024, 20:21 У меня с ним были проблемы (совместимость с другими плагинами) и он насколько я помню так же точки вырезает когда загружаешь файл. Уроки / Настройка translit для поисковой системы яндекс 10 +1
01 июля 2024, 20:13 Заменено не так много но может кому пригодиться. Если есть какие-либо предложения/правки прошу написать, возможно что-то упустил Уроки / Настройка translit для поисковой системы яндекс 10 0
10 апреля 2024, 02:25 Попробовал так. Письмо всё равно отправляется пустым. Возможно не передаются значения который находятся в переменных. Или передается некорректно. {set $fields = $fields | replace: '"' : '"' | fromJSON} {set $fieldsAliases = $fieldsAliases | replace: '"' : '"' | fromJSON} <h3>{$_pls['savedForm.form']}</h3> На всякий случай проверил так. Здесь всё отправляется. <h3>test</h3> После того как поменяли строку на {if $questions && ($questions | count)} письма начали отправляться (до этого не отправлялись на php 8) Но похоже дело не только в этом. Вопросы / Sendit не работает на PHP 8 16 0
09 апреля 2024, 20:57 Письмо отправилось но с пустым содержанием. Отправилась значение темы письма то что находится внутри 'emailSubject' => 'Письмо с сайта domain.ru', В данный момент стоит PHP FastCGI (Apache) 8.3.2 (alt) Это то что у меня стоит внутри siDefaultEmail (ничего не менял) {set $fields = $fields | replace: '"' : '"' | fromJSON} {set $fieldsAliases = $fieldsAliases | replace: '"' : '"' | fromJSON} {set $questions = $fields['questions'] | fromJSON} {set $answers = $fields['answers'] | fromJSON} <h3>{$_pls['savedForm.form']}</h3> {if $questions | count} {foreach $questions as $i => $question} <p><strong>{$question}</strong>: {$answers[$i] | join: ', '}</p> {/foreach} {else} {foreach $fields as $k => $v} {if !($k in list ['fields', 'fieldsAliases'])} <p><strong>{$fieldsAliases[$k] ?: $k}</strong>: {$v | join: ', '}</p> {/if} {/foreach} {/if} Вопросы / Sendit не работает на PHP 8 16 0
08 апреля 2024, 15:41 Моя форма <form data-si-form="callback" data-si-preset="callback" class="p-4 p-md-5 border rounded-3 bg-primary bg-gradient"> <div class="form-floating mb-3"> <input name="phoneform" id="phoneform" type="tel" class="form-control" placeholder="+7 (XXX) XXX-XX-XX" pattern="(\+7|8)\s?[\(]?(\d{3})[\)]?\s?[\-]?(\d{3})[\-]?(\d{2})[\-]?(\d{2})" required> <p data-si-error="phoneform"></p> <label for="phoneform">Телефон</label> </div> <button class="w-100 btn btn-lg btn-light bg-gradient" type="submit">Жду звонка</button> <hr class="text-white my-4"> <small class="text-white text-center">Свяжемся с вами в течении 1 минуты</small> </form> То что находится в core/components/sendit/presets/sendit.inc.php Добавил только callback остальное не трогал <?php return [ 'default' => [ 'validate' => 'phone:required,age:required,name:required,email:email:required,politics:checkbox:required', 'fieldNames' => 'age==Возраст,name==Имя,phone==Телефон,email==Почта', ], 'callback' => [ 'validate' => 'phoneform:required', 'fieldNames' => 'phoneform==Телефон', 'successMessage' => 'Форма отправлена!', 'hooks' => 'email,FormItSaveForm', 'emailTpl' => 'siDefaultEmail', 'emailTo' => 'marketing@site.ru', 'formName' => 'Форма по умолчанию', 'emailSubject' => 'Письмо с сайта domain.ru', ], 'search_something' => [ 'snippet' => '@FILE snippets/snippet.search.php' ], 'check_something' => [ 'snippet' => 'checkSnippet' ], 'check_code' => [ 'snippet' => 'code' ], 'upload_file' => [ 'hooks' => '', 'allowExt' => 'jpg,png,jpeg,webp,tiff,tif', 'portion' => 0.1, 'threadsQuantity' => 12, ], 'upload_simple_file' => [ 'extends' => 'upload_file', 'maxSize' => 1, 'maxCount' => 2, ], 'upload_drop_file' => [ 'extends' => 'upload_file', 'maxSize' => 5, 'maxCount' => 10, ], 'form_with_file' => [ 'extends' => 'default', 'validate' => 'name:required', 'attachFilesToEmail' => 'files', 'allowFiles' => 'filelist', 'clearFieldsOnSuccess' => 1, ], 'quiz' => [ 'validate' => 'phone:required,name:required,answers[*]:required,answers[7][]:checkbox:required,answers[3]:requiredIf=^answers[2]|Да^', 'clearFieldsOnSuccess' => 0, 'hooks' => 'FormItSaveForm,email', 'fieldNames' => 'phone==Телефон,name==Имя', ], 'register' => [ 'hooks' => 'Identification,FormItSaveForm,FormItAutoResponder', 'method' => 'register', 'successMessage' => 'Вы успешно зарегистрированы. Подтвердите email для активации учётной записи.', 'fiarSubject' => 'Активация пользователя', 'fiarFrom' => 'email@domain.ru', 'fiarTpl' => 'siActivateEmail', 'activation' => 1, 'rememberme' => 1, 'authenticateContexts' => 'web', 'afterLoginRedirectId' => 5, 'autoLogin' => 1, 'redirectTo' => '', 'passwordField' => '', 'usernameField' => 'email', 'usergroupsField' => '', 'moderate' => '', 'redirectTimeout' => 3000, 'usergroups' => 2, 'activationResourceId' => 1, 'activationUrlTime' => 10800, 'validate' => 'email:required,password:checkPassLength=^8^,password_confirm:passwordConfirm=^password^,politics:checkbox:required', 'politics.vTextRequired' => 'Примите наши условия.', 'password.vTextRequired' => 'Придумайте пароль.', 'password.checkPassLength' => 'Пароль должен быть не менее 8 символов.', ], 'auth' => [ 'successMessage' => 'Вы успешно авторизованы и будете перенаправлены в личный кабинет.', 'validate' => 'email:required,password:required', 'hooks' => 'Identification', 'method' => 'login', 'redirectTo' => 5, 'redirectTimeout' => 3000, 'usernameField' => 'email', 'email.vTextRequired' => 'Укажите email.', 'password.vTextRequired' => 'Введите пароль.', 'errorFieldName' => 'errorLogin' ], 'editpass' => [ 'hooks' => 'Identification', 'method' => 'update', 'successMessage' => 'Пароль изменён.', 'validate' => 'password:required:minLength=^8^:regexp=^/\A[\da-zA-Z!#\?&]*$/^,password_confirm:password_confirm=^password^', 'password.vTextRequired' => 'Придумайте пароль.', 'password.vTextRegexp' => 'Пароль может содержать только цифры, латинские буквы и символы !,#,?,&', 'password.vTextMinLength' => 'Пароль должен быть не менее 8 символов.', ], 'dataedit' => [ 'hooks' => 'Identification', 'method' => 'update', 'successMessage' => 'Данные сохранены.', 'clearFieldsOnSuccess' => 0, 'validate' => 'email:required:email', 'email.vTextRequired' => 'Укажите email.' ], 'logout' => [ 'hooks' => 'Identification', 'method' => 'logout', 'successMessage' => 'До новых встреч!', 'redirectTo' => 1, 'errorFieldName' => 'errorLogout' ], 'forgot' => [ 'hooks' => 'Identification,FormItSaveForm,FormItAutoResponder', 'method' => 'forgot', 'successMessage' => 'Новый пароль отправлен на ваш email', 'usernameField' => 'email', 'validate' => 'email:required:userNotExists', 'fiarSubject' => 'Восстановление пароля', 'fiarFrom' => 'email@domain.ru', 'fiarTpl' => 'siResetPassEmail', 'email.vTextRequired' => 'Укажите email.', 'email.vTextUserNotExists' => 'Пользователь не найден', ], 'custom' => [ 'extends' => 'onestepform', 'snippet' => '@FILE snippets/test.php', 'hooks' => '', 'validate' => '' ], 'sendcode' => [ 'hooks' => '', 'snippet' => '@FILE snippets/smsauth/snippet.sendcode.php', 'successMessage' => 'Код отправлен на номер {$phone}', 'validate' => 'phone:required', 'phone.vTextRequired' => 'Укажите телефон.' ], 'checkcode' => [ 'hooks' => '', 'successMessage' => '', 'validate' => 'code:CheckCode', 'validationErrorMessage' => 'Неверный код.', ], 'sms_auth' => [ 'extends' => 'checkcode', 'successMessage' => 'Вы успешно авторизованы.', 'hooks' => 'SetUserFields,Identification', 'method' => 'login', 'redirectTo' => 5, 'user_exist' => 1, 'redirectTimeout' => 3000, 'clearFieldsOnSuccess' => 1, ], 'sms_register' => [ 'hooks' => 'SetUserFields,Identification', 'method' => 'register', 'successMessage' => 'Вы успешно зарегистрированы.', 'activation' => 0, 'autoLogin' => 1, 'redirectTo' => 5, 'redirectTimeout' => 3000, 'usergroups' => 2, 'validate' => 'fullname:required,phone:required,code:CheckCode', 'fullname.vTextRequired' => 'Укажите ваше имя.', 'clearFieldsOnSuccess' => 1, ], ]; Вопросы / Sendit не работает на PHP 8 16 0
08 апреля 2024, 15:39 Лежит в папке FormIt название сниппета так же FormIt. Вот код который внутри: <?php /** * FormIt * * A dynamic form processing Snippet for MODx Revolution. * * @var modX $modx * @var array $scriptProperties * * @package formit */ use Sterc\FormIt; $fi = new FormIt($modx, $scriptProperties); $fi->initialize($modx->context->get('key')); $fi->loadRequest(); $fields = $fi->request->prepare(); return $fi->request->handle($fields); Вопросы / Sendit не работает на PHP 8 16 0
08 апреля 2024, 04:22 [08-Apr-2024 04:14:56 Europe/Moscow] PHP Fatal error: Uncaught TypeError: count(): Argument #1 ($value) must be of type Countable|array, null given in /var/www/u1387551/data/www/site.ru/core/components/pdotools/vendor/fenom/fenom/src/Fenom/Template.php(487) : eval()'d code:20 Stack trace: #0 /var/www/u1532978/data/www/site.ru/core/components/pdotools/vendor/fenom/fenom/src/Fenom/Render.php(215): Fenom\Template->{closure}(Array, Object(Fenom\Template)) #1 /var/www/u1532978/data/www/site.ru/core/components/pdotools/vendor/fenom/fenom/src/Fenom/Render.php(215): Closure->__invoke(Array, Object(Fenom\Template)) #2 /var/www/u1532978/data/www/site.ru/core/components/pdotools/vendor/fenom/fenom/src/Fenom/Template.php(492): Fenom\Render->display(Array) #3 /var/www/u1532978/data/www/site.ru/core/components/pdotools/vendor/fenom/fenom/src/Fenom/Render.php(229): Fenom\Template->display(Array) #4 /var/www/u1532978/data/www/site.ru/core/components/pdotools/src/Parsing/Fenom/Fenom.php(136): Fenom\Render->fetch(Array) #5 /var/www/u1532978/data/www/site.ru/core/components/pdotools/src/CoreTools.php(418): ModxPro\PdoTools\Parsing\Fenom\Fenom->process(Array, Array) #6 /var/www/u1532978/data/www/site.ru/core/components/formit/src/FormIt.php(341): ModxPro\PdoTools\CoreTools->getChunk('siDefaultEmail', Array) #7 /var/www/u1532978/data/www/site.ru/core/components/formit/src/FormIt/Hook/Email.php(193): Sterc\FormIt->getChunk('siDefaultEmail', Array) #8 /var/www/u1532978/data/www/site.ru/core/components/formit/src/FormIt/Hook.php(141): Sterc\FormIt\Hook\Email->process(Array) #9 /var/www/u1532978/data/www/site.ru/core/components/formit/src/FormIt/Hook.php(107): Sterc\FormIt\Hook->load('email', Array, Array) #10 /var/www/u1532978/data/www/site.ru/core/components/formit/src/FormIt/Request.php(402): Sterc\FormIt\Hook->loadMultiple(Array, Array) #11 /var/www/u1532978/data/www/site.ru/core/components/formit/src/FormIt/Request.php(345): Sterc\FormIt\Request->runPostHooks() #12 /var/www/u1532978/data/www/site.ru/core/components/formit/src/FormIt/Request.php(254): Sterc\FormIt\Request->postProcess() #13 /var/www/u1532978/data/www/site.ru/core/cache/includes/elements/modx/revolution/modsnippet/11.include.cache.php(21): Sterc\FormIt\Request->handle(Array) #14 /var/www/u1532978/data/www/site.ru/core/src/Revolution/modScript.php(88): include('/var/www/u13875...') #15 /var/www/u1532978/data/www/site.ru/core/components/pdotools/src/CoreTools.php(358): MODX\Revolution\modScript->process(NULL) #16 /var/www/u1532978/data/www/site.ru/core/components/sendit/model/sendit/sendit.class.php(391): ModxPro\PdoTools\CoreTools->runSnippet('FormIt', Array) #17 /var/www/u1532978/data/www/site.ru/core/components/sendit/model/sendit/sendit.class.php(372): SendIt->runSnippet('FormIt') #18 /var/www/u1532978/data/www/site.ru/assets/components/sendit/action.php(45): SendIt->process() #19 {main} thrown in /var/www/u1532978/data/www/site.ru/core/components/pdotools/vendor/fenom/fenom/src/Fenom/Template.php(487) : eval()'d code on line 20 Вопросы / Sendit не работает на PHP 8 16 0
03 апреля 2024, 20:50 У меня на хостинге выключены логи. Как только разберусь как включить, постараюсь прислать. Вопросы / Sendit не работает на PHP 8 16 0
02 апреля 2024, 17:36 Если это поможет могу даже в личку прислать данные от админки. Для развития комьюнити не жалко) Вопросы / Sendit не работает на PHP 8 16 0
27 марта 2024, 20:02 Ну в общем я поторопился с выводами. Это помогла от спама который напрямую отсылал через action. Но не помог от этих сообщения который до этого были. config_prefer_imagemagick: 0 src: http f: php action: web/phpthumb useRawIMoutput: 1 IMresizedData: phoneform:Похоже он отправляет не напрямую и создается сессия поэтому этот код в данном случаи не помог. При этом игнорирует hook spam а также required на поле phoneform. Похоже на некорректную работу плагина на сайте я хз… Логи совпадающие со временем отправки 109.248.15.180 - - [27/Mar/2024:10:07:17 +0300] "POST /assets/components/fetchit/action.php HTTP/1.0" 200 320 "https://site.ru/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:124.0) Gecko/20100101 Firefox/124.0" 2a12:5940:12c5::2 - - [27/Mar/2024:10:07:23 +0300] "GET / HTTP/1.1" 301 173 "-" "Mozilla/5.0 (X11; Linux i686; rv:51.0) Gecko/20100101 Firefox/51.0" 2a12:5940:12c5::2 - - [27/Mar/2024:10:07:23 +0300] "GET / HTTP/1.0" 200 19134 "-" "Mozilla/5.0 (X11; Linux i686; rv:51.0) Gecko/20100101 Firefox/51.0" 2a12:5940:12c5::2 - - [27/Mar/2024:10:07:33 +0300] "POST /connectors/system/phpthumb.php HTTP/1.0" 200 158 "https://site.ru:443/" "Mozilla/5.0 (X11; Linux i686; rv:51.0) Gecko/20100101 Firefox/51.0" 2a12:5940:12c5::2 - - [27/Mar/2024:10:07:33 +0300] "POST /assets/components/gallery/connector.php HTTP/1.0" 404 19134 "https://site.ru:443/connectors/system/phpthumb.php" "Mozilla/5.0 (X11; Linux i686; rv:51.0) Gecko/20100101 Firefox/51.0" 2a12:5940:12c5::2 - - [27/Mar/2024:10:07:34 +0300] "GET /assets/components/gallery/cache/http.836565742893abde7371fbf19ddc8253.php HTTP/1.0" 404 19134 "https://site.ru:443/assets/components/gallery/connector.php" "Mozilla/5.0 (X11; Linux i686; rv:51.0) Gecko/20100101 Firefox/51.0" 2a12:5940:12c5::2 - - [27/Mar/2024:10:07:41 +0300] "GET /assets/images/accesson.php HTTP/1.0" 404 19134 "https://site.ru:443/assets/components/gallery/cache/http.836565742893abde7371fbf19ddc8253.php" "Mozilla/5.0 (X11; Linux i686; rv:51.0) Gecko/20100101 Firefox/51.0" Это то что внутри &form=`callbackform` <form action="[[~[[*id]]]]" method="post" class="p-4 p-md-5 border rounded-3 bg-primary bg-gradient"> <input type="hidden" name="nospam" value=""> <div class="form-floating mb-3"> <input name="phoneform" type="tel" class="form-control" id="phoneform" placeholder="+7 (XXX) XXX-XX-XX" pattern="(\+7|8)\s?[\(]?(\d{3})[\)]?\s?[\-]?(\d{3})[\-]?(\d{2})[\-]?(\d{2})" required> <label for="phoneform">Телефон</label> <div class="invalid-feedback" data-error="phoneform">[[+fi.error.phoneform]]</div> </div> <button class="w-100 btn btn-lg btn-light bg-gradient" type="submit">Жду звонка</button> <hr class="text-white my-4"> <small class="text-white text-center">Свяжемся с вами в течении 1 минуты</small> </form> Вызов [[!FetchIt? &form=`callbackform` &preHooks=`chkbot` &hooks=`spam, email` &emailSubject=`Обратный звонок` &emailTo=`marketing@site.ru` &validate=`nospam:blank, phoneform: required` &validationErrorMessage=`В форме содержатся ошибки!` &successMessage=`Сообщение успешно отправлено!` ]] Вопросы / Спам через AjaxForm 13 0
25 марта 2024, 18:55 Ну я вроде уже определился пообщавшись здесь, что мне не нужен SmartRouting (единственное у него в документации написано Cache the http_host/base_url => context settings to avoid database lookups on page load. Но я думаю это не критичный момент и можно обойтись без этого). Скорее всего воспользуюсь вариантом Артура Шевченко или вариантом из официальной документации. Я считаю вариант Артура хорош, особенно если будет много доменов и в любой момент нужно будет создавать и удалить их. Так как у меня на проекте всего 2 домена и больше не будет, мне так же подходит вариант из документации. Всем спасибо) Вопросы / Как лучше всего реализовать 2 сайта на одном движке? 12 0
25 марта 2024, 18:43 Сегодня началась новая спам атака на сайт. Накидали за день номеров 200 на почту через assets/components/FetchIt/action.php. Этот код помог (стоит FetchIt). Единственное что не пойму почему не сработал файл .htaccess который я вставил в assets/components/FetchIt и прописал там RewriteEngine On RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?vision-hotel.ru [NC] RewriteRule \.* - [F]Похоже что заголовок Referer тоже подделывали при спаме. SendIt пока что не хочется ставить. В общем и целом нравится FetchIt так же там готовая интеграция с AmoCRM которую легко и быстро настроил через FetchIt sucsess. Надеюсь автор допилит этот момент из коробки. А так всем спасибо) Вопросы / Спам через AjaxForm 13 0
25 марта 2024, 10:19 Всё читаю и пытаюсь вникнуть) Просто нет опыта и хочется разобраться в вопросе не поверхностно. Я ищу лёгкий путь в самой настройке но иду сложным путем в плане того что хочется собрать побольше информации. Вопросы / Как лучше всего реализовать 2 сайта на одном движке? 12 0
[videoGallery] Видео галерея YouTube, Vimeo Невозможно установить пакет с подписью: videogallery-1.4.0-beta Ошибка установки Error в /core/packages/videogallery-1.4.0-beta/modCategory/7fc931a7772edc9752c16e9c41eb5e52.reso...
mxBoard: канбан-доска для команд, людей и ИИ-агентов в MODX 3 Привет, добавил пользователя в группу mxBoard(4), создал токен. Добавляю все в postman пишет: rest: { «success»: false, «message»: «Недействительный токен.», «data...
Релиз miniShop2 ver. 4.4.1 & 4.4.2 Подскажите пожалуйста, может я что-то не знаю или упустил. Но есть ли решение по глюку с radio? Указываешь свое radio c одинаковым name и в результате при переключении получаешь вс...
Плагин EnvBadge: визуальный индикатор окружения в админке MODX3 Расскажите пожалуйста как вы настраиваете сайт на MODX 3 чтобы был dev, prod, stage. Можете описать workflow? Допустим у меня 80% — это магазины, там клиенты, продажи, все онлай...
MaxNotify Обновление компонента 1.3.0-pl (22.07.2026) — добавлено автоматическое получение полей через msOrder->toArray(); — массивы и объекты безопасно пропускаются; — стандартные...
MyFavorites MyFavorites — 3.0.0-beta Первая версия для MODX Revolution 3.x — компонент полностью переписан с нуля (PHP >= 8.4, namespaced-ядро MODX 3, PSR-4, сервис-ориентированная архит...
Возможно сделать отдельную страницу для сбора денег на эти дополнения, а поддержку и исправление багов уже осуществлять скажем так за счёт продаж этих самых дополнений.
На данный момент например на площадке нету СДЭК. Так же дополнение ЮKassa представленное в modstore поддерживает как я понимаю не все фичи а только самую первую из этого списка:
— Работа с облачными кассами (по 54-ФЗ, ФФД 1.05)
— Платежи с предавторизацией (в два этапа)
— Выставление счетов
— Быстрая интеграция
— B2B-платежи
— Умный платеж
— Возвраты
То есть в общем и целом подводя итоги критериев для списка и требования к дополнениям предлагаю следующие:
— Добавлять в список только популярные часто используемые решения (чтобы не распыляться на дополнения у которых будет 1-5 загрузок)
— Поддержка и разработка этих дополнений на ровне с самим minishop3 то есть отношения к ним как к неотъемлемой части minishop3
— Все дополнения из этого списка должны быть платными (скажем так для мотивации поддержки дополнения)
— Дополнения должны иметь все возможные фичи а так же возможность их гибко настраивать (например добавить фичу по автоматическому созданию заказов в СДЭК при заказе товара с сайта, но при этом добавить возможность отключить эту функцию)
Одно из преимуществ translitor как указано на сайте пакета это:
— Улучшена фильтрация ненужных символов. В отличие от Translit, который пропускает скобки, подчеркивания, слеши, различные служебные символы, Translitor их не пропускает. В поле alias попадают только буквы, цифры. Все остальное заменяется разделителем-заменителем (дефисом).
В translit для этого нужно поставить значение alphanumeric в ключе friendly_alias_restrict_chars
Информация для составления транслитерации которую я выложил взята из Яндекса и отличается от translitor хоть и не сильно yandex.ru/support/nmaps/app_transliteration.html (Статья для карт).
Учитывая что с translitor могут быть определенные проблемы я решил что более разумно будет добавить необходимую мне транслитерацию в translit и для этого потребовалось довольно скромное количество кода.
На всякий случай проверил так. Здесь всё отправляется.
После того как поменяли строку на {if $questions && ($questions | count)} письма начали отправляться (до этого не отправлялись на php 8) Но похоже дело не только в этом.
В данный момент стоит PHP FastCGI (Apache) 8.3.2 (alt)
Это то что у меня стоит внутри siDefaultEmail (ничего не менял)
То что находится в core/components/sendit/presets/sendit.inc.php
Добавил только callback остальное не трогал
Вот код который внутри:
Похоже он отправляет не напрямую и создается сессия поэтому этот код в данном случаи не помог. При этом игнорирует hook spam а также required на поле phoneform. Похоже на некорректную работу плагина на сайте я хз…
Логи совпадающие со временем отправки
Это то что внутри &form=`callbackform`
Вызов
Похоже что заголовок Referer тоже подделывали при спаме.
SendIt пока что не хочется ставить. В общем и целом нравится FetchIt так же там готовая интеграция с AmoCRM которую легко и быстро настроил через FetchIt sucsess.
Надеюсь автор допилит этот момент из коробки. А так всем спасибо)