Всего 123 801 комментарий

Алексей Смирнов
28 ноября 2022, 13:52
0
Наведите на ПАКЕТЫ. выскочит менюшка. там найдите тикеты и только тогда кликайте.
Алексей
28 ноября 2022, 12:07
0
Да я туда сразу заходил, странно но там пусто!

pastenow.ru/ffab224aa3b5db04cf76648a102a4538

Мне надо как-то добраться до отзывов, какие еще идеи?)
Илья Уткин
28 ноября 2022, 10:28
0
Я посмотрю документацию, но насколько я знаю, CDEK не предоставляет такой возможности — он сам отправляет уведомления, не спрашивая отправителя)
Евгений
28 ноября 2022, 09:54
0
$filter_result['innerJoin'] = '{
                "op":{
        "class":"msopModification",
                    "on":"op.rid = msProduct.id "
                },
        "o":{
                "class":"msopModificationOption",
                "on":"o.rid = msProduct.id AND o.mid = op.id AND o.key = \'size\' and o.value=\'50\'"
            }                
            }';
    $filter_result['sort'] = 'mo|price:asc';
сделал так, inner join двух таблиц, т.к. msopModification содержит цену, а msopModificationOption опцию, что конечно не очень удобно
Василий Наумкин
28 ноября 2022, 09:06
0
Мне без разницы, я больше не занимаюсь дополнениями для MODX.

В магазине его поддерживает Илья Уткин, так что спрашивать нужно у него.
Николай Савин
28 ноября 2022, 09:06
+3
Компонент определенно получился отличным и очень популярным (особенно в искусственно созданных условиях не конкурентности в магазине). Но хотелось бы вас предупредить. В modx сообществе накопился ряд, не то, чтобы претензий, но замечаний как раз к JS части проекта. Вам как минимум нужно знать, что эти замечания существуют. Кратко могу упомянуть следующее
  • Использование jquery большая часть разработчиков считает излишним в 2022. Код давно пишут на чистом JS.
  • Для использования цифрового слайдера и авто подсказок используется jquery UI. Это лишняя устаревшая зависимость. Есть плагины, которые реализуют подобное качественнее. Кроме того слайдер не работает на телефонах.
  • Привязка к ID на страницах. Тоже можно к проблемам отнести. Переиспользовать код на странице несколько раз не получится. Сейчас подобные вещи обычно к data атрибутам и классам привязывают.
  • Сам по себе код большой, объемный трудночитаемый. В современном мире разработки обычно принято разбивать код на логические куски и выносить в отдельные модули.
Это я кратко описал, то что по-быстрому вспомнил. Если завяжется дискуссия — думаю еще много что всплывет. В общем проект очень хороший для своего времени. Но он с тех пор практически не развивается и в 2022 несколько устарел.
Алексей Смирнов
27 ноября 2022, 14:40
+2
Конечно можно. Просто в доку по jqery загляните. увидете .hasClass('testclassname')
if (var.hasClass('testclassname')) { one; } else { two; }
Так оно не работает. ведь проверка это либо true или false.
.hasClass(«error»).addClass(«is-invalid»)
Alexey
27 ноября 2022, 14:26
0
www.mail-tester.com/

Вот неплохой сервис для тестирования. Бесплатно 3 попытки в сутки позволяет.

И ещё частенько из-за неверной системной настройки emailsender в спам летят письма. Должно быть типа no-reply@site.ru
Рушан
27 ноября 2022, 13:39
0
Может кто знает как исправить письма летят в спам?
Futuris
27 ноября 2022, 13:38
0
Вот так я я тогда))
Рушан
27 ноября 2022, 13:27
0
Всё решилось, написал хостеру, сказали, что то там поправили и вроде работает. Правда летит всё в спам.
Спасибо всем!
Futuris
27 ноября 2022, 11:57
0
Привет! Уже не помню — давно было. Вроде там чисто у хостеров был вопрос — написал им и все решилось.
Александр Туниеков
27 ноября 2022, 11:52
0
Из лицензии mSearch2
«that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs»
«вы можете изменить программное обеспечение или использовать его части
в новых бесплатных программах;»
Так получилось что в FacetSearch который я только что написал 90% кода в js файле скопированно из mSearch2.
По лицензии я вроде могу это делать? Как вы к этому относитесь?
Просто js код я придумать лучше не могу :-(. PHP часть совершенно другая.
Николай Савин
27 ноября 2022, 10:05
+3
Призываю всех участников беседы проявить сдержанность и дружелюбие (кому что проще) и далее обсуждать только тему поста без перехода на личности.
Alexey
27 ноября 2022, 00:03
0
После раздумий на свежую голову, допер наконец-то, что данные, которые прилетают в комбобокс из базы при открытии модального окна, нужно смотреть в общем процессоре get.class.php, а не процессоре, который в комбобокс отдает список пользователей. Разумеется, из процессора get приходит массив айдишников юзеров — skrinshoter.ru/s/261122/swgV0bFJ, а нужен массив, соответствующий комбобоксу — skrinshoter.ru/s/261122/OUfflCjn. Остальное дело техники, добавил нужный код в метод cleanup:

public function cleanup() {
    $array = $this->object->toArray();
    
    $tmp = [];
    foreach($array['properties'] as $key => $item) {
        if($tmp_user = $this->modx->getObject('modUser', $item)) {
            $tmp[$key]['id'] = $item;
            $tmp[$key]['username'] = $tmp_user->get('username');
        }
    }
    $array['properties'] = $tmp;

    return $this->success('', $array);
}

из кода самого комбика выкинул лишее:

RewardsPupil.combo.Options = function (config) {
    config = config || {};
    Ext.applyIf(config, {
        xtype: 'superboxselect',
        allowBlank: true,
        allowAddNewData: true,
        addNewDataOnBlur: false,
        resizable: true,
        name: 'properties',
        anchor: '100%',
        minChars: 2,
        store: new Ext.data.JsonStore({
            id: (config.name || 'properties') + '-store',
            root: 'results',
            autoLoad: true,
            autoSave: false,
            totalProperty: 'total',
            fields: ['username','id'],
            url: RewardsPupil.config.connector_url,
            baseParams: {
                action: 'mgr/user/getoptions',
            }
        }),
        mode: 'remote',
        displayField: 'username',
        displayFieldTpl: '{username} ({id})',
        valueField: 'id',
        triggerAction: 'all',
        extraItemCls: 'x-tag',
        expandBtnCls: 'x-form-trigger',
        clearBtnCls: 'x-form-trigger',
        renderTo: Ext.getBody(),
    });
    config.name += '[]';
    RewardsPupil.combo.Options.superclass.constructor.call(this,config);
};
Ext.extend(RewardsPupil.combo.Options, Ext.ux.form.SuperBoxSelect);
Ext.reg('rewardspupil-combo-options', RewardsPupil.combo.Options);

Всё завелось — skrinshoter.ru/s/261122/6GN8iS6i.

В который раз убеждаюсь, что нельзя упираться надолго, если не получается найти решение, только мозг закипает… Голову проветрил и сразу дело пошло.
Артур Шевченко
26 ноября 2022, 23:55
0
На сервере может быть запрет на отправку писем через функцию mail(), тогда надо настраивать SMTP. Ещё может быть запрет на отправку с рандомного ящика, но это как правило только на тех хостингах где чтобы отправлялись письма, нужно создавать почту на хостинге. Ещё отправитель может быть просто не указан или не указана тема письма. Ещё могут быть хуки, которые что-то ломают. Некорректная разметка. Ещё может быть поле указано в параметре validate, но не передаётся на сервер, так как его нет в форме.
Рушан
26 ноября 2022, 21:04
0
Здравствуйте!
А как вы решили эту проблему, что изменили на сервере?
У меня сейчас такая же проблема не проходит валидацию.