Всего 125 986 комментариев

Роман
16 ноября 2021, 15:07
0
Посмотрите, что в HTML выводит?
Роман
16 ноября 2021, 14:48
0
Просто @INLINE не отработает [[+address.receiver]]
Роман
16 ноября 2021, 14:46
0
Скорее всего и не придет. Там в классе minishop2 переопределить функцию changeOrderStatus
$subject = $this->pdoTools->getChunk('@INLINE '. $status->get('subject_user'), $pls);
И сделать вместо @INLINE, modChunk.
Не уверен, но попробовать стоит.
Евгений
16 ноября 2021, 12:52
0
MODX – 2.8.3-pl
Apache – 2.4.51
PHP – 7.4.25
MySQL – 5.7.36
Антон Тарасов
16 ноября 2021, 12:29
0
Забыл сказать самое главное :) — вам нужно переопределить класс минишопа и использовать его, как это сделать -здесь: modx.pro/development/3168
в исходном классе minishop2.class.php есть метод
public function changeOrderStatus($order_id, $status_id)
переопределив, нужно добавить примерно следующее:
$pls = $order->toArray();
$profile = $this->modx->getObject('modUserProfile', array('internalKey' => $order->get('user_id')));
$pls['receiver'] = $profile->get('fullname'); //найдите строки выше и добавьте недостающие плейсхолдеры
Константин
16 ноября 2021, 12:19
0
Да, всё верно в этом лексиконе добавляю. Но к сожалению не читается.
Письмо приходит по типу: «У вас новый заказ #2111/35 [[+receiver]] и [[+phone]]»

Пробовал и [[+receiver]] и [[+phone]], и [[+address.phone]] / [[+address.receiver], [[+form.phone]] / [[+form.receiver]], не выводит данные покупателя.
Антон Тарасов
16 ноября 2021, 11:53
0
Вы в лексиконе ms2_email_subject_new_manager указывали, верно? Попробуйте просто [[+receiver]] и [[+phone]]
Dmitry
16 ноября 2021, 08:10
0
Спасибо за ответ. Попробую покопаться в другом направлении)
Madao
16 ноября 2021, 02:43
+1
вопрос снимается. T.к. на modhost дополнение ставится автоматом, без возможности выбора опций установки, нужно было вручную у pdoTools переопределить pdoFetch.class и pdofetch_class_path
Madao
16 ноября 2021, 01:30
0
Доброго времени суток. Перед покупкой тестирую дополнение на modhost и не могу понять, как сделать вывод перевода товаров в каталоге (вывод товаров через msProducts). На самой странице товара всё ок, переводится, а при выводе в каталоге так и остается на одном языке. Есть ли где-то более полная документация с примерами или может тут подскажете? Спасибо.
Андрей
15 ноября 2021, 22:39
0
Всё должно работать. Какая версия MODX, серверное окружение (php, mysql)?
Евгений
15 ноября 2021, 22:01
0
Такая же ерунда приключилась. Решение какое-то нашлось?
В возможных значениях пробовал разные варианты:
red||gray||white||black
red==red||gray==gray||white==white||black==black
Красный==red||Серый==gray||Белый==white||Черный==black
Dmitry
15 ноября 2021, 21:33
0
Павел, подскажите, пожалуйста, по одной части компонента, я возможно не до конца понял. Я хочу его приобрести под сайт недвижимости, но обратил внимание, на обязательный параметр limit => 0 в вызове mfilter2. Я правильно понимаю, что это принципиальный параметр, чтобы данные меток отображались сразу все на странице, и если использовать свои параметры с пагинацией, то на карте будет выводиться только текущая страница? Или все же есть обход, потому что я пока не понял как быть, когда ресурсов будет более 50-100 на одной странице
Игорь Терентьев
15 ноября 2021, 20:49
0
@Володя Что-то ни в какую не получается передать customer через плагин на событие msOnBeforeGetOrderCustomer. Оба способа не работают:
$scriptProperties['customer'] = $modx->getObject('modUser', 1);
$modx->event->returnedValues['customer'] = $modx->getObject('modUser', 1);
В плагине объект пользователя точно есть, а в классе минишопа, после вызова события — пусто.

Где-то тут github.com/Ibochkarev/miniShop2/blob/master/core/components/minishop2/model/minishop2/minishop2.class.php#L657 разве не должно быть:
$customer = $response['customer']
Юрий Ханжин
15 ноября 2021, 18:45
0
Вопрос снимаю, разобрался.

height: 500,
autoScroll: true,
Юрий Ханжин
15 ноября 2021, 18:27
0
Илья, добрый день. Компонент отлично работает. Мне требуется помощь в моей доработке с ExtJS, я с ним не взаимодействовал до этого момента. У меня получилась огромная форма и не вылезает скролл. Добавил 'autoScroll: true,', но это не помогло. Подскажите пожалуйста — как мне добавить скролл?

Кусок кода с обновлением окна:
customExtra.window.UpdateItem = function (config) {
config = config || {};
if (!config.id) {
config.id = 'customextra-item-window-update';
}
Ext.applyIf(config, {
title: _('customextra_item_update'),
width: 100 + '%',
autoHeight: true,
autoScroll: true,
url: customExtra.config.connector_url,
action: 'mgr/item/update',
fields: this.getFields(config),
keys: [{
key: Ext.EventObject.ENTER, shift: true, fn: function () {
this.submit()
}, scope: this
}]
});
customExtra.window.UpdateItem.superclass.constructor.call(this, config);
};
Giant Dad
15 ноября 2021, 14:59
0


joxi.ru/4AkYZXvu0v0MKm

редактировать нужно количество баллов, если удалять, то всю запись (строку таблицы) целиком
Роман
15 ноября 2021, 12:20
0
id в таблице modx_user_points есть? Просто нужно понять, по каких полям будет редактирование и удаление.
Комментарий излишен: $id; //internalKey в БД
и так понятно. =)
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);