Артур Шевченко

Артур Шевченко

С нами с 24 мая 2019; Место в рейтинге пользователей: #6
Отправить деньги
Артур Шевченко
27 ноября 2020, 22:19
0
можно использовать конструкцию, которую я назвал compareDate
<?php
$input = new DateTime($input);
if(!$input){return false;}
if(!$options){
    $options = new DateTime();
}else{
    $options = new DateTime($options);
}
$interval = $options->diff($input);
return $interval->format('%R%a');
Это модификатор для сравнения дат. Можно через fenom вывести migx и использовать этот модификатор
{set $tv = json_decode($_modx->resource.migxTvName, 1)}
{foreach $tv as $key => $item}
    {if ('' | compareDate: $item['тут ваша дата']) == 0}
        /* тут то что нужно показать в эту дату */
    {/if}
{/foreach}
Артур Шевченко
27 ноября 2020, 22:05
0
Без написания плагина на событие msOnBeforeAddToCart никак. Плагин примерно такой:
<?php
switch ($modx->event->name) {
    case 'msOnBeforeAddToCart':
        $product->get('id');
        $resource = $modx->getObject('modResource',  $product->get('id'));      
        $product->set('price', $resource->getTVValue('price_drop'));       
    break;
}
Для простоты лучше на фронте добавить
<input type="text" name="price_drop">
под price_drop тогда можно будет сделать так
<?php
switch ($modx->event->name) {
    case 'msOnBeforeAddToCart':       
        $product->set('price', $_POST['price_drop']);       
    break;
}
Артур Шевченко
05 ноября 2020, 22:14
0
Спасибо, Василий, тебе смело можно почивать на лаврах и зарабатывать на обучении, умеешь ты объяснить что куда и как. А что с minishop2? Кто-то будет поддерживать?
Артур Шевченко
01 ноября 2020, 17:00
0
Я не делал, но в таких случаях я лезу БД и смотрю в какой таблице и в каком поле хранится нужная инфа, а потом через pdoResources вывожу используя where.
Артур Шевченко
01 ноября 2020, 16:53
0
Я придумал простое решение проблемы. В магазине есть плашки предупреждающие о системных требованиях, пусть добавят плашку типа «Вызов некоторых снипеттов через этот компонент может быть использован злоумышленниками для взлома сайта».
Артур Шевченко
01 ноября 2020, 11:42
+1
Почитал здешний холивар и должен всех поблагодарить. Автора за компонент, критиков за критику. Объясняю. Я уже давно использую вот эту заметку в тех случаях, когда нужен вызов сниппетов ajax после определенных действий пользователей, но только после прочтения комментариев критиков я задумался о том, что таким образом действительно можно ломануть сайт, хотя сам я всегда отправлял только те параметры которые мне нужны, а не все возможные, но среди них мог быть where. Поэтому считаю, надо этот момент исправить, вариант с созданием в админке набора параметров очень неплох, пусть это сложнее, чем передать параметры через js, но безопаснее ведь. Что для аргументов автора, то они немного противоречивы, с одной стороны он говорит что компонент для неопытных пользователей, а с другой что каждый программист сам должен блюсти безопасность сайт. Вот я неопытный, в сравнении конечно, и как писал выше, до текущего момента не думал что можно взломать сайт через ajax и pdoResources, и обсуждение новых компонентов читаю очень редко, поэтому мог просто установить и пользоваться не подозревая о подвохе. А критикам долен сказать, будь мягче, что вы нападаете на парня, он старался, а вы «дыра» «в топку», спокойно бы объяснили в чём проблема и как исправить и всё. Мы же тут как бы одно дело делаем, нельзя так.
Артур Шевченко
31 октября 2020, 13:02
0
А можно немножко кода в студию?
Артур Шевченко
31 октября 2020, 12:55
0
Я вот тут делал avto-estet.ru/ без танцев с бубном, просто отметил в админке нужные варианты и всё работает. Главное не забыть инициализировать скрипты для фронта.
Артур Шевченко
31 октября 2020, 12:48
0
Мне очень нужно добавить новые поля в свойства товаров
Надо думать раз вы пытаетесь установить дополнение msAddField у вас установлен minishop2? И вы конечно же прочитали документацию или хотя бы пытались искать информацию по запросу «добавить новые поля в свойства товаров minishop2»? Вы конечно же читали и смотрели вот это modx.pro/components/20947? И наконец вы уверены что функционал опций товара, которой встроен по умолчанию, вам не подходит?
Артур Шевченко
31 октября 2020, 12:30
0
И вот ещё статья с подробностями itchief.ru/lessons/modx-revo/modx-setting-permissions Вторая ссылка в Яндексе по запросу modx настройка прав доступа
Артур Шевченко
31 октября 2020, 12:26
0
Осуществил создание тикетов (постов) с фронтенда.
где-то внутри кода, который отвечает за это осуществление, нужно устанавливать значение publised = 0 и всё. Если был бы код, я бы сказал точнее.
Артур Шевченко
19 августа 2020, 18:30
+1
Конечно в документации такого нет, потому что и смысла выводить через mfilter параметры по которым нечего фильтровать. Если нужно вывести параметры товаров, то можно использовать msOptions
Артур Шевченко
19 августа 2020, 17:49
0
Это ж платный компонент, напиши разработчику в техподдержку, он ответит точно и быстро.
Артур Шевченко
19 августа 2020, 17:44
0
Как вариант, сделать отдельное TV для каждого тура и туда записывать ближайшую дату и потом по этому полю сортировать, правда ту всё упирается в то, есть возможность заполнять это поле при заполнении поля MIGX.
Артур Шевченко
19 августа 2020, 17:37
0
Всё просто, в админке слева есть вкладка Элементы, там есть пункт Дополнительные поля, а рядом с ним плюсик. Еще можно в яндексе набрать «modx дополнительное поле для resource» и по ервой ссылке перейти и почитать.
Артур Шевченко
16 мая 2020, 18:12
0
Боюсь, что мешать теги нигде нельзя, если конечно вы хотите сделать хороший сайт.
Артур Шевченко
16 мая 2020, 00:41
0
На сайте itchef есть хороший мануал по загрузке файлов через formit, потом почитайте как создавать ресурсы через resource/create. Потом напишите хук который будет стоять после хука отвечающего за загрузку файлов, и в нем создавайте ресурс и вставляйте адрес картинки на сервере в нужное ТВ. Все инструкции в интернете есть, так что дерзайте.
Артур Шевченко
16 мая 2020, 00:30
0
А js вам совсем чужд? Сделайте форму отдельно от таблицы и по клику передавайте в неё нужные данные и отправляйте. Или просто отправляйте нужные данные по клику без формы, обязательно нужно передавать ключ ms2_action=cart/add, id и count, по необходимости можно массив опций передать.
Артур Шевченко
16 мая 2020, 00:17
0
Самый простой вариант это отваливать событие оплаты и если она не прошла, удалять заказ. Но стоит иметь в виду, что оплата могла не пройти по техническим причинам или клиент решил оплатить позже, а заказа уже нет. Другой вариант на событие msOnBeforeOrderCreate, в общем то которое возникает перед сохранением заказ, точное название есть в документации по minishop2, повесить вызов функции оплаты, но это сложнее. И если вы ждёте готовое решение, то вряд ли вам его в комментариях напишут.