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

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

С нами с 19 декабря 2015; Место в рейтинге пользователей: #15
Александр Туниеков
03 июля 2021, 20:36
-2
В чем проблема создать эти ресурсы и сохранить их id динамически, это непосильная задача?
Это проблемная задача. Если хочешь реши ее и всем будет счастье :-). Вообще тон твоего комментария вызывает впечатление, что тебе лишбы погавкать :-). Извиняюсь конечно за прямоту, но вот такое впечатление у меня.
Александр Туниеков
03 июля 2021, 20:30
0
pdoTools просто чтоб был. Мне он нужен. А Theme.Bootstrap — это готовая верстка шаблона. В личный кабинет подтягивается шаблон из Theme.Bootstrap и под него верстка чанков Login делается. Без Theme.Bootstrap компонент вообще нельзя было бы написать. Проблема в том какую верстку под страницы писать.
для универсального использования (что как бы подразумевается для пакетов)
Такой пакет как этот нельзя сделать для универсального использования. На каждом сайте своя верстка.
Александр Туниеков
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 полями не пользуюсь. Просто если надо поля доп таблицу завожу какую надо.