Всего 123 801 комментарий

Валерий
21 марта 2024, 21:18
0
В целом да, план примерно такой, когда какой-то элемент у созданного пользователя, будет соотноситься с имеющимся ресурсом (просто сначала сделали ресурсы, а потом спустя пару лет решили делать кабинеты). Спасибо за наводку на компонент, изучу.
Артур Шевченко
21 марта 2024, 20:14
+1
Если ты будешь создавать ресурс при регистрации, то ставь ему в createdby id нового пользователя. А потом в ЛК выводи форму с данными ресурса, который найдёшь по createdby. В общем, если использовать SendIt дело одной формы (изменения данных ресурса), и одного плагина (создания ресурса после регистрации) и одного сниппета (сохранения данных ресурса). 2-3 часа работы.
Александр Туниеков
21 марта 2024, 19:47
+1
Клиент сегодня озадачил. Пришлось побороть проблему.
Создаем веб приложение и прописываем в google консоле uri
ваш_сайт/manager/?a=home&namespace=googlesheets
Алексей
21 марта 2024, 18:50
0
А откуда SendIt получает ответ от минишопа (со ссылкой редиректа или номера заказа)? Я сделал так же только на ajaxform, и вот вопрос, как передать ответ минишопа в событие успешной отправки ajaxform?

$(document).on('af_complete', function (event, response) {
    if (response.success) {
        // Можно ли тут получить номер заказа или ссылку на оплату?
    }
});
Дима Касаткин
21 марта 2024, 18:12
0
Из статьи:
… если вы забудете правильно удалить зависимость, и сайт упадёт — никаких проблем, просто установите её обратно и удалите как положено.

Вы же всё равно это делаете из консоли сервера и нерабочая админка вам никак не помешает всё починить.
Зная разработчиков, могут и не заметить что сайт упал. Так что работа из админки даёт сайд-эффект пассивной проверки работоспособности)

Лучше всё-таки консоль использовать как fallback, а не как основной инструмент. ИМХО.
Дима Касаткин
21 марта 2024, 18:07
0
2. Как отвечать на вопросы от Composer при разруливании зависимостей?
А если помечтать, потенциально возможно прикрутить UI и всё-таки ставить пакеты из админки, ну бывает же Web UI для composer…?
(кстати сделано на твоём плюс-минус стеке? из slim и bootstrap)

Но после погружения в докер и прочие консоле-зависимые технологии, я уже замечал что сложно бывает объяснить как может быть, что при работе над сайтами люди никогда её не открывают). Но они есть (например я и те команды у кого я перенимал workflow, и кому передавал), как и есть те кто иногда меняет пару строчек кода в админке MODX минуя IDE (это не я)…

Но всё-таки знать, что полностью не вылезая из админки есть возможно работать — это очень хорошо, особенно для новичков.
Дима Касаткин
21 марта 2024, 17:50
+1
Василий, велком бэк :) И спасибо за новости!

Способ установки дополнения — интересный, и видно что много пользы под капотом!

В рамках фидбека, озвучу пару моментов, которые настораживают

• Дружелюбность установщика в консоли — не удобно от слова совсем. Возможно для тех кто разрабатывает фреймворки, CMS, и модули к ним, такой метод ок, но для тех, кто собирает сайты и лендинги — очень не очень, и отпугивает новичков системы (потому что в WP и Битриксе консоль не нужна чтобы собрать сайт)

• Тащить на фронтенд 430Кб CSS и JS для форм (которые 1,7 мб не сжатые) во времена расцвета повсеместной погони за PageSpeed для UX и SEO — для меня прямо стоп-фактор. Это в 10 раз больше, чем тащим для полнофункциональных форм сейчас:

— менее 40 килобайт на весь зоопарк (тоже сжатое, не gzip правда, а brotli, но там разница в ~10%)

C этим для затаскивания в продакшен mmxForms надо что-то будет делать… Может для форм в личном кабинете подойдет и как сейчас, но для страниц, куда из поиска посетители приходят — в таком виде пока не вариант.

P.S. А конструктор Vueform интересный конечно, Formalicious попроще будет, класс!
Василий Наумкин
21 марта 2024, 16:32
+1
1. Что делать, если зависимостей много и установка прервётся по таймауту? Это же web-запрос
2. Как отвечать на вопросы от Composer при разруливании зависимостей?

Но я, конечно, никому не могу помешать так делать.
Дмитрий
21 марта 2024, 15:27
+1
можно так
{
"field": "image",
"caption": "Изображение пузыря",
"inputTVtype": "image",
"sourceFrom":"config",
"sources":"[{\"MIGX_id\":\"1\",\"context\":\"web\",\"sourceid\":\"5\"}]"
}
где 5 — это id источника
Володя
21 марта 2024, 14:14
+1
Там если транспортник будет выполнять
composer exec mmx-forms install
при установке

и
composer exec mmx-forms remove
при удалении
кроме как костыля в виде самого пакета больше тут ничего и нет
Василий Наумкин
21 марта 2024, 13:58
0
Это тоже изврат, не надо такое поддерживать.

Мало того, что это сам по себе костыль, так еще и непонятно как зависимости через админку разруливать, в случае чего. А дальше надо опять как-то собирать траспортный пакет через MODX, грузить в репозитории, там еще что-то может поломаться…

Народ даже придумал консольный сборщик GPM, который работает по json схеме. Никому не нравится собирать транспортные пакеты, это издевательство.

Куда лучше потихоньку писать новые дополнения и переводить старые на установку из Composer. Будут хорошие дополнения использовать этот подход — будут и юзеры.
Василий Наумкин
21 марта 2024, 13:47
+3
сторонние модели возможно добавлять в список поддерживаемых разработчику
Да конечно, как только mmxDatabase установлен в системе, можно писать свои модели, расширяющие класс Model из Eloquent.

Любой будущий пакет может просто указать у себя в зависимостях mmx/database, а так как у нас всё через Composer, то установлен он будет только один раз, неважно сколько пакетов его требуют.

использование компонента на фронте выливается примерно в 1,5 мб дополнительного css и js?
Это только если без gzip — а с ним 420 Кб.


Тоже многовато, но оно закэшируется и больше грузиться не будет. Для всех форм на всех страницах будет грузиться один и тот же комплект файлов.
Сергей
21 марта 2024, 12:19
0
Через AjaxForm без FetchIt происходит тоже самое, игнорирование измененного чанка письма, удаленных/измененных input, проверок на пустоту и тд. Прямая какая-то проброска идет через assets/components/ajaxform/action.php.
Сергей
21 марта 2024, 12:13
0
В соседней теме как раз из той же области походу.

Буду пробовать SendIt, на новых точно уже без AjaxForm.
Сергей
21 марта 2024, 11:56
0
Благодарю, добавил проверку сессии, только сразу
die('Сообщение успешно отправлено.');
до этого ставил редирект на главную (спам проскакивал пару раз). Сейчас уже 3 часа полет нормальный.

Насколько я понял (php со словарем:)) там изначально проверка только на то что есть запрос ajax или нет, который получается можно подделать?

Прямые запросы на assets/components/ajaxform/action.php в логах остались, количество сократилось.

Имена и телефоны подставляют реальные из слитых баз, клиент сначала звонил по ним, некоторые отвечали что им звонят уже не первый раз из разных контор.
Наумов Алексей
21 марта 2024, 11:07
+2
Привет! Молодец, как всегда)
mmxDatabase понравился! Прям чешутся руки применить и попробовать, осталось найти где. По нему небольшой вопрос, сторонние модели возможно добавлять в список поддерживаемых разработчику? Например для miniShop3 (когда-то в будущем)?

И вопрос по mmxForms, верно понял, что использование компонента на фронте выливается примерно в 1,5 мб дополнительного css и js? Много, конечно, если речь про формы типа «Перезвоните мне»
Володя
21 марта 2024, 10:58
0
Ну так можно реализовать установку из композер и завернуть это в транспортный пакет.
Пакет будет установлен с учетом всех зависимостей и тд. Пакет будет в данном случае как обертка. Не будет занимать много места, будет так же работать и откат и тд и все фишки пакета MODX.
Наумов Алексей
21 марта 2024, 10:54
0
до сих пор придерживаются транспортных пакетов?
Устоявшаяся экосистема, привычные механизмы, куча реализованных пакетов (а переписать все это нужно много времени)? Типа работает — не трогай))
Володя
21 марта 2024, 10:33
+1
1. Мы решаем фундаментальную проблему с дублированием зависимостей, когда каждый транспортный пакет MODX может притащить свою версию популярной библиотеки в общее пространство имён, и что-нибудь этим сломать.
Да это очень напрягает, когда на сайте сразу 3 версии Guzzle с разных дополнений и приходиться придумывать велосипед как заставить это работать.

Отличный пример!!! Применю обязательно.

ps. Что мне непонятно, так почему ребята которые задают курс MODX до сих пор придерживаются транспортных пакетов? Когда в ядре уже есть все необходимое для установки через композер…