Aleksandr Huz

Aleksandr Huz

С нами с 02 августа 2014; Место в рейтинге пользователей: #20
Aleksandr Huz
02 ноября 2020, 11:45
+1
Пацан к успеху шел, не получилось, не фартануло!
Aleksandr Huz
27 октября 2020, 13:19
0
Спасибо. Проверю
Aleksandr Huz
13 октября 2020, 21:42
0
Настройки хранятся здесь — modContextSetting
Aleksandr Huz
21 сентября 2020, 14:18
+5
Я тоже вставлю 5 копеек.
Это похоже на обиду в детском саду, когда машинку отобрали.
Какая разница на что это похоже? Любой человек вправе обижаться в любом возрасте. А если говорить про Василия, то он очень много сделал для MODX и выкинуть его из чата — это не уважение к нему. Ок, они почистили неактивных, но они же могли подумать, что важных людей ненужно удалять и вернуть их назад. Или могли рассылку сделать по эти неактивным пользователям.
Я не говорю, что Василий сделал правильно или неправильно, но его реакцию я понимаю. Они поступили не обдуманно, он поддался эмоциям. А что ему нельзя?

А еще говорим о том, что взрослые люди
А что у взрослых людей нет эмоций? Или нужно делать чтобы никто не осуждал потом?
Aleksandr Huz
20 сентября 2020, 13:56
+8
А так получается, что в MODX появилась новая дырка, и при мне её обсуждать не хотят.
Конечно не хотят, потому что ты можешь отправить пул реквест, который они будут неделями разбирать. Оно им надо?!)))

А если серьезно, то очень жаль что руководители не понимают, что самое ценное — это люди, программисты, которые и сделали MODX более популярным. А может и понимают, но не хотят выходить из зоны комфорта и не развиваются, поэтому логично, что прогеры уходят в современный мир.
Ну, посмотрим, что будет дальше.
Aleksandr Huz
14 сентября 2020, 10:57
0
Добрый день!
1. Смотреть в сторону крона.
2. Да, будет, но не скоро
Aleksandr Huz
09 августа 2020, 15:19
0
напишите в тех. поддержку, я посмотрю.
Aleksandr Huz
22 июля 2020, 10:20
0
Напишите в ТП и предоставьте доступы в админку
Aleksandr Huz
20 июня 2020, 23:28
+1
Советую изучить исходники минишопа.
Aleksandr Huz
16 июня 2020, 23:03
0
попробуй удалить эту строчку
config.name += '[]';
Aleksandr Huz
16 июня 2020, 22:44
0
Значит ошибка в комбо

name: 'products[]',
hiddenName: 'products[]',

newItem: function(bs,v, f) {bs.addItem({pagetitle: v});},
Aleksandr Huz
16 июня 2020, 21:29
0
В базе сохраняется такой формат как строка.

Перед сохранением нужно преобразовать массив в список.
create.class.php
update.class.php

public function beforeSet()
{
    $this->setProperty('products', implode(',', $this->getProperty('products')));
    return !$this->hasErrors();
}
А для вывода, я выше написал.
Aleksandr Huz
16 июня 2020, 21:23
0
Теперь вопрос)) Уверен, что это массив?
Aleksandr Huz
16 июня 2020, 21:18
0
В базе они сохраняются в виде списка через запятую, верно?
Соответственно, нам нужно преобразовать список в массив обратно на выходе. Это делается в процессоре modObjectGetProcessor (get.class.php)

public function cleanup()
    {
        $array = $this->object->toArray();
        if(!empty($array['products'])) {
            $array['products'] = explode(',', $array['products']);
        }
        return $this->success('', $array);
    }
}
Aleksandr Huz
16 июня 2020, 14:03
+1
С помощью MIGX можно создать компонент.
modx.pro/howto/18144
modx.pro/howto/18469
Aleksandr Huz
16 июня 2020, 09:21
1
+1
Теперь понятно. Значит нам в массив нужно добавить поле с заголовками товаров.

Примерно, так:
public function prepareRow(xPDOObject $object)
{
        $array = $object->toArray();
        
        $q = $this->modx->newQuery('modResource');
        if(!is_array($array['products'])) {
            $array['products'] = explode(',', $array['products']);
        }
        $q->where(array('id:IN' => $array['products']));
        $q->select(array('pagetitle'));
        if($q->prepare() && $q->stmt->execute()) {
            $resources = $q->stmt->fetchAll(PDO::FETCH_ASSOC);
            $array['productsTitle'] = array_map(function($res){
                return $res['pagetitle'];
            },$resources);
            $array['productsTitle'] = implode(',', $array['productsTitle']);
        }
        

        $array['actions'] = [];

      ....
}
Теперь в место products подставляем productsTitle

Удаляем ненужный код:
функцию — outputArray
и вот эти строчки тоже ни к чему
$item = $this->modx->getObject('modExtraItem', 'modExtraItem.id');
$products = $item->get('products');
Aleksandr Huz
15 июня 2020, 23:14
0
Должно быть доступно 2 поля, которые мы выбрали: id и pagetitle. Если для комбо, то оставляем как есть.