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

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

С нами с 19 декабря 2015; Место в рейтинге пользователей: #15
Александр Туниеков
06 октября 2020, 19:19
+1
Интересный вариант. Только не понятно textarea.closest('form').submit не должно сработать на строке таблицы. И другие редакторы тоже хотелось бы подключать.
Александр Туниеков
06 октября 2020, 19:06
0
Скрестить getTables с mFilter2 — такого никогда не задумывалось :-). getTables получает данные таблиц только от pdoTools. По хорошему нужно переписывать функции. В core\components\gettables\core\gettable.class.php
generateData чтобы каким-то образом брал данные из mFilter2. Возможно еще потребуется изменить addFilterTable и в core\components\gettables\core\getmodal.class.php generateEditsData и в core\components\gettables\core\gettableprocessor.class.php check_rows.
По топорному можно добавить в таблицу фильтр с 'where_field'=>'`modResource`.`id`:IN',
mFilter2 заставить выдавать только ids и на mse_load (точно не помню) забивать в этот фильтр ids и обновлять таблицу getTables.sendData.$GtsApp = $('.get-table');getTables.Table.refresh();
(Здесь только для getTables надо пару строк добавить чтоб :IN коректно отрабатывало)
Александр Туниеков
06 октября 2020, 06:06
+1
Обновил компонент
1.5.3-alpha
==============
— Чанк для action.
— Попровлена ошибка проверки существования строки в таблице перед записью.
— Добавлены описания для системных параметров.

Во все action теперь можно добавить произвольные атрибуты через attr.
'actions'=>[
            'custom' =>[
                'action'=>"getTable/custom",
                'row' => [],
                'cls'=>'red',
                'icon' => 'glyphicon glyphicon-edit',
                'tag' =>'a',
                'attr' => 'data-data-tag="a"',
            ],
        ],
Проверил
'update'=>[
                'processors'=>['modResource'=>'resource/update',],
            ],
Процессор resource/update требует чтобы поле alias было.
Александр Туниеков
05 октября 2020, 22:58
+1
custom должно быть в массиве actions
Вот мой конфиг:
{'getTable' | snippet : [
    'showLog'=>1,
    'toJSON'=>1,
    'table'=>[
        'class'=>'modResource',
        'actions'=>[
            'create'=>[
                
            ],
            'update'=>[
                'processors'=>['modResource'=>'resource/update',],
            ],
            'custom' =>[
                'action'=>"getTable/custom",
                'row' => [],
                'cls'=>'red',
                'icon' => 'glyphicon glyphicon-edit',
                'tag' =>'a',
                'attr' => 'data-data-tag',
            ],
        ],
        'pdoTools'=>[
             'class'=>'modResource',
             'parents'=>258,
             'includeTVs'=>'icon,price',
        ],
        'checkbox'=>0,
        'autosave'=>1,
        'row'=>[
                'id'=>[
                    ],
                'content'=>[
                    ],
                'icon'=>[
                    'class'=>'TV',
                    ],
                'price'=>[
                    'class'=>'TV',
                    ],
                'test'=>[
                    'label'=>'quickview',
                    'content'=>'<a >da</a>',
                    'edit'=>false,
                    ],
            ],
    ],
]}
только в custom всетаки ошибка забыл кавычки поставить. Ладно попробую сегодня новую версию getTables выпустить.
Но все таки зачем вам quickview что вы в нем хотите сделать? может это по другому решать надо?
Александр Туниеков
05 октября 2020, 16:53
+1
для quickview наверно стоит попробывать action
'custom' =>[
                'action'=>"getTable/custom",
                'row' => [],
                'icon' => '',
                'tag' =>'a',
                'attr' => '',
            ],
и все что вам надо в attr запихать.

Только не понятно зачем вам quickview? И я под quickview компонент не планировал и не понятно как data-data-id=«1» в кнопку запихать. У меня все data-id в дата атрибутах строки запиханы. yadi.sk/i/0bBau5HI-TkEmA. На action кнопках данные строки не подставляются.

Вы еще можете вместо добавления кнопки в колонку действия, запихать кнопку в отдельную колонку.
"row": {
            "id": [],
            "partner_condition_multi": {
                "class": "TV"
            },
            "keywords": {
                "class": "TV"
            },
            "test": {
                "label":"quickview",
                "content":"<a class=\"quickview\" data-click
			data-quickview-mode=\"modal\"
			data-data-action=\"chunk\"
			data-data-element=\"test\"
			data-data-id=\"{$id}\"
			data-dialog-buttons='[\"close\"]'
			> </a>"
            }
        }
код примерный
Александр Туниеков
05 октября 2020, 16:26
+1
gettables_mgr_framework_style — стиль для админки. gettables_frontend_framework_style — для фронта.
Если gettables_frontend_framework_style=bootstrap_v3 по умолчанию грузятся чанки заданные в наборе параметров getTables_bootstrap_v3 yadi.sk/i/Mio_2Fxn2r79jg
Если gettables_frontend_framework_style=bootstrap_v4, то набор параметров getTables_bootstrap_v4, а если gettables_frontend_framework_style=test, то будет пробовать найти набор параметров getTables_test

чтоб грузило css и js надо включить соответствующие gettables_load_frontend_framework_style. Включение загрузки задается в gettables_load_что-то-там
Александр Туниеков
05 октября 2020, 16:14
0
Мда… так и знал стоит выложить и куча работы добавят :-).
Александр Туниеков
05 октября 2020, 16:11
+1
На update какая-то ошибка на поцессоре
'processors'=>['modResource'=>'resource/update'],
Без него работает.
для actions я чанк сперва не сделал. думал потом сделаю, а потом возникла проблема как код перевести в чанк и снова отложилось.
Александр Туниеков
04 октября 2020, 21:10
+1
Если у вас включено создание ресурсов
"actions": {
            "create": [],
То нужно еще прописывать поля: pagetitle,parent,template. И лучше наверно через процессор создавать ресурсы
'actions'=>[
            'create'=>[
                'processors'=>['modResource'=>'resource/create',],
            ],
            'update'=>[
                
            ],
        ],
Александр Туниеков
04 октября 2020, 20:45
+1
Так у вас в конфиге нет же tabs. Табов нет только таблица. Вызывайте getTable
[[!getTable? &config=`gettables_admin`]]
Александр Туниеков
04 октября 2020, 18:39
+1
getTable вызывает таблицу, а getTabs — табы. &config в обоих работает.
Наверно позже 1 сниппет сделаю, чтоб табы или таблица сам из инструкций определял.
Александр Туниеков
04 октября 2020, 18:38
+2
Если нужен пример выше в системную настройку, то создаем сиснастройку, например, test_gettable_tv в нее записываем json массив:
{
    "table": {
        "class": "modResource",
        "actions": {
            "create": [],
            "update": []
        },
        "pdoTools": {
            "class": "modResource",
            "parents": 258,
            "includeTVs": "icon,price"
        },
        "checkbox": 0,
        "autosave": 1,
        "row": {
            "id": [],
            "content": [],
            "icon": {
                "class": "TV"
            },
            "price": {
                "class": "TV"
            }
        }
    }
}

И вызываем getTable
[[!getTable? &config=`test_gettable_tv`]]
Александр Туниеков
04 октября 2020, 18:29
0
Системная настройка gtsreview_admin есть? И там массив в JSON? В массиве есть инструкция tabs на верхнем уровне? :-)
Александр Туниеков
04 октября 2020, 18:23
+1
Не пользовался quickview. Так что не знаю что получиться. Вообще в любом чанке должно сработать. А вот если quickview сам чанк по ajax подгружает может скрипты js не подгрузятся. И если у quickview модалки бутстраповкие проблемы с модалками могут возникнуть. Там новая модалка может ниже старой открыться и стратая будет закрывать ее.
Вообще попробуйте затестить и отпишитесь что как :-).
Александр Туниеков
01 октября 2020, 18:05
+1
'includeTVs'=>'icon,price', — pdoTools делает leftJoin
А для 'class'=>'TV',
'price'=>[
                    'class'=>'TV',
                    ],
getTables преобразует в
3 => 
        array (
          'field' => 'price',
          'type' => 'text',
          'label' => 'price',
          'placeholder' => 'price',
          'where_field' => '`TVprice`.`value`',
          'class' => 'modTemplateVarResource',
          'search_fields' => 
          array (
            'contentid' => 'id',
            'tmplvarid' => 1,
          ),
          'value_field' => 'value',
          'as' => 'price',
        ),
where_field используется если для поля включен фильтр.
По class и search_fields определяется в какую таблицу базы в какую строку писать изменения.
Эти инструкции можно самим писать. Кажется так:
'price'=>[
                    'class'=>'modTemplateVarResource',
                    'edit'=>[
                          'type'=>'text',
                         'where_field'=> '`TVprice`.`value`',
                         'search_fields' => 
                          [
                            'contentid' => 'id',
                            'tmplvarid' => 1,
                         ]
                    ]
               ],
Александр Туниеков
01 октября 2020, 17:41
+1
Сейчас вспоминал. Вот что получилось:
{'getTable' | snippet : [
    'table'=>[
        'class'=>'modResource',
        'actions'=>[
            'create'=>[
            ],
            'update'=>[
                
            ],
        ],
        'pdoTools'=>[
             'class'=>'modResource',
             'parents'=>258,
             'includeTVs'=>'icon,price',
        ],
        'checkbox'=>0,
        'autosave'=>1,
        'row'=>[
                'id'=>[
                    ],
                'content'=>[
                    ],
                'icon'=>[
                    'class'=>'TV',
                    ],
                'price'=>[
                    'class'=>'TV',
                    ],
            ],
    ],
]}


Только надо иметь ввиду, что таблица пишет в тв даже если к этой странице не привязанно такое TV.
Александр Туниеков
27 сентября 2020, 00:30
0
Кто-нибудь уже начал компонент использовать тестить? Как впечатления?
Александр Туниеков
25 сентября 2020, 06:14
0
Я тебе про современны подход ответил, а у тебя фантазия разыгралась)
Извиняюсь :-). Настроение было подпорчено.
Вообще охота чтоб кто-то написал про все преимущества MODX, его нищу на рынке и провел сравнение с другими CMS и фреймворками. В смысле я бы сам хотел написать такое, но пока не настолько уж горю желанием, чтобы время, которого не очень, выделить. И другие CMS и фреймверки знаю плохо.