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

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

С нами с 24 мая 2019; Место в рейтинге пользователей: #7
Отправить деньги
Артур Шевченко
01 декабря 2020, 17:20
0
на первом скриншоте есть кнопка Добавить элемент. Там первые три вкладки Settings — задать имя оно же название тв, Formtabs — вкладки формы, Columns — разметка колонок.
Артур Шевченко
01 декабря 2020, 16:21
0
В одном поле вывести и то и другое не получится. Тут либо легко контент менеджеру либо тебе, ты выбрал менеджера, поэтому можешь сделать по предложенной схеме, а в шаблоне использовать сниппет в который будешь передавать pagetitle и получать по нему ресурс или id. Я у себя на сайте столкнулся с подобной ситуацией, но я выбрал выводить id в админке.
Артур Шевченко
01 декабря 2020, 16:17
0
Нужно в админке вывести список pagetitle ресурсов, я показал как это сделать. Если нужен pagetitle и id выводи два поля.
Артур Шевченко
01 декабря 2020, 16:06
0
я понял. Давай подробнее. Идёшь в Пакеты->MIGX открываешь вкладку MIGX дальше
yadi.sk/i/jcbS3x12ECF9_g
yadi.sk/i/zltiwnXWjGxRwQ
yadi.sk/i/fuTCSewxga8kIg
yadi.sk/i/VuBJzV_k4W2bHA
yadi.sk/i/5KhparGmQawb7Q
Всё.
Артур Шевченко
01 декабря 2020, 13:37
0
Плагин который я предложил меняет цену ТОЛЬКО в корзине, т.е. в самом ресурсе цена не меняется, другая цена будет в этом конкретном заказе. Соответственно можно будет сравнить цену в заказе и цену у ресурса.
Артур Шевченко
01 декабря 2020, 13:22
0
Это так не работает, от того что вы измените вес на фронте, заказ корректно не пересчитается. Когда вы меняете количество отправляется ajax запрос на сервер в котором передается только количество, при этом даже если вы скопируете поле и дадите ему другое имя на сервере обработается только переданное количество, поэтому менять вес нет никакого смысла. Из вашего же объяснения следует, что менять надо цену, для этого нужен плагин на событие msOnChangeInCart, который будет из массива $_POST брать новую цену и менять старую. Вот тут docs.modx.pro/komponentyi/minishop2/razrabotka/sluzhbyi/korzina#%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%BD%D1%8B%D0%B5-%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D1%8F написано какие переменные доступны в плагине. Чтобы посмотреть как выглядит корзина используйте вот такую конструкцию $tmp = $cart->get(); Распечатайте в консоль и посмотрите. Скорее всего должно получится как-то так:
switch ($modx->event->name) {
        case 'msOnChangeInCart':
            $tmp = $cart->get();
            $tmp[$key]['price'] = $_POST['price'];
            $cart->set($tmp);
         break;
}
Артур Шевченко
01 декабря 2020, 10:22
0
Первое что приходит в голову это скопировать поле и поменять ms2_frontend_count_unit на ms2_frontend_weight_unit. А вам для чего это нужно?
Артур Шевченко
01 декабря 2020, 09:35
+1
Попробуйте добавить параметр &class со значением modResource и заменить &element на mSearch.
Артур Шевченко
01 декабря 2020, 02:27
0
&element этот параметр отвечает за то, какой сниппет будет обрабатывать результаты фильтрации и не более. Читайте документацию, думаю это поможет.
Артур Шевченко
01 декабря 2020, 01:09
0
У меня тоже последняя версия minishop2. Я Создал новую группу пользователей, доступ в контекстам выставил вот такой yadi.sk/i/n8u_l_kUILVYmg, у политике
customMiniShopManagerPolicy убрал галочку msorder_remove, создал нового пользователя, добавил его в эту группу, вошёл и всё работает, заказ удалить не могу.
Артур Шевченко
01 декабря 2020, 00:40
0
Ну да, видели там пункт msorder_remove Разрешает удаление заказа. Создаете новую группу пользователей, назначаете им этот шаблон, убираете галочку и они больше не смогут удалить заказ, вам же это нужно?
Артур Шевченко
01 декабря 2020, 00:37
0
Что значит «Фильтрация по ресурсам»? Возможно это поможет docs.modx.pro/komponentyi/msearch2/snippetyi/mfilter2#parents,-categories-%D0%B8-grandparents
Артур Шевченко
01 декабря 2020, 00:30
0
Вообще я хз, но в обычной твшке можно в поле Возможные значения поставить вот такую штуку
@SELECT `pagetitle` FROM `modx_site_content` WHERE `class_key` = 'msProduct' AND `parent` = 24
Артур Шевченко
01 декабря 2020, 00:25
0
Сколько контекстов на сайте кроме стандартных? В консоли браузера ошибки есть? В логе ошибки есть? Ресурсы с типа Категория товаров и Товар магазина созданы?
Артур Шевченко
01 декабря 2020, 00:21
0
Да, msproduct_delete там действительно нет, поэтому вот вам скриншот того, что там есть yadi.sk/i/fKqMzAB0Cu0NTQ Из него следует что нужные разрешения там есть, их нужно просто отключить для определенных пользователей. Возможно вы где-то не там смотрите. Вам нужно в Контроль Доступа, для этого нажмите на шестерёнку в правом верхнем углу.
Артур Шевченко
29 ноября 2020, 23:25
+1
Без него наверное как, но я не знаю как. Пример я вам написал, а там сами думайте. Но fenom лучше проштудировать. webinmind.ru/modx/packages-extras/pdotools/syntax-fenom
Артур Шевченко
29 ноября 2020, 19:24
0
Поставил minishop2 и потом mOptionsPrice2, открыл товар на редактирование, перешёл на вкладку Модификации, нажал на кнопку Создать хотел выбрать опцию material, которую предварительно создал, но её нет в списке доступных опций. В логе вот это
[2020-11-29 20:22:45] (ERROR @ core/components/msoptionsprice/processors/mgr/misc/option/getkeys.class.php : 171) PHP warning: Invalid argument supplied for foreach()
[2020-11-29 20:22:48] (ERROR @ core/components/msoptionsprice/processors/mgr/option/getlist.class.php : 190) PHP warning: Invalid argument supplied for foreach()

Вопрос к @Володя почему так?
Артур Шевченко
29 ноября 2020, 19:17
+1
Есть, вывести всё через Fenom.
{set $test1 = $_modx->resource['test-1'] | fromJSON}
{foreach $test1 as $item1}
{$item1['textBlocks']}
{set $test2 =  $item1['test-2'] | fromJSON}
{foreach $test2 as $item2}
{$item2['title']}
{$item2['description']}
{/foreach}
{/foreach}
Артур Шевченко
29 ноября 2020, 19:03
2
0
$(document).on('msoptionsprice_product_action', function (e, action, form, response) {
    var mid = $('input[name="curmid"]').val();
    //console.log(response);   
       if(response.data.modification.count == 0){
            $('.modprice-' + response.data.modification.rid).each(function(){$(this).css('display', 'none')}); //показываем НЕТ В НАЛИЧИИ
            $('.modpricenone-' + response.data.modification.rid).each(function(){$(this).css('display', 'inline')}); //показываем В НАЛИЧИИ
            $('.jsAddToCart').prop('disabled', true);
        }else{
            //тут наоборот
            $('.modprice-' + response.data.modification.rid).each(function(){$(this).css('display', 'inline')});
            $('.modpricenone-' + response.data.modification.rid).each(function(){$(this).css('display', 'none')});
            $('.jsAddToCart').prop('disabled', false);
        }  
});
Писать тут assets/components/msoptionsprice/js/web/default.js но лучше сделать копию, поменять путь в настройках, и в копии писать.
Артур Шевченко
29 ноября 2020, 18:59
0
Как меня бесят такие люди как Вы, которые заплатят копейки и считают что им по гроб жизни теперь все должны. Не нравится — забирай оплату и пиши своё решение. Отличное дополнение за свои деньги, да кое-что приходится дорабатывать, но это уже нюансы для конкретных областей применения. Всё предусмотреть невозможно.