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

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

Был в сети 9 часов назад
Заказы принимаю
И что? Пусть ресурсы создаются с правильным id, а во всех чанках вместо
[[~103]]
указываем переменную и потом при создании чанка меняем переменную на нужный тег. Главное чтобы ресурсы создавались первыми.
Вот это все не понял. В смысле с правильным id? Это с каким?
Ну от вас такого не ожидал О_О.
Build.php только создает vehicle файл в транспортный пакет. И при установке из vehicle ресурсы создаются установщиком MODX без участия какого-то моего кода. Конечно можно написать ресолвер, который после установки выловит id ресурсов по их алиас, и записать их в системные настройки, но еще надо будет опять же ресолвером установить родителей ресурсов.
Не такой уж и важный пакет чтоб этим заморачиваться. Я на тестах его использую, а для заказчиков обычно Office ставлю.
Расскажешь, что проблемного в том, чтобы взять кусок кода из build.php, отвечающий за создание ресурсов, и дописать к нему сохранение id хоть в свою таблицу, хоть в системные настройки?
Ну ну :-). Вообще-то build.php только собирает транспортный пакет и при установке пакета (при создании ресурсов) никак не выполняется. Так что твое предложение лажа :-).
но у новичков с ним возникнет больше головной боли, чем пользы
Новичкам, наверно, полезно самим настроить login, а не через пакет. И только потом решать пользоваться пакетом или нет.
Вообще мне при создании тестовых сайтов и своих требуется авторизация и каждый раз ее с нуля поднимать геморойно. А пакетом быстро поставил и тестируй дальше.
В чем проблема создать эти ресурсы и сохранить их id динамически, это непосильная задача?
Это проблемная задача. Если хочешь реши ее и всем будет счастье :-). Вообще тон твоего комментария вызывает впечатление, что тебе лишбы погавкать :-). Извиняюсь конечно за прямоту, но вот такое впечатление у меня.
pdoTools просто чтоб был. Мне он нужен. А Theme.Bootstrap — это готовая верстка шаблона. В личный кабинет подтягивается шаблон из Theme.Bootstrap и под него верстка чанков Login делается. Без Theme.Bootstrap компонент вообще нельзя было бы написать. Проблема в том какую верстку под страницы писать.
для универсального использования (что как бы подразумевается для пакетов)
Такой пакет как этот нельзя сделать для универсального использования. На каждом сайте своя верстка.
блин ответ писал развернутый и ошибка выскочила. Вообщем сборка под себя и если у кого-то те же предподчения то им пойдет. А тем кому не подойдет пусть свою сборку пишут. Всем не угодишь.
Хм… Пакет в модсторе на модерации. Как пройдет модерецию можно будет с него ставить. Но, конечно, лучше под себя отредактировать все. Это делаете копию c github в ваш_сайт/Extras, редактируете и устанавливаете из браузера ваш_сайт/Extras/loginSetting/_build/build.php. На рабочем сайте ваш_сайт/Extras удалить!!!
Установи новую версию 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 искать
компонент у 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»