Артём Зернов

Артём Зернов

С нами с 05 апреля 2013; Место в рейтинге пользователей: #599
Артём Зернов
22 ноября 2019, 07:08
+1
Определенно, это указывает на то, что данные, получаемые из процессора при открытии формы на редактирование, либо не поступают от процессора, либо просто не подставляются в поля. Мне что-то подсказывает, что коннектор возвращает только стандартные поля, а про доп. поля ему ничего не известно.
Чтобы это понять, открывайте консоль браузера и в момент открытия формы на редактирование посмотрите, какие данные возвращает коннектор. Если в них нет ваших доп. полей, значит нужно копать серверную часть и смотреть, где вы что-то упустили, что коннектор не возвращает нужные данные.
Если же данные поступают, но не подставляются в поля, то нужно копать клиентскую часть, то есть javascript, и смотреть, почему эти данные не подставляются в соответствующие поля формы.

Понимаю, что вы надеялись скорее всего получить конкретный ответ, но, к сожалению, у меня сейчас не так много времени, чтобы воспроизвести у себя данный кейс и указать на конкретную причину :)
Артём Зернов
21 ноября 2019, 16:37
+1
То есть если я все правильно понимаю, поля отображаются, все ок. При сохранении формы первый раз все отправляется и сохраняется, а при редактировании уже нет? При редактировании в кастомных полях есть данные или они пустые?
Артём Зернов
12 февраля 2018, 09:55
+1
Я явно вижу, что ты не до конца понимаешь сути работы git и отдельных его фишек. Поэтому советую больше почитать про git, его возможности и команды.

Как решается твоя проблема (как я ее решаю):
1. Приходит готовый сайт, я создаю под него отдельный репозиторий
2. Создаю .gitignore файл, в который я дописываю все те файлы, которые не нужно хранить под контролем версий (туда относятся всякие изображения, добавляемые админом при создании новых ресурсов или редактировании старых, туда относятся папки с кэшем, и туда же относятся файлы-конфиги, в которых содержатся различные переменные, специфичные для того хоста, на котором этот сайт разворачивается)
3. Все конфиги я копирую в папку или файл с суфиксом .sample (то есть чтобы ты при разворачивании где-то в другом месте мог их скопировать, удалить .sample и прописать в них настройки для конкретного хоста)
4. Заливаю все это в свой репозиторий, делаю коммит и пуш (commit + push). То, что прописано в .gitignore туда не попадает.
5. На рабочем сервере сначала удаляю папку сайта (либо делаю бэкап), потом клонирую репозиторий в папку с таким же названием, как бывшая папка сайта, потом делаю конфиги из .sample-конфигов. Настраиваю БД и прочие стандартные вещи.
6. Копирую через FTP или SSH папки, которые не вошли в репозиторий (как правило, это только картинки, кэш копировать смысла нет)

И все!

Теперь, если ты делаешь изменения на своем локальном сервере, ты их заливаешь в репозиторий, а потом на сервере ты их вытягиваешь из репозитория командой git pull — и все это происходит в рабочем каталоге сайта.
Артём Зернов
22 сентября 2016, 15:51
+1
Тоже верно, мое решение — 5-минутное. Я когда написал, тоже подумал о том, что можно ввести другой промокод :)
Оперативненько сработал :)
Артём Зернов
22 сентября 2016, 10:33
+1
В методе setCurrentCoupon надо бы добавить строчки после первого if:

elseif($_SESSION['mspc']['coupon'] == $code){
            $this->mspc->setError($this->modx->lexicon('mspromocode_err_code_applied'), true);
            return false;
        }
А то получается, даже если купон уже был применен, то мы можем его повторно применять неограниченное количество раз.

Ну и в словарь добавить фразу «Этот купон уже был применен»
Артём Зернов
22 сентября 2016, 10:12
+1
Если в поле ввода промокода убрать [[+coupon:notempty=`disabled`]], то каждый раз, обновляя страницу корзины можно вводить этот же промокод и каждый раз скидка будет применяться к текущей сумме (то есть можно так себе сделать гораздо бОльшую скидку).

Павел, протестируй, пожалуйста, этот момент, так как это дает потенциальную дыру для «особо умных» покупателей :)