Всего 123 792 комментария

Евгений Лазарев
04 июля 2023, 13:52
0
Код на событие
case "OnUserFormPrerender":
        if (!$modx->getCount('modPlugin', array('name' => 'AjaxManager', 'disabled' => false))) {
            $data['building'] = $user->Profile->building ?: '';

            $modx->controller->addHtml("
                <script type='text/javascript'>
                    MODx.combo.Building = function(config) {
                        config = config || {};
                        Ext.applyIf(config,{
                            xtype: 'superboxselect',
                            allowBlank: false,
                            msgTarget: 'under',
                            allowAddNewData: true,
                            addNewDataOnBlur: false,
                            resizable: true,
                            name: config.name || 'building',
                            anchor: '100%',
                            displayField: 'name',
                            valueField: 'id',
                            typeAhead: true,
                            store: new Ext.data.JsonStore({
                                id: (config.name || 'building') + '-store',
                                root: 'results',
                                autoLoad: true,
                                autoSave: false,
                                totalProperty: 'name',
                                fields: ['id','name'],
                                url: '/assets/components/svgcreator/connector.php',
                                baseParams: {
                                    action: 'mgr/floor/getlist',
                                    key: config.name,
                                },
                            }),
                            extraItemCls: 'x-tag',
                            expandBtnCls: 'x-form-trigger',
                            clearBtnCls: 'x-form-trigger',
                            renderTo: Ext.getBody(),
                            editable: true,
                            triggerAction: 'all',
                            mode: 'remote',
                            hideMode: 'offsets',
                            pageSize: 20,
                            listeners: {
                                newitem: function(bs,v, f) {bs.addItem({tag: v});},
                            },
                        });
                        config.name += '[]';
                        MODx.combo.Building.superclass.constructor.call(this,config);
                    };
                    Ext.extend(MODx.combo.Building,Ext.ux.form.SuperBoxSelect);
                    Ext.reg('modx-combo-building',MODx.combo.Building);
                
                    Ext.ComponentMgr.onAvailable('modx-user-tabs', function() {
                        this.on('beforerender', function() {
                            var leftCol = this.items.items[0].items.items[0].items.items[0];
                            
                            leftCol.items.insert(12, 'modx-user-building', new MODx.combo.Building({
                                id: 'modx-user-building',
                                name: 'building',
                                fieldLabel: 'Объекты',
                                xtype: 'modx-combo-building',
                                anchor: '100%',
                                maxLength: 100,
                                value: {$data['building']},
                            }));
                        });
                    });
                </script>
            ");
        }
        break;
Артур Шевченко
04 июля 2023, 12:48
0
Во-первых, уберите, пожалуйста код под cut (иконка якоря на панели редактирования). Во-вторых, если не работает кнопка, смотрите консоль браузера на предмет ошибок. Если там ошибок нет, смотрите журнал ошибок в админке. Если и там пусто, смотрите лог ошибок сервера. Если и там ничего нет, наймите более квалифицированного специалиста.
Кровельный
04 июля 2023, 12:35
0
На локальном сервере была похожая проблема
Кровельный
04 июля 2023, 12:34
0
Помогло решение от @Иван Бочкарев
  • modx 2.8.4-pl
  • apache_2.4-php_7.2-7.4 open server
  • MySQL-5.7-Win10
  • PHP_7.4
#log: Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'your_database_name.modx_ms2_products.id' which is not functionally dependent on columns in GROUP BY clause
Добавление следующего блока в конфигурацию config core/config/config.inc.php решает проблему:
<?php
// config core/config/config.inc.php
$driver_options = array (
  PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true,
  PDO::MYSQL_ATTR_INIT_COMMAND => "SET sql_mode = 'TRADITIONAL'"
);
# Или возможно, что нужно было вместо
# SET GLOBAL sql_mode = 'NO_ENGINE_SUBSTITUTION';
# SET SESSION sql_mode = 'NO_ENGINE_SUBSTITUTION';
# Выполнить:
SET GLOBAL sql_mode = 'TRADITIONAL';
SET SESSION sql_mode = 'TRADITIONAL';
Артур Шевченко
04 июля 2023, 12:26
0
Поле должно быть NULL в базе, если оно в базе не NULL, то никак не выбрать.
vit
vit
04 июля 2023, 11:04
0
А как выбрать чтобы col2 имело значение NULL
Артур Шевченко
04 июля 2023, 09:56
0
Очевидно, что col2 не NULL
Wassi Wassinen
04 июля 2023, 03:57
0
Павел, прошу прощения. Перепроверил — всё работает. Скорость первичной загрузки страницы не снижается. Еще раз — спасибо!
Wassi Wassinen
04 июля 2023, 03:56
0
Иван, спасибо за ответ. Перепроверил — работает и не снижает скорость загрузки. Поспешил с выводами. Использовал похожий плагин. Он замедлял загрузку на 0,12-0,19 мс.
Raimei
04 июля 2023, 00:35
+1
Закинул копеечку.
Хорошо что не бросаете родной MODX. Спасибо!
Ivan
03 июля 2023, 21:03
0
Ничего они не снижают. Откуда вообще такая информация что такой код что-то замедлит? Он перед Рендером страницы сделает замену. Если вы считаете что 1 str_replace что-то замедлит, то как вообще что-то работает?
Wassi Wassinen
03 июля 2023, 19:17
+3
Артур, спасибо за вопрос.
Учиться ничего не мешает. Более того, искренне считаю, что учиться — всегда нужно. Так уж получилось, что у меня другая сфера деятельности и компетенций. В этой сфере я и стараюсь всячески развиваться и учиться. :)
Артур Шевченко
03 июля 2023, 15:56
0
А что мешает научиться?
Wassi Wassinen
03 июля 2023, 13:46
+1
При прочих равных, если на одном сайте есть предупреждения, а на другом нет — предпочтение отдадут сайту без предупреждений.
Wassi Wassinen
03 июля 2023, 13:45
0
Спасибо за совет.
Такие скрипты заметно снижают скорость первичной загрузки.
Wassi Wassinen
03 июля 2023, 13:44
0
Николай, благодарю за ответ. Если честно — не умею.
Николай Савин
03 июля 2023, 13:32
0
А сам не хочешь сделать нужные PR?
Евгений Webinmd
03 июля 2023, 11:13
+4
воу-воу, палехче. Я не буду платить за эту рекламную интеграцию!
Павел Романов
03 июля 2023, 10:15
2
+4
Чтобы убрать атрибуты и заодно удалить слеши у одиночных тегов можно сделать плагин на событие onWebPagePrerender )):

<?php
if($modx->resource->get('content_type') == 1){
    $arr1 = array('type="text/css"', 'type="text/javascript"',' />','/>');
    $arr2 = array('','','>','>');
    $output = &$modx->resource->_output;
    $output = str_replace($arr1,$arr2,$output);    
}
Николай Савин
03 июля 2023, 09:55
+2
Спасибо @Евгений Webinmd — он делает почти все самые важные вещи. А именно придумывает большинство идей, и ежедневно без выходных пинает меня, чтобы работал. По праздникам еще и сам присылает обновления (когда прислал, тогда и праздник)