Giant Dad

Giant Dad

С нами с 11 августа 2021; Место в рейтинге пользователей: #538
Giant Dad
12 мая 2022, 15:07
0
Сам спросил — сам ответил. Для вывода остатков нужно создавать не доп. поле на вкладке «Свойства товара», а опцию stock. А в настройке moysklad_product_stock указать {«options-stock»:{«key»:«stock»,«type»:«float»,«value»:0}}
Giant Dad
26 апреля 2022, 20:56
0
а есть какие-то похожие примеры?
Giant Dad
26 апреля 2022, 20:55
0
так мне нужно именно чекбоксы с диапазонами 10-20, 20-30 и тд
Giant Dad
26 января 2022, 17:46
0
Да, а вот так работает. Спасибо Вам огромное за подсказку!
Giant Dad
26 января 2022, 17:08
0
Ну, так то да, но до того, как отработает pdoPage этот плейсхолдер пустой. А мне нужно подтягивать инфу уже в head
Giant Dad
21 декабря 2021, 12:53
0
Спасибо. Это помогло. А можно ещё как-то сделать так, чтобы при сортировке, положим, по цене, сначала тоже выводились товары с указанным свойством с сортировкой по цене, а потом — остальные тоже с сортировкой. Например, сначала товары производителя «Х» от самого дорогого до самого дешёвого, а потом товары всех остальных производителей, тоже от дорогого до дешёвого? В одном списке.
Giant Dad
20 декабря 2021, 17:35
0
А как можно получать изображения модификаций товаров из МойСклад в модификацию msOptionsPrice2? Используется API 1.2. Это где-то в настройках syncMoySklad указывать? Я вижу параметр sync_moysklad_modification_fields, но не понимаю, что дописать в JSON, чтобы получить картинку модификации. Это вообще возможно?
Giant Dad
20 декабря 2021, 16:28
0
Сниппет mFilter2, вот такой вызов
{'!mFilter2' | snippet : [
                'element'=>'msProducts',
                'class'=>'msProduct',
                'tplOuter'=>'tpl_mfilter_outer.tpl',
                'tpl'=>'tpl.product.row.custom2',
                'limit'=>'12',
                'sort'=>'resource|menuindex:asc',
                'showEmptyFilters'=>'false',
                'filters'=>'
        				msoption|dlina:number,
        				msoption|karmany:number,
        				msoption|razmer:default,
                        msoption|sezon:default'
        	    'aliases'=>'
        				msoption|dlina==dlina,
        				msoption|karmany==karmany,
        				msoption|razmer==razmer,
                        msoption|sezon==sezon',
                'parents'=>$_modx->resource.id,
                'tplPageWrapper'=>'@INLINE <ul id="mse2_pagination" class="pagination">{$first}{$prev}{$pages}{$next}{$last}</ul>',
                'tplPageActive'      => '@INLINE <li class="active"><a href="{$href}">{$pageNo}</a></li>',
                'tplPageFirst'	    => '@INLINE <li class="control"><a href="{$href}">«</a></li>',
                'tplPageLast'	    => '@INLINE <li class="control"><a href="{$href}">»</a></li>',
                'tplPagePrev'	    => '@INLINE <li class="control"><a href="{$href}">‹</a></li>',
                'tplPageNext'	    => '@INLINE <li class="control"><a href="{$href}">›</a></li>',
                'tplPageSkip'	    => '@INLINE <li class="disabled"><span>...</span></li>',
                'tplPageFirstEmpty'	=> '@INLINE <li class="control"><span>«</span></li>',
                'tplPageLastEmpty'	=> '@INLINE <li class="control"><span>»</span></li>',
                'tplPagePrevEmpty'	=> '@INLINE <li class="disabled"><span>‹</span></li>',
                'tplPageNextEmpty'	=> '@INLINE <li class="disabled"><span>›</span></li>',
                'includeTVs'=>'catalog_hide',
                'where'=>'{"catalog_hide:IS": null}'
                'sortby' => 'CASE `Data`.`vendor` WHEN 7 THEN 1 ELSE 0 END ASC, msProduct.id',
            ]}
Я не очень хорошо разбираюсь в сортировке. Если можно, подскажите хотя бы куда смотреть, что читать. Какие-то примеры…
Giant Dad
20 декабря 2021, 16:19
0
Вместо __VENDOR__ID__ же нужно подставить id из таблицы modx_ms2_vendors? Если да, то не помогает
Giant Dad
17 декабря 2021, 14:30
0
Спасибо тебе, добрый человек!
Giant Dad
25 ноября 2021, 14:33
0
Не, заказчику надо именно красивые редактируемые таблички в админке
Giant Dad
15 ноября 2021, 14:59
0


joxi.ru/4AkYZXvu0v0MKm

редактировать нужно количество баллов, если удалять, то всю запись (строку таблицы) целиком
Giant Dad
15 ноября 2021, 12:04
0
Вот код самой вкладки:
Ext.override(MODx.panel.User,{
    getParentFields: MODx.panel.User.prototype.getFields,
    
    getFields: function(config) {
        var parentFields = this.getParentFields.call(this,config);
	    var pointsTab = {
			id: 'my-custom-tab',
			title: 'Баллы',
			layout: 'form',
			defaults: { border: false ,autoHeight: true },
			hideMode: 'offsets',
			items: [
			    {
				    html: '<p>Редактирование баллов пользователя</p>',
				    xtype: 'modx-description'
			    },
			    {
			        xtype: 'panel',
			        cls: 'container',
			        items: [
				        {
					        xtype: 'editorgrid',
					        clicksToEdit: 1,
        					columns: [
        						{header: 'Дата истечения', dataIndex: 'date', sortable: true},
        						{header: 'Количество баллов', dataIndex: 'points'}
        					],
        					autoHeight: true,
        					viewConfig: {
        						forceFit: true, // Растягиваем таблицу на всю ширину
        						scrollOffset: 0 // Убираем вертикальный скролл (у нас же автовысота)
        					},
        					store: userPointsData,
				        }
				    ]
			    }
			]
		};
		parentFields.splice(1, 0, pointsTab);

        return parentFields;
    }
});

Вот плагин, который получает данные из базы и подключает вкладку:
<?php
if ($modx->event->name != 'OnUserFormRender') return '';
    $modx->controller->addLastJavascript('/assets/components/customModx/js/mgr/user/custom_tab.js');
    
    $id; //internalKey в БД
    
    $sql = "SELECT * FROM `modx_user_points` WHERE `internalKey` = ".$id;
    $query = $modx->query($sql);
    $res = $query->fetchAll(PDO::FETCH_ASSOC);
    $data = [];
    foreach ($res as $row){
        $date = date("Y.m.d H:i:s", $row['expirationDate']);
        $dataPoint = [$date, $row['points']];
        array_push($data, $dataPoint);
    }
    $data = json_encode($data);
    
    $htmlOutput = "
        <script>
            var userPointsData = new Ext.data.ArrayStore({
				fields: ['date','points'],
				data: ".$data."
            });
        </script>
    ";
    $modx->controller->addHtml($htmlOutput);
Giant Dad
14 ноября 2021, 08:41
0
Точнее подтягивать это ладно, это я кажется понял. А вот как редактировать и сохранять в базу это вопрос
Giant Dad
14 ноября 2021, 08:02
0
Попробовал. Получилось вывести таблицу в отдельную вкладку. А как в эту таблицу подтягивать данные из базы данных?
Giant Dad
09 ноября 2021, 17:34
0
Спасибо за совет. Я попробую
Giant Dad
09 ноября 2021, 17:34
0
А migx для того, чтобы можно было добавлять и удалять элементы, каждый из которых содержал бы в себе кол-во баллов и дату сгорания. Т.е. кол-во полей должно динамически меняться
Giant Dad
09 ноября 2021, 16:41
0
Вообще, я хочу сделать в админке баллы для пользователя магазина. Знаю, что есть модуль для MiniShop2, но проблема в том, что на сайте Shopkeeper. Поэтому решил реализовать сам, пусть и костыльно. Не придумал ничего лучше, чем попробовать реализовать доп. вкладку у пользователя, на которой было бы поле migx, в которое можно было бы заносить элементы, в которых было бы записано количество баллов и дата их сгорания.