R2m0x94 (Vasily)

R2m0x94 (Vasily)

С нами с 07 мая 2018; Место в рейтинге пользователей: #362
R2m0x94 (Vasily)
08 октября 2020, 13:37
0
Да в модульном есть, но модульное не использую, так как и так в quickview таблица в модульном выводится. И надо в таблице прикрутить редактор. Прикрутить, то получается, вот только загвоздка при авто сохранении не понимаю ничего не происходит, а когда из textarea убираю атрибут data-editor=«xml», то редактор слитает и авто сохранение происходит.

Если добавить класс к textarea[data-editor] в assets/components/gettables/js/gettables.js
$('.ace_text-input').addClass('get-table-autosave');
То вообще row не выводится
R2m0x94 (Vasily)
08 октября 2020, 11:13
0
А в модулюном quickview теперь «Строка таблицы не найдена» и не происходит автосохранение
0.0044389: __construct
0.0000319: cacheConfig
0.0001361: handleRequest getTable/autosave
0.0006440: xPDO query object created
0.0005109: Included list of tvs: equipment, technical_specifications, videos
0.0002639: leftJoined modTemplateVarResource as TVequipment
0.0000439: leftJoined modTemplateVarResource as TVtechnical_specifications
0.0000389: leftJoined modTemplateVarResource as TVvideos
0.0000961: Added selection of msProduct: `id`, `type`, `contentType`, `pagetitle`, `longtitle`, `description`, `alias`, `alias_visible`, `link_attributes`, `published`, `pub_date`, `unpub_date`, `parent`, `isfolder`, `introtext`, `content`, `richtext`, `template`, `menuindex`, `searchable`, `cacheable`, `createdby`, `createdon`, `editedby`, `editedon`, `deleted`, `deletedon`, `deletedby`, `publishedon`, `publishedby`, `menutitle`, `donthit`, `privateweb`, `privatemgr`, `content_dispo`, `hidemenu`, `class_key`, `context_key`, `content_type`, `uri`, `uri_override`, `hide_children_in_tree`, `show_in_tree`, `properties`
0.0000060: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `equipment`
0.0000021: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `technical_specifications`
0.0000019: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `videos`
0.0000191: Replaced TV conditions
0.0000060: Processed additional conditions
0.0000880: Added where condition: id=3374, modResource.id:IN(3374)
0.0000029: Replaced TV conditions
0.0000598: Sorted by modResource.id, ASC
0.0000041: Limited to 1, offset 0
0.0002069: SQL prepared "SELECT `msProduct`.`id`, `msProduct`.`type`, `msProduct`.`contentType`, `msProduct`.`pagetitle`, `msProduct`.`longtitle`, `msProduct`.`description`, `msProduct`.`alias`, `msProduct`.`alias_visible`, `msProduct`.`link_attributes`, `msProduct`.`published`, `msProduct`.`pub_date`, `msProduct`.`unpub_date`, `msProduct`.`parent`, `msProduct`.`isfolder`, `msProduct`.`introtext`, `msProduct`.`content`, `msProduct`.`richtext`, `msProduct`.`template`, `msProduct`.`menuindex`, `msProduct`.`searchable`, `msProduct`.`cacheable`, `msProduct`.`createdby`, `msProduct`.`createdon`, `msProduct`.`editedby`, `msProduct`.`editedon`, `msProduct`.`deleted`, `msProduct`.`deletedon`, `msProduct`.`deletedby`, `msProduct`.`publishedon`, `msProduct`.`publishedby`, `msProduct`.`menutitle`, `msProduct`.`donthit`, `msProduct`.`privateweb`, `msProduct`.`privatemgr`, `msProduct`.`content_dispo`, `msProduct`.`hidemenu`, `msProduct`.`class_key`, `msProduct`.`context_key`, `msProduct`.`content_type`, `msProduct`.`uri`, `msProduct`.`uri_override`, `msProduct`.`hide_children_in_tree`, `msProduct`.`show_in_tree`, `msProduct`.`properties`, IFNULL(`TVequipment`.`value`, '') AS `equipment`, IFNULL(`TVtechnical_specifications`.`value`, '') AS `technical_specifications`, IFNULL(`TVvideos`.`value`, '') AS `videos` FROM `modx_site_content` AS `msProduct` LEFT JOIN `modx_site_tmplvar_contentvalues` `TVequipment` ON `TVequipment`.`contentid` = `msProduct`.`id` AND `TVequipment`.`tmplvarid` = 95 LEFT JOIN `modx_site_tmplvar_contentvalues` `TVtechnical_specifications` ON `TVtechnical_specifications`.`contentid` = `msProduct`.`id` AND `TVtechnical_specifications`.`tmplvarid` = 94 LEFT JOIN `modx_site_tmplvar_contentvalues` `TVvideos` ON `TVvideos`.`contentid` = `msProduct`.`id` AND `TVvideos`.`tmplvarid` = 96 WHERE  ( `msProduct`.`id` = 3374 AND `modResource`.`id` IN (3374) )  ORDER BY modResource.id ASC LIMIT 1 "
0.0004120: Could not process query, error #1054: Unknown column 'modResource.id' in 'where clause'
0.0074599: Total time
4 194 304: Memory usage
R2m0x94 (Vasily)
08 октября 2020, 11:05
0
Только вот без этого ace пропадает, но сохраняет, а с ace не сохраняет. Плюс в параметрах
'content'=>[
                'edit'=>[
                    'type'=>'textarea','editor'=>'ace','editor_mode'=>'xml','editor_height'=>'400','editor_theme'=>'idle_fingers'
                ],
и все равно атрибуты не подсовывает
R2m0x94 (Vasily)
08 октября 2020, 10:46
0
В конфиге edit поля таблицы прописать 'editor'=>'ace':
Обновил версию, но редактор так и не подключился
R2m0x94 (Vasily)
08 октября 2020, 10:33
0
Да, это в чанке getTable.EditRow.tpl, напортачил))
<textarea data-editor="xml" data-gutter="1" rows="15"
из-за этого авто сохранение почему-то перестаёт работать
R2m0x94 (Vasily)
08 октября 2020, 09:49
0
Скорей всего это из-за моего шаманства. Сейчас проверю…
R2m0x94 (Vasily)
08 октября 2020, 09:47
0
Да, скрипт assets\components\gettables\js\gettables.js подгружается, а позавчера сохранялось всё норм было
R2m0x94 (Vasily)
08 октября 2020, 09:45
0
да и если просто getTable на странице выводу то перестал автосохранять
R2m0x94 (Vasily)
08 октября 2020, 09:21
0
Можно же выборку сделать через pdoPage с элементом getTable, без pdoTools параметров, или ошибаюсь?

Ещё заметил, что при GetTableFetch в quickview, что некоторые id дублируются аж по 8 штук,
R2m0x94 (Vasily)
08 октября 2020, 09:17
0
Главное, что запись в него не идёт. Хотя есле в инпекторе браузера убрать атрибут readonly, то сохраняет. Я вот, что не понял, когда в quickview выаожу таблицу, то там почему-то не идёт сохранение через GetTablesFetch, может ещё надо какую строку подкрутить?

Ну а в модульном всё сохраняет))
R2m0x94 (Vasily)
08 октября 2020, 00:28
0
там в js 1 строчка кода. я для этого дописал
'readonly': textarea.attr('readonly')
или в конструкторе
'readonly'=>'readonly',
R2m0x94 (Vasily)
07 октября 2020, 23:02
0
Да, getTableFetch выводит в quickview супер-круто. Спасибо
R2m0x94 (Vasily)
07 октября 2020, 21:33
0
А есть, какой-то простой способ редактировать поле (уже из выборки pdo) tv через процессор напрямую из фронтенда?
R2m0x94 (Vasily)
07 октября 2020, 20:53
0
не найдено
0.5348940: toJSON {
    "getTableEditRowTpl": "getTable.EditRow.tpl",
    "getTableFilterTpl": "getTable.Filter.tpl",
    "getTableModalCreateUpdateTpl": "getTable.Modal.CreateUpdate.tpl",
    "getTableNavTpl": "getTable.nav.tpl",
    "getTableOuterTpl": "getTable.outer.tpl",
    "getTableRowTpl": "getTable.row.tpl",
    "getTabsTpl": "getTabs.tpl",
    "limit": 10,
    "outputSeparator": "\n",
    "sortby": "id",
    "sortdir": "ASC",
    "showLog": 1,
    "table": {
        "class": "modResource",
        "actions": {
            "update": {
                "icon": "far fa-edit",
                "processors": {
                    "modResource": "resource\/update"
                }
            }
        },
        "pdoTools": {
            "class": "modResource",
            "parents": 3679,
            "template": 4,
            "includeTVs": "technical_specifications,equipment,videos",
            "where": {
                "template": 4,
                "id": 3690
            },
            "limit": 5
        },
        "checkbox": 0,
        "autosave": 1,
        "row": {
            "id": {
                "custom": {
                    "cls": "red",
                    "icon": "far fa-edit",
                    "tag": "a",
                    "attr": "data-data-tag"
                }
            },
            "content": {
                "edit": {
                    "type": "textarea"
                }
            },
            "technical_specifications": {
                "class": "TV",
                "label": "\u0422\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u0438\u0441\u0442\u0438\u043a\u0438",
                "edit": {
                    "type": "textarea"
                }
            },
            "equipment": {
                "class": "TV",
                "label": "\u041a\u043e\u043c\u043f\u043b\u0435\u043a\u0442 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0438",
                "edit": {
                    "type": "textarea",
                    "where_field": "`TVequipment`.`value`",
                    "search_fields": {
                        "contentid": "id",
                        "tmplvarid": 95
                    },
                    "readonly": 1
                }
            },
            "videos": {
                "class": "TV",
                "label": "\u0412\u0438\u0434\u0435\u043e",
                "edit": {
                    "type": "textarea"
                }
            },
            "alias": {
                "edit": {
                    "readonly": 1
                }
            }
        }
    }
}
0.0000050: __construct
0.0000019: getTables loaded.
0.0000341: cacheConfig
0.0005000: load propertySet getTables_bootstrap_v3
0.0000069: cacheConfig
0.0002151: registerCSS_JS
0.0001290: handleRequest getTable/fetch
0.5363231: Total time
4 194 304: Memory usage
R2m0x94 (Vasily)
07 октября 2020, 20:25
0
// id'шники вывожу на стр.
<div class="quickview-parent"
	data-quickview-mode="modal"
	data-data-action="chunk"
	data-data-element="quickview.tpl"
	data-quickview-loop="true"
	data-quickview-viewhash="true"
	data-dialog-size="size-wide"
	data-dialog-buttons='["prev","next"]'>
	[[!pdoPage?
		&parents=`3679`
		&element=`msProducts`
		&tpl=`@INLINE
		<a class='quickview'
		    data-click
		    data-data-id="[[+id]]"
		    data-quickview-group="product"
		    data-dialog-title="[[+pagetitle]]">[[+pagetitle]]</a>
	`]]
	[[!+page.nav]]
</div>

// В чанке quickview.tpl
    {'!getTable' | snippet : [
    'showLog'=>1,
    'toJSON'=>1,
    'table'=>[
        'class'=>'modResource',
        'actions'=>[
            'update' =>[
                'icon' => 'far fa-edit',
                'processors'=>['modResource'=>'resource/update'],
            ],
        ],
        'pdoTools'=>[
            'class'=>'modResource',
            'parents'=>3679,
            'template'=>4,
            'includeTVs'=>'technical_specifications,equipment,videos',
            'where'=>[
                'template' => 4, 
                'id' => $_modx->resource.id,
            ],
            'limit'=>5,
        ],
        'checkbox'=>0,
        'autosave'=>1,
        'row'=>[
            'id'=>[
                'custom' =>[
                
                'cls'=>'red',
                'icon' => 'far fa-edit',
                'tag' =>'a',
                'attr' => 'data-data-tag',
                ],
            ],
            'content'=>[
                'edit'=>[
                    'type'=>'textarea',
                ],
                
            ],
            'technical_specifications'=>[
                'class'=>'TV',
                'label'=>'Технические характеристики',
                'edit'=>['type'=>'textarea',],
            ],
            'equipment'=>[
                'class'=>'TV',
                'label'=>'Комплект поставки',
                'edit'=>[
                    'type'=>'textarea',
                    'where_field'=>'`TVequipment`.`value`',
                    'search_fields' => [
                        'contentid' => 'id',
                        'tmplvarid' => 95,
                    ],
                    'readonly'=>1,
                ],
                
           ],
           'videos'=>[
                'class'=>'TV',
                'label'=>'Видео',
                'edit'=>['type'=>'textarea',],
            ],
           'alias'=>['edit'=>['readonly'=>1,],],
        ],
    ],
]}
R2m0x94 (Vasily)
07 октября 2020, 20:20
0
А какой синтаксис параметров !getTable вывести их из коробки? Например
[[!getTable? &table=`в фигурных или квадратных?`]]
R2m0x94 (Vasily)
07 октября 2020, 20:16
0
Ну да в модалке можно, просто при ajax пагинации ace слитает
R2m0x94 (Vasily)
07 октября 2020, 20:13
0
Попробовал выводить модалку quickview, а в ней форму редактирования, но не вышло. Взял за основу пример 5.
Окно открылось, но getTable сниппет отдаёт 'не найдено', хоть и в сервис quickview подключил getTable.

...
                            }
            }
        }
    }
}
0.0000050: __construct
0.0000019: getTables loaded.
0.0000191: cacheConfig
0.0004060: getTables init from cache.
0.0004311: load propertySet getTables_bootstrap_v3
0.0000069: cacheConfig
0.0002370: registerCSS_JS
0.0001199: handleRequest getTable/fetch
0.4405050: Total time
2 097 152: Memory usage