Всего 125 674 комментария

Alexey
29 января 2021, 09:44
0
Если плагин повесить на OnBeforeDocFormSave, то можно обойтись без промежуточного TV

<?php
$eventName = $modx->event->name;
switch($eventName) {
    case 'OnBeforeDocFormSave':
        $menuindex = $modx->getObject('modResource', $id)->get('menuindex');
        $new_menuindex = strip_tags($_POST['menuindex']);
        
        $modx->log(1, print_r($menuindex, 1));
        $modx->log(1, print_r($new_menuindex, 1));
        
        break;
}

В этом случае нужно помнить, что не срабатывает сохранение TV-поля из плагина. Но оно в данном случае нам и не нужно.
Сергей
29 января 2021, 09:39
0
Ясно. А такая задача: создавать несколько тредов с одним и тем же, только под разными темами как форум. Возможно?
Щукин Дмитрий
29 января 2021, 05:28
0
Тоже столкнулся с этим, после обновления на minishop2 версий 2.7 — 2.8, ошибка выходит на страницах каталога с mSearch2
Саша
28 января 2021, 22:44
0
Здравствуйте.
Возникла ошибка которую никак не могу решить.
Не генерирует pdf у товаров где в название слеш, например 4sto.by/katalog/legkovyie/podemniki/2-x-stoechnyie/avtopodemnik-dvuxstoechnyij-rossvik-v2-5.5l-g/p-5.5t,-380v/
Что это может быть?
Александр Туниеков
28 января 2021, 22:02
0
Ну вот… а я поисковый запрос не смог сформулировать и не нашел. Так бы не парился с сервисом и сделал выложил бы компонент еще полгода назад. Но по любому счас на их сервис добавить настройку надо будет. Свой сервис смысла держать вроде нет. Оплаченных полгода проработает и если клиенты на него не пойдут, то отключу его нафиг :-).
Александр Туниеков
28 января 2021, 20:17
0
Блин. comet-server.com уже 2 года работает :-(. Я 2 года назад искал подходящий push-сервис и ничего не находил. Пришлось мутить собственный сервис вебсокет уведомлений.
Илья Уткин
28 января 2021, 19:51
0
Один, изначально нужно было заказчику просто на сайт личные сообщения сделать. Потом там накрутилось фишечек. Года два валялось в недоделанном виде)
Александр Туниеков
28 января 2021, 19:10
+1
И теперь сообщения на сайт можно добавть даже 2 вариантами, если мой компонент пройдет модерацию :-).
Ты один делал компонент или комманда трудилась, если не секрет? У меня вид не айс. я верстку плохо знаю :-(.
Илья Уткин
28 января 2021, 18:53
0
Да, много есть таких вариантов. Это может быть и доска объявлений, и специфический сайт, например — каталог мероприятий. Теперь сообщения можно добавить на любой сайт, где есть пользователи.
Александр Туниеков
28 января 2021, 18:21
0
Переписка между группой пользователей предостовляющим услуги на сайте и группой пользующиюся этими услугами. Например, врачебный сайт: онлайн врачи и пациенты. А владельцы сайта не хотят чтоб они в соцсетях без них общались. Только компонент Ильи, наверно, не преспособлен для такой ситуации. Не вижу разбивку пользователей мессенджера на группы.
Илья Уткин
28 января 2021, 18:14
0
Сейчас сообщения как раз и реализованы на топиках. Когда пользователь пишет первое сообщение, создаётся тред, у нему прикрепляется два пользователя — кто написал и кому написали. Но теоретически можно создать тред и прикрепить к нему даже нескольких пользователей. Тогда это будет групповой чат.
Илья Уткин
28 января 2021, 18:12
0
врядли же кто то пишет соцсети на modx
Есть такие люди)
Сергей
28 января 2021, 17:57
0
Илья, внешний вид — классный. Внутри работает хорошо. Вложения прикрепляет.

Вопрос. А сложно сделать с отдельными топиками?

Пользователь создает топик.
Приходит уведомление админу.
Ведется сообщения до победного.
Артур Шевченко
28 января 2021, 17:36
0
Я переписал код, но он всё равно как-то не так работает
<?php
switch ($modx->event->name) {
    case 'OnDocFormSave':
        $oldValue = $resource->getTVValue('old_value');
        $newValue = $resource->get('menuindex');
        $resource->setTVValue('old_value', $newValue);
        $resource->save();
        $resources = $modx->getIterator('msProduct', array('parent' => $resource->get('parent')));
        
        if($newValue < $oldValue){
            foreach($resources as $res){
                $menuindex = $res->get('menuindex');
               
                if($menuindex >= $newValue && $menuindex < $oldValue && $res->get('id') != $id){
                    $res->set('menuindex', $menuindex + 1);
                    $res->set('old_value', $menuindex + 1);
                }
                
                $res->save();                
            }
        }
        else{
            foreach($resources as $res){
                $menuindex = $res->get('menuindex');
               
                if($menuindex > $newValue && $menuindex <= $oldValue && $res->get('id') != $id){
                    $res->set('menuindex', $menuindex - 1);
                    $res->set('old_value', $menuindex - 1);
                }
                
                $res->save();                
            }    
        }
    break;
}
Александр Мельник
28 января 2021, 17:29
0
А для каких целей может понадобиться чат между пользователями?
Я без иронии, просто не могу себе представить ситуацию, когда посетители сайта должны писать друг другу. Ну врядли же кто то пишет соцсети на modx
Ну разве что задать вопрос менеджеру, а вот больше не могу придумать применений.
Поделитесь для чего используете вы?
Александр Туниеков
28 января 2021, 16:44
0
Блин только публикую свой компонент обмена сообщениями, а тут такой облом :-). 2 месяца коту по хвост :-(.
Артур Шевченко
28 января 2021, 16:11
1
0
Думаю стоить дополнить этот пост раз он есть в поиске. Во-первых на мой взгляд решение не самое лучшее, но достаточно простое, поэтому я его немного переделал для компактности
ПЛАГИН
<?php
switch ($modx->event->name) {
    case 'OnDocFormSave':
        $sql = 'SELECT article FROM modx_msop_modifications WHERE rid= ?';
        $statement = $modx->prepare($sql);
        if ( $statement->execute(array($id)) ) {
            $result = $statement->fetchAll(PDO::FETCH_COLUMN);
        }
        $resource->set('introtext', implode(',',$result));
        $resource->save();
    break;
}
КОД ДЛЯ КОСОЛИ, чтобы обновить товары
<?php
$resources = $modx->getIterator('msProduct');

foreach ($resources as $resource) {
    $id = $resource->get('id');
    $sql = 'SELECT article FROM modx_msop_modifications WHERE rid= ?';
    $statement = $modx->prepare($sql);
    if ( $statement->execute(array($id)) ) {
        $result = $statement->fetchAll(PDO::FETCH_COLUMN);
    }
    $resource->set('introtext', implode(',',$result));
    $resource->save();
}