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

Артур Шевченко
05 сентября 2022, 21:01
1
0
В общем, я установил UsersOnline и он не работает. Я посмотрел ошибки и завёл его. Вот код сниппета getOnlineUsers.
<?php
    /** @var array $scriptProperties */
    /** @var UsersOnline $UsersOnline */
    if (!$UsersOnline = $modx->getService('usersonline', 'UsersOnline', $modx->getOption('usersonline_core_path', null,
            $modx->getOption('core_path') . 'components/usersonline/') . 'model/usersonline/', $scriptProperties)
    ) {
        return 'Could not load UsersOnline class!';
    }
    if (!$pdo = $modx->getService('pdoTools')) {
        return $modx->lexicon('no_pdo');
    }
    $interval = $modx->getOption('timeInterval', $scriptProperties, -1);
    if ($interval == -1) {
        $interval = $modx->getOption('usersonline_time_span');
    }
    $contexts = $modx->getOption('contexts', $scriptProperties, null);
    
    $innerJoin = array();
    /*$innerJoin = $modx->getOption('innerJoin', $scriptProperties, '');
    $innerJoin = $modx->fromJSON($innerJoin);*/
   
    $innerJoin['UsersOnline'] = array(
        'class' => 'userOnline',
        'on'    => 'modUser.id = UsersOnline.user_id',
    );
    $select = array();
    /*if($select = $modx->getOption('select', $scriptProperties, '')){
         $select = $modx->fromJSON($select);
    }*/    
    $select['UsersOnline'] = '*';
    $time = time();
    $startTime = $time - $interval;
    $where = array();
    /*if($where = $modx->getOption('where', $scriptProperties, '')){
        $where = $modx->fromJSON($where);
    }*/
    
    $where[] = array(
        'UsersOnline.lastvisit:>=' => $startTime,
        'UsersOnline.lastvisit:<=' => $time,
    );
    $contextsArray = array();
    if($contexts != null){
        $contextsArray = explode(',', $contexts);
    }
    if (!empty($contextsArray)) {
        $where[] = array(
            'UsersOnline.context_key:IN' => $contextsArray,
        );
    }
    $scriptProperties['where'] = $modx->toJSON($where);
    $scriptProperties['innerJoin'] = $modx->toJSON($innerJoin);
    $scriptProperties['select'] = $modx->toJSON($select);
    $output = $modx->runSnippet('pdoUsers', $scriptProperties);
    return $output;
Вот вызов.
[[!getOnlineUsers?
    &contexts=`web`
]]
Zulya
05 сентября 2022, 20:15
0
Артур, я изучала документацию pdoUsers, но сейчас снова изучила. Но и там нет примеров как совместить getOnlineUsers и pdoUsers. И в документации pdoUsers тоже нет информации о том, что getOnlineUsers и pdoUsers можно использовать вместе.
Артур Шевченко
05 сентября 2022, 14:23
0
Очевидно же документация на UsersOnline отсылает к документации на pdoUsers.
Zulya
05 сентября 2022, 13:08
0
Добрый день, Артур. В документации UsersOnline написано:
Для вывода списка пользователей онлайн используется сниппет getOnlineUsers, который является оберткой над pdoUsers. Соответственно, оформлением результатов занимается pdoUsers, которому передаются все параметры вызова.
Но примера запроса нет.

Для плейсхолдера [[+fullname]] от Tickets, как использовать UsersOnline чтобы показать статус автора комментария, подскажите пожалуйста. Спасибо!
Павел Голубев
05 сентября 2022, 12:58
0
В Magento попрежнему использует EAV, но потом таки транслирует их в обычные плоские таблицы, чтобы делать быструю фильтрацию и выборки по индексам.

И тут получается нюанс, в котором жертвуем нормализацией данных, в угоду производительности и каким-то макаром нужно следить за консистентностью данных в EAV. плоских таблицах, таблицах фасетных фильтров.
perfkirill
05 сентября 2022, 06:04
0
Чисто мое мнение.

Когда мне звонят клиенты и говорят нужен интернет-магазин, то я предлагаю MODx (Ибо я люблю его). На что они говорят «Что? мод че? Не слышал». Ибо в рейтингах данная система себя не позиционирует как интернет-магазин.

А что в мозгах обычных клиентов ассоциирует себя как хороший интернет-магазин? Тот, который имеет интеграцию с 1С. Есть замечательный модуль по интеграции с 1С, сделайте его в коробке. Опытные программисты знают, что от базы все равно толку нет, надо это докрутить, то докрутить, вот тут уже и можно модули делать. Например на модицифации товаров (msoptionprice2) для 1С продавать модуль, но в 2 раза дороже, возьмут, для бизнеса это копейки.

Да и еще остатки введите а базу. А например, остатки по складам уже модуль

Решить вопрос с созданием опцией товаров. Самое главные затыки в них:
1. Почему не делать автотранслит при создании опции товара??? Нафига людям это объяснять
2. Люди хотят нормальную сортировку этих опций. В норм магазине от 100 категорий товаров (подкатегорий). Люди мучаются делать нужный порядок опций.
Артур Шевченко
04 сентября 2022, 22:45
+1
Есть msAddFields, чтобы плагины не писать.
Дмитрий
04 сентября 2022, 12:40
0
Скорее всего вы правы. Есть предположение куда лезь? малейшую зацепку бы)
Сергей Карпович
04 сентября 2022, 12:37
0
[migxResourceMediaPath]: docid could not be determined. — не относится к этой проблема, это просто динамический источник файлов не может создаться, например когда в шаблон переходишь
Вячеслав Варов
04 сентября 2022, 08:17
0
Спасибо! Это рабочий способ!)
Сергей Карпович
03 сентября 2022, 21:07
0
Ух как не скоро
Prihod
03 сентября 2022, 19:30
0
Думаю где то к концу года
Сергей
03 сентября 2022, 17:41
0
Можно как то настроить выгрузку поля, например количество в два разные места, в tv и опцию товара?
Сергей Карпович
03 сентября 2022, 16:01
0
С правами все правильно, что интересно.
Максим
03 сентября 2022, 15:50
0
Проверьте права и владельца файлов и каталога медиасорса. Плюс стоит убедится, что в настройках стоят корректные права для файлов и каталогов.
Stepan
03 сентября 2022, 07:23
0
и так из хотелок можно сделать расширение таблиц
даже если не на лету, то доп. функционалом
и нормальная размерность нужна для взаимодействия с бэкофисом
т.е. если вобще параметры товара будете расширять подумайте над тем чтобы интеграция с внешними сервисами была заложена
т.е. везде по максимум guid запихнуть хуже не станет, но пригодится
Stepan
03 сентября 2022, 07:12
0
а чего position не назвали просто и лаконично sort