Кнопка добавления Pimcore на панель в редакторе объектов - PullRequest
0 голосов
/ 04 ноября 2019

Я хочу добавить кнопку на панели в моем собственном редакторе объектов. Мне удалось добавить значок и обработчик в редакторе объектов, как в примере документации. Но я хочу добавить кнопку где-нибудь на панели под редактором. Как мне узнать, какой файл js расширить, чтобы я мог создать кнопку меню.

https://talk.pimcore.org/uploads/default/optimized/2X/7/725a347773479a7136600daeee66d7883ed19ae7_2_487x500.png

IЯ пытался расширить класс объекта, и я хочу знать, какая функция выполняется, чтобы добавить мою кнопку на эту панель инструментов

`pimcore.plugin.celumImage = Class.create(pimcore.plugin.admin, {
 postOpenObject: function (object, type) {
        console.log("dsdsd"+object.data.general.o_className);
            object.toolbar.add({
                text: t('show-pdf'),
                iconCls: 'pimcore_icon_pdf',
                scale: 'small',
                handler: function (obj) {
                    //do some stuff here, e.g. open a new window with an PDF download
                }.bind(this, object)
            });
            pimcore.layout.refresh();
    },
});`

Можете ли вы получить здесь панель вкладок или я хочу расширить класс объекта, чтобы яМожно добавить кнопку на изображении

1 Ответ

1 голос
/ 07 ноября 2019

Поскольку вы не опубликовали полное определение класса, я могу только оценить, как должен выглядеть javascript. Вы можете использовать следующее, если у вас есть только одна простая табуляция:

postOpenObject: function (object, type) {
    object.tabPanel
        .getComponent(0) // get object tab
        .getComponent(1) // get edit tabpanel
        .getComponent(0) // get class tab
        .getComponent(3) // get fourth tab in class tabpanel
        .query("*[componentCls~=object_field]")[0] // get first panel with class "object_field" - could be replaced with down(...)
        .getDockedComponent(0) // get toolbar
        .add({
            text: t('show-pdf'),
            iconCls: 'pimcore_icon_pdf',
            scale: 'small',
            handler: function (obj) {
                //do some stuff here, e.g. open a new window with an PDF download
            }.bind(this, object)
        });
})

В зависимости от сложности (или сложности) компоновки вашего объекта данных, вы можете удалить вызовы getComponent() и просто перейтис вызовом down() для тега объектов.

Обязательно измените код, если вы измените макет класса, а также рассмотрите возможность адаптации кода выше, если вы используете пользовательских макетов для каждого макета, если это необходимо.

Вы также можете взглянуть на документацию Ext.js для компонента Panel , просто найдите вызванные методы.

...