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

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

С нами с 24 мая 2019; Место в рейтинге пользователей: #3
Отправить деньги
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, повесить вызов функции оплаты, но это сложнее. И если вы ждёте готовое решение, то вряд ли вам его в комментариях напишут.
15 мая 2020, 16:15
0
Вдруг я не единственный, кому понадобилось получать данные любого пользователя на фронте, используя fenom, поэтому предлагаю вашему вниманию более универсальную версию сниппета user_info
$output = [];
$options = explode(',',$options);
$profile = $modx->getObject('modUserProfile', ['internalKey' => $input]);
if($profile) {
    foreach($options as $option){
        if (strpos($option,'extended.') === false) {
        $output[$option] = $profile->$option;
        } else {
            $extended = $profile->get('extended');
            $ext = explode(".", $option);
            $ext = $ext[1];
            if(strpos($ext,'|') === false){
                $output[$ext] = $extended[$ext];
            }else{
                $cont = explode("|", $ext);
                $key = $cont[0];
                $val = $cont[1];
                $output[$key][$val] = $extended[$key][$val];
                
            }
        }    
    }
}
if(count($output) == 1){
    return $output[$options[0]];
}else{
    return $output;
    //return json_encode($output); //раскомментируй чтобы возвращать json, а предыдущую закомментируй
}
Примеры вызова
<!-- получаем email -->
{44 | getUserInfo : 'email'} 
<!-- получаем несколько полей -->
{44 | getUserInfo : 'phone,extended.sizes|weight,extended.age' | print_r}
Во втором случае вернется
Array ( [phone] => +7(989)456-85-12 [sizes] => Array ( [weight] => 67 ) [age] => 35 )
sizes — это контейнер в дополнительных полях профиля пользователя, в котором лежит атрибут weight.
13 марта 2020, 10:00
0
Как это нет? В настройках minishop2 есть раздел способы доставки там указывается стоимость каждого и эта стоимость влияет на общую стоимость заказа.
13 марта 2020, 09:56
0
Что значит в сниппет засунул? Ты чтобы добавить элемент в список редактируешь сниппет? По поводу лезть в migx, зачем? Создаёшь tv migx и выводишь его в шаблоне с помощью синтаксиса феном.
13 марта 2020, 09:15
0
Тогда мы вам очень сочувствуем, но придётся всё сносить.
13 марта 2020, 09:11
0
В правом верхнем углу шестерёнка, там пункт системные настройки там и ищите. Ещё можно воспользоваться поиском от Яндекса или Гугла напишите там Modx Revolution переход на на https
12 марта 2020, 18:00
0
Как выяснилось позже, решение выше решает не все проблемы, в частности нет возможности удалить чужой файл. Чтобы это исправить идем core/components/tickets/processors/mgr/ticket/update.class.php, открываем на редактирование находим
$q->andCondition(array('parent' => $this->object->id, 'createdby' => $this->modx->user->id), null, 1);

Заменяем на
$q->andCondition(array('parent' => $this->object->id), null, 1);
Ещё меняем
if ($this->object->createdby != $this->modx->user->id && !$this->modx->hasPermission('edit_document'))
на
if (!$this->modx->hasPermission('edit_document'))
Имейте ввиду при обновлении пакета все манипуляции нужно будет повторить.
Решение прямо скажем не очень хорошее, но других вариантов я не придумал.