Дмитрий Танцирев

Дмитрий Танцирев

С нами с 03 декабря 2013; Место в рейтинге пользователей: #120
Дмитрий Танцирев
05 июля 2022, 15:40
+1
Если ответ (единица) приходит именно числом — то моё решение работать не будет =)
Оно работает только если ответ приходит текстом.

submitOnValue — взял не с потолка =) если что))

github.com/modxcms/revolution/blob/v2.8.4-pl/manager/assets/modext/util/utilities.js#L567
Дмитрий Танцирев
05 июля 2022, 11:50
0
Установите данный пакет: modx.com/extras/package/seosuite
Увидите =)

Данный пакет — объединил в себе два старых пакета: SEO Tab и SEO Pro

Если же у вас стоят SEO Tab и SEO Pro — то там «старый» вид.
Дмитрий Танцирев
23 июня 2022, 13:48
0
Спасибо за наводку!
Сейчас столкнулся точно с такой же проблемой.
Ваш пример увы не помог =(
В console.log(this.menu.record) — всё равно приходит единица текстом, а не числом (даже после изменения class.map.inc.php).

В чём проблема — так и не разобрался, но разобрался как это пофиксить.

{
    xtype: 'xcheckbox',
    fieldLabel: 'Чекбокс',
    name: 'isuser',
    submitOnValue: "1",
}
Основная строчка: submitOnValue: «1»,
Это решает проблему.
Дмитрий Танцирев
09 июня 2022, 16:05
0
Отправил коммит: github.com/modxcms/revolution/compare/2.x...tanzirev:patch-2
Возможно что в 2.8.5 ошибка будет исправлена.
Дмитрий Танцирев
09 июня 2022, 15:43
0
Можно =)
Но есть бага в самом MODX.

github.com/modxcms/revolution/blob/v2.8.4-pl/core/model/modx/modmanagercontroller.class.php#L847

А вот для TV полей данное условие не прописали:
github.com/modxcms/revolution/blob/v2.8.4-pl/core/model/modx/modtemplatevar.class.php#L627

Поэтому TV поля не скрываются как надо. Зато скрывается всё остальное (т.е. правило срабатывает).
Дмитрий Танцирев
09 июня 2022, 13:37
0
В «Ограничивающее значение» можно указать несколько id через запятую.
Перечислите id у которых нужно скрыть TV.
Дмитрий Танцирев
08 июня 2022, 22:05
0
Ограничивающие поле — это поле, по которому СРАБОТАЕТ правило.
Т.е. если укажите id = 1, то правило будет срабатывать только у ресурса с id = 1

А всё что настраивается ниже — это и есть само правило.
Т.е. если снимите галочку у какого-то TV — то это TV скроется.
Дмитрий Танцирев
08 июня 2022, 22:03
0
В значение ограничивающего поля можно указать только равенство (т.е. id = 1)

Если нужно показывать TV только в одном ресурсе — создайте отдельный шаблон для этого ресурса и привяжите к этому шаблону нужный TV (это и будет "Если сделать 2 правила").

Если нужно показывать TV у множества ресурсов, но скрыть его только в одном ресурсе — то используйте правило в настройке форм.
Дмитрий Танцирев
08 июня 2022, 19:55
+1
@Артур всё верно сказал =)

Суть реализации я вам описал. Артур описал с помощью чего это всё можно реализовать. Ну а дальше только ваша фантазия и скил.

Если не умеете PHP — то только кому нибудь обратится за денюшку это реализовать.
Дмитрий Танцирев
08 июня 2022, 18:02
0
Все почему-то забыли про очень хороший инструмент: «Настройка форм». =)

site.ru/manager/?a=security/forms

и не нужно будет никаких плагинов и танцов с бубнами =)
Дмитрий Танцирев
08 июня 2022, 17:57
0
Проблема заключается в том, что у внутреннего поля скорей всего указали другой источник файлов.
А MIGX по умолчанию использует источник который указан в системных настройках «default_media_source».

Проблема решается так:
{"field":"img","caption":"Изображение","inputTV":"source.content.img","sourceFrom":"config",
 "sources":"[{\"MIGX_id\":\"1\",\"context\":\"web\",\"sourceid\":\"5\"},{\"MIGX_id\":\"2\",\"context\":\"mgr\",\"sourceid\":\"5\"}]"}
Вместо цифры 5 (рядом со sourceid) — укажите ID нужного источника файлов.
Дмитрий Танцирев
08 июня 2022, 17:39
0
Готового решения под данную задачу — нет.
Задача — не самая банальная =) Тем более с тем функционалом что вы описали.

Делал что-то подобное тут — www.gclinic.ru/podarochnyj-sertifikat
Форма реализована с помощью Formit и кастомных хуков. Это наверное самое простое что можно сделать на MODX (не нужно никаких плагинов, товаров и прочей мишуры).
После формирования заказа (отправки формы) — срабатывает нужный Хук и данные уходят в MS2 (генерируя и заказ и товар и всё что нужно) — затем перенаправляем пользователя на страницу оплаты с параллельной отправкой необходимых писем.

После успешной оплаты, пользователю на почту приходит сертификат на котором есть QR код (сертификат в виде прикрепленного изображения (можно и PDF сделать) плюс ссылка на сертификат).
При сканировании этого QR кода — нас перенаправляет на страницу проверки сертификата.
На страницу проверки мы обязательно должны прийти со специальным открытым ключем и ID заказа (данная инфа закладывается в QR код). Если не добавить открытый ключ, то есть очень большая вероятность слива изображений с сертификатами, ибо они будут хранится на вашем сервере в открытом доступе.

На странице проверки сертификата — по сути выводится информация о MS2 заказе. (т.е. дата создания, оплачен или не оплачен, использован или не использован, и сумма сертификата)
Т.е. мы можем спокойно отредактировать заказ в админке MS2 и при очередном обращении на эту страницу — будет уже другая инфа.
Дмитрий Танцирев
06 июня 2022, 07:23
0
Да, да, сорцы править — не хорошо =)
Тут с вами полностью согласен.

Я кстати написал предупреждение, что изменения затрутся при обновлении.

В репозиторий изменения не отправлял. Думаете стоит?
Дмитрий Танцирев
05 июня 2022, 20:34
0
Просто закомментируйте 4-ю строку.
//SeoSuite.addKeywords();
Дмитрий Танцирев
05 июня 2022, 20:16
0
Согласен. Иногда поисковики даже начинают банить из-за злоупотребления ключевыми словами (когда их слишком много например).

Но, модуль не мой =) Я только лишь поменял внешний вид к более привычному.
Дмитрий Танцирев
11 мая 2021, 17:00
0
Приветствую!
Есть небольшой недочёт при сохранении имени файла.

/core/components/easycomm/model/easycomm/easycomm.class.php:376

Вместо:
$filename = $this->generateRandomName().".".$ext;
Надо:
$filename = $this->modx->filterPathSegment($this->generateRandomName()).".".$ext;
Иначе «$this->mediaSource->uploadObjectsToContainer» сохраняет файл обработав его имя функцией «filterPathSegment», тем самым удаляет из имени файла символы которые указаны в системной настройке «friendly_alias_trim_chars», а в базу сохраняется необработанное имя файла.

И если например в «friendly_alias_trim_chars» указан символ земли «_», то сам файл сохраняется с дефисом вместо земли, а в базу данных сохраняется имя файла с землёй.
Дмитрий Танцирев
18 апреля 2021, 09:52
-2
Слухай, сюжетчик.
Я вродь нормально с тобой общаюсь.
Не надо здесь строить из себя царя гороха.

Мне то как бы пох на это дополнение, могу вписать в сорцы недостающий функционал и не распинаться тут описывать проблему в твоём пакете.
Дмитрий Танцирев
18 апреля 2021, 09:29
0
todo: добавить поле «used» с суммой использованного бонуса… с истекшим сроком действия = 0

Это поле нужно для того, чтобы по истечению срока действия не списывались бонусы которые уже были списаны пользователем.

Ситуация такая:
1. Клиент оформил заказ и ему было начислено 100 бонусов за этот заказ.
2. Эти 100 бонусов действительны в течении месяца.
3. Клиент, через две недели после начисления ему 100 бонусов — списывает их оформляя другой заказ. И получает за новый заказ — 200 бонусов.
4. Проходит 1 месяц после начисления первых 100 бонусов — и т.к. система «не понимает» что эти 100 бонусов уже были списаны — она берет и списывает 100 бонусов из тех 200-от, думая что срок их действия вышел.