Александр Туниеков

Александр Туниеков

С нами с 19 декабря 2015; Место в рейтинге пользователей: #15
Александр Туниеков
03 июля 2021, 20:21
0
Очень рисково включать fenom после установки, т.к. сайт может повалиться из-за инлайновых скриптов или инлайновых JS атрибутов, где стоит фигурная скобка и после неё символ :)
Я предупредил, что включается, а использовать пакет или нет ваше дело. Или собрать свой без фенома.
Интересно же почему так? При создании объектов железно прописываешь им айди?
Это с modExtra пошло. Он назначает у ресурсов id автоматически с 1, чтобы родителей ресурсов прописывать. github.com/bezumkin/modExtra/blob/8295c2a6e987a0427c40ade90acb594be28b5696/_build/build.php#L614
Я просто прописал свои id чтобы на не перезаписывать ресурсы что уже были.
Александр Туниеков
21 июня 2021, 17:03
0
блин ответ писал развернутый и ошибка выскочила. Вообщем сборка под себя и если у кого-то те же предподчения то им пойдет. А тем кому не подойдет пусть свою сборку пишут. Всем не угодишь.
Александр Туниеков
20 июня 2021, 19:44
0
Можно конечно. Просто может вам свой пакет нужен, чтоб ничего потом не редактировать.
Александр Туниеков
20 июня 2021, 17:34
0
Хм… Пакет в модсторе на модерации. Как пройдет модерецию можно будет с него ставить. Но, конечно, лучше под себя отредактировать все. Это делаете копию c github в ваш_сайт/Extras, редактируете и устанавливаете из браузера ваш_сайт/Extras/loginSetting/_build/build.php. На рабочем сайте ваш_сайт/Extras удалить!!!
Александр Туниеков
24 марта 2021, 17:22
0
Установи новую версию getTables c модсторе. Исправил глюк с search_field один.
У тебя редактируется несколько таблиц сразу. И так компонент сделан, что найти основную таблицу все равно надо. Я переделал код для этого. Смотри:
{'getTable' | snippet : [
    'showLog'=>1,
    'table'=>[
        'class'=>'modUserGroupMember',
        'actions'=>[
            
            'update'=>[
                'cls' => 'btn btn-default',
                'icon' => 'fa fa-edit',
            ],
        ],
        'pdoTools'=>[
            'class'=>'modUserGroupMember',

            'limit'=>'5',
            'leftJoin'=>[
                'modUserProfile'=>[
                    'class' => 'modUserProfile',
                    'on' => 'modUserProfile.internalKey = modUserGroupMember.member',
                ],
                'modUser'=>[
                    'class' => 'modUser',
                    'on' => 'modUser.id = modUserGroupMember.member',
                ],
                
            ],
            'where'=>[
                'modUserGroupMember.user_group'=>3,
            ],
            'select'=>[
                'modUserProfile'=>'*',
                'modUserGroupMember'=>'modUserGroupMember.id',
            ],
            'groupby'=>'modUser.id',
        'decodeJSON'=>1,
        ],
        'checkbox'=>1,
        'autosave'=>1,
        'row'=>[

                'internalKey'=>[
                    'label'=>'id',
                    'edit'=>[
                        'type'=>'view',
                    ],
                    'data'=>1,
                ],

                 'fullname'=>[
                    'label'=>'Имя',
                    'filter'=>1,
                    'class'=>'modUserProfile',
                    'edit'=>[
                        'type'=>'text',
                        'search_fields'=>['internalKey'=>'internalKey', ],
                    ],
                    ], 
                 'email'=>[
                    'label'=>'Email',
                    'class'=>'modUserProfile',
                    'edit'=>[
                        'type'=>'text',
                        'search_fields'=>['internalKey'=>'internalKey', ],
                    ],
                    ], 
                 'count'=>[
                     'label'=>'Товаров',
                    ],
                 'sum'=>[
                     'label'=>'Сумма',
                    ],
                 'active'=>[
                     'label'=>'Статус',
                    ],
                    
            ],
    ],
]}

Только у меня на тестовом сайте минишопа нет и я убрал запросы к его таблицам при тестировании. Кстати в modUser ничего кроме username нету такого что можно вывести и тебе присоединять modUser и не надо.
На поле internalKey надо 'data'=>1, чтобы по нему записи в search_field искать
Александр Туниеков
24 марта 2021, 14:46
0
Блин некогда разбираться. Позже
Александр Туниеков
24 марта 2021, 13:04
0
я и сказал что все сниппеты не могут возвращать массив. Хоть из pdoTools хоть из чего. pdoFetch входит в pdoTools.
Александр Туниеков
24 марта 2021, 01:09
+2
pdoTools умеет возвращать массивы. Это сниппеты modx не умеют возвращать массивы. Только строки. Точнее выражайтесь плиз :-)
Александр Туниеков
24 марта 2021, 00:58
0
компонент у data атрибутов tr строки таблицы пишет данные строки. Обязательно пишет id. У тебя
select'=>[
                'modUserProfile'=>'*',
                'modUser'=>'*',
значит id пишется с modUser.id. 'class'=>'modUserGroupMember', Значит, по умолчанию, пытается найти строку в таблице modUserGroupMember с этим id и ничего не находит. Для того, чтобы компонент нашел нужную строку нужно в инструкциях поля указать нужную таблицу 'class'=>'modUserProfile', и прописать правило как из data атрибутов строки найти строку.
'search_fields'=>['internalKey '=>'id', ],
Здесь в sql запрос попадает update modUserProfile set fullname='что ввел' where internalKey = 5, если < tr data-id=«5»
Александр Туниеков
23 марта 2021, 23:57
0
Чтобы поля редактировались надо указать как их искать.
'fullname'=>[
                    'class'=>'modUserProfile',
                            'edit'=>[
                                'type'=>'text',
                                'search_fields'=>['internalKey '=>'id', ],
                            ],
                    ],
Александр Туниеков
23 марта 2021, 10:29
0
надо
'modUser'=>[
                    'class' => 'modUser',
                    'on' => 'modUser.id = modUserGroupMember.member',
                ],
И надо вам добавить groupby
{'getTable' | snippet : [
    'table'=>[
        'class'=>'modUserGroupMember',
        'actions'=>[
            'remove' =>[
                'cls' => 'btn btn-danger',
                'icon' => 'fa fa-trash-o',
                'row' => [], 
        ],
            'update'=>[
                'cls' => 'btn btn-default',
                'icon' => 'fa fa-edit',
            ],
        ],
        'pdoTools'=>[
            'class'=>'modUserGroupMember',

            'limit'=>'5',
            'leftJoin'=>[
                'modUserProfile'=>[
                    'class' => 'modUserProfile',
                    'on' => 'modUserProfile.internalKey = modUserGroupMember.member',
                ],
                'modUser'=>[
                    'class' => 'modUser',
                    'on' => 'modUser.id = modUserGroupMember.member',
                ],
                'msOrder'=>[
                    'class' => 'msOrder',
                    'on' => 'modUser.id = msOrder.user_id',
                ],
                'msOrderProduct'=>[
                    'class' => 'msOrderProduct',
                    'on' => 'msOrder.id = msOrderProduct.order_id',
                ],
                
            ],
            'where'=>[
                'modUserGroupMember.user_group'=>2,
            ],
            'select'=>[
                'modUserProfile'=>'*',
                'modUser'=>'*',
                'msOrder'=>'SUM(msOrder.cost) as sum',
                'msOrderProduct'=>'SUM(msOrderProduct.count) as count',
            ],
            'groupby'=>'modUser.id',
            'sortdir'=>'DESC',
            'sortby'=>'',
        'decodeJSON'=>1,
        ],
        'checkbox'=>1,
        'autosave'=>1,
        'row'=>[

                'id'=>[
                    'label'=>'id',
                ],

                 'fullname'=>[
                    'label'=>'Имя',
                    'filter'=>1,
                    ], 
                 'email'=>[
                    'label'=>'Email',
                    ], 
                 'count'=>[
                     'label'=>'Товаров',
                    ],
                 'sum'=>[
                     'label'=>'Сумма',
                    ],
                 'active'=>[
                     'label'=>'Статус',
                    ],
                    
            ],
    ],
]}
и сортировка не понятная 'sortdir'=>'DESC',
'sortby'=>'',
Александр Туниеков
21 марта 2021, 15:29
0
составить запрос основываясь на modUserGroupMember
{'getTable' | snippet : [
    'table'=>[
        'class'=>'modUserGroupMember',
        'actions'=>[
            'create'=>[
            ],
            'update'=>[
                'icon' => 'fa fa-edit',
            ],
        ],
        'pdoTools'=>[
            'class'=>'modUserGroupMember',
            'leftJoin'=>[
                'modUserProfile'=>[
                    'class' => 'modUserProfile',
                    'on' => 'modUserProfile.internalKey = modUserGroupMember.member',
                ],
            ],
            'where'=>[
                'modUserGroupMember.user_group'=>2,
            ],
            'select'=>[
                'modUserProfile'=>'*',
            ],
        'decodeJSON'=>1,
        ],
        'checkbox'=>0,
        'autosave'=>1,
        'row'=>[
                'internalKey'=>[
                    'label'=>'data- 1 добавляем в data-индификатор строки, чтобы по нему можно было искать редактируемое значение fullname',
                    'data'=>1
                    ],
                 'fullname'=>[
                    'class'=>'modUserProfile',
                            'edit'=>[
                                'type'=>'text',
                                'search_fields'=>['internalKey '=>'internalKey', ],
                            ],
                    ], 
                 'oc_name'=>[
                     'label'=>'extended поле не редактируется',
                     'edit'=>['type'=>'view']
                    ],
            ],
    ],
]}
Александр Туниеков
21 марта 2021, 13:20
0
Блин с extended полями не понятно как их вывести и редактировать. Не работает сейчас компонент с ними!
Я extended полями не пользуюсь. Просто если надо поля доп таблицу завожу какую надо.
Александр Туниеков
21 марта 2021, 13:17
0
'loadModels'=>'pdoUsers', не надо
{'getTable' | snippet : [
    'table'=>[
        'class'=>'modUser',
        'actions'=>[
            'create'=>[
            ],
            'update'=>[
                'icon' => 'fa fa-edit',
            ],
        ],
        'pdoTools'=>[
            'class'=>'modUser',
            'leftJoin'=>[
                'modUserProfile'=>[
                    'class' => 'modUserProfile',
                    'on' => 'modUserProfile.internalKey = modUser.id',
                ],
            ],
            'select'=>[
                'modUser' => 'modUser.id',
                'modUserProfile'=>'*',
            ],
        'decodeJSON'=>1,
        ],
        'checkbox'=>0,
        'autosave'=>1,
        'row'=>[
                'id'=>[
                    ],
                 'fullname'=>[
                    'class'=>'modUserProfile'
                    ], 
                 'oc_name'=>[
                     'label'=>'extended поле не редактируется',
                     'edit'=>['type'=>'view']
                    ],
            ],
    ],
]}
Александр Туниеков
14 марта 2021, 16:08
0
Отправил тебе 200р за Автоустановщик шаблонов BELISSIMO. Еще не тестировал, но сама идея нравиться :-). Не верстальщик и все время мучаюсь с шаблонами.