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

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

С нами с 24 мая 2019; Место в рейтинге пользователей: #6
Отправить деньги
Артур Шевченко
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'))
Имейте ввиду при обновлении пакета все манипуляции нужно будет повторить.
Решение прямо скажем не очень хорошее, но других вариантов я не придумал.
Артур Шевченко
12 марта 2020, 09:50
0
В системных настройках протокол поменял?
Артур Шевченко
12 марта 2020, 09:49
0
{set $cost = $product.price | replace: ' ': ''}
Это сработает только при загрузке, дальше переменная $cost меняться не будет. Это первое.
Второе. Цена выводится строкой, а умножение строки на число даёт нечисло.
Ну и третье, это надо делать через js.
(function( $ ){
   $.fn.changeCost = function(id, count) {
    cost = $('#cost-' + id).children('span').text(); //получаем стоимость
    cost = cost.replace(/\s+/g, ''); //вырезаем лишние пробелы
    sum = parseInt(Number(count) * Number(cost)); //умножаем на количество
    $('#sum-' + id).html(sum + ' <i class="fas fa-ruble-sign"></i>'); //выводим результат
   }; 
})( jQuery );
Артур Шевченко
12 марта 2020, 01:13
0
У тебя должен быть шаблон для вывода меню, скорее всего в чанках. Найди его там и пиши условие. Какое именно написали выше.
Артур Шевченко
12 марта 2020, 01:09
0
Нет, ограничений нет. Если для вывода используете protools, то нужно прописывать limit =0, иначе ограничение в 10 ресурсов.
Артур Шевченко
12 марта 2020, 01:07
0
Я думаю вам поможет только бэкап базы если он есть. Ну и mSync передаёт остатки из любого поля которое вы ему укажите, в базе ковыряться не нужно.
Артур Шевченко
12 марта 2020, 01:01
0
Ты получил токен от Яндекса и прописал его в настройках? Ты указал в настройках Яндекс redirect uri с get параметрами?
Артур Шевченко
12 марта 2020, 00:50
0
Где список хранится изначально? От каких условий зависит выбор варианта? Но в принципе можешь попробовать fenom+migx.
Артур Шевченко
12 марта 2020, 00:44
0
А почему ты решил что этот код должен что-то учитывать? Там нет ни одного сравнения свойств двух товаров, нет даже проверки артикулов. Честно говоря не понимаю для чего вообще этот код, если при изменении заказа стоимость и так пересчитывается. Если нужно работать с модификациями так для этого есть msOptionPrice, если охота самому это реализовать читай документы по minishop2 там написано какие события когда генерируются выбирай нужные пиши плагины.