Как получить доступ к ExtJS-Variable в шаблоне Shopware?

есть проблема, которую я не могу понять, работая над плагином для Shopware 5.

Это то, над чем я работаю (это моя собственная стихия в мире покупок).

  1. Я определил свой собственный xtype.
  2. В этом объявлении класса xtype я добавил поле с помощью уже существующего ExtJS (CategorySelection). Это поле также используется в среде shoppingworld.
  3. Все существующие категории (и подкатегории) отображаются в списке, когда я перетаскиваю свой собственный элемент shoppingworld в сетку и редактирую конфигурацию (символ карандаша).

Моя проблема: как я могу отобразить выбранную категорию в моем шаблоне внешнего интерфейса? Как я могу сохранить выбранную категорию, чтобы снова отобразить ее, когда я захочу изменить конфигурацию?

С помощью smarty и {debug} я могу видеть, к каким переменным я могу получить доступ в моем шаблоне. Например, в переменной $ data-Variable я вижу переменные, которые я добавил с помощью методов $ component-> createMediaField (...).

Я полагал, что один из возможных вариантов - присвоить переменную представлению в подписчике ($ args-> getView () -> assign ('catSeleted', $ catSelected)).

Это правильный способ сделать это, и если да, то как я могу получить доступ к ExtJS-компоненту, чтобы получить выбранный элемент?

Я знаю, что это базовый вопрос, но я не могу его понять. Заранее спасибо за помощь.


person Langer.197    schedule 27.06.2017    source источник
comment
Не уверен, что я понимаю вашу проблему, вы сохраняете некоторые данные и хотите показать их в интерфейсе для клиентов?   -  person Alexey Palamar    schedule 27.06.2017
comment
Привет, @alexeypalamar, спасибо за ответ. Ты прав. С помощью $ component- ›addMediaField () я могу установить изображение в серверной части (элемент торгового мира) в качестве баннера, и файловый менеджер загружается автоматически. Через Ext.JS и элемент CategorySelection я хочу отобразить выбранную категорию. Отображается поле и отображаются все категории. В конце концов, я хочу разместить на баннере название выбранной категории. Вот для чего предназначен мой плагин. Покупатель должен увидеть баннер с дополнительным текстом элемента мира покупок в том виде, в каком его настроил владелец магазина.   -  person Langer.197    schedule 27.06.2017
comment
Хм, не знаю, что такое$component->addMediaField() .. Это не что-то стандартное. Может быть, вы создаете атрибут Media для эмоций? Может быть, вы можете добавить несколько примеров кода или ссылку на Git, где я могу это увидеть?   -  person Alexey Palamar    schedule 27.06.2017
comment
Я получил это со страницы разработчика (developers.shopware.com / developers-guide / plugin-system /)   -  person Langer.197    schedule 27.06.2017
comment
Найдите эту часть кода: $ vimeoElement- ›createTextField. $ vimeoElement - это то, что я называю $ component. В моем .tpl-файле я могу получить доступ к полю через {$ Data.vimeo_video_id}, и значение этого текстового поля будет напечатано.   -  person Langer.197    schedule 27.06.2017
comment
Правильно ли я понимаю, что ваша проблема: у вас есть int id, но вам нужно получить ссылку на источник для отображения ссылки <img src="{$pathThere}">?   -  person Alexey Palamar    schedule 27.06.2017
comment
Ты прав. У меня действительно работает ‹img src = {$ Data.imglink} /›, так как я могу найти переменную в переменных моего шаблона (умная отладка). Теперь мне нужно выяснить, как добавить переменную extjs в мои переменные шаблона, поскольку поле категории добавляется через extjs, а не через - ›addTextfiel ().   -  person Langer.197    schedule 27.06.2017
comment
Извините, я все еще не понимаю вашу проблему .. ExtJ не имеют никакого отношения к front-end, вам нужно описать, что вы пытаетесь получить. Вы создаете эмоцию с помощью изображения, у вас есть путь для этого изображения, в чем проблема?   -  person Alexey Palamar    schedule 27.06.2017
comment
Но вы можете использовать ExtJS для создания частей вашей конфигурации эмоции для продавцов, не так ли? xtype-creation - это ExtJS, расширяющийся из базы и т.д. Когда я затем настраиваю свои эмоции, мне нужно прочитать конфигурацию из моего ExtJS-Element, чтобы иметь возможность поместить ее в свои вары шаблона (чтобы я мог получить доступ к данным в мой шаблон внешнего интерфейса).   -  person Langer.197    schedule 27.06.2017
comment
Под шаблоном внешнего интерфейса вы подразумеваете шаблон, который будет видеть клиентов в интерфейсе вашего магазина или .tpl в бэкэнде для администратора?   -  person Alexey Palamar    schedule 27.06.2017
comment
Шаблон, который увидят клиенты и который я могу отлаживать с помощью инструментов разработчика Chrome.   -  person Langer.197    schedule 27.06.2017
comment
Извините, мне нужен ваш код, потому что я могу помочь   -  person Alexey Palamar    schedule 28.06.2017


Ответы (1)


Я ценю вашу помощь и усилия, @Alexey Palamar. Наконец-то я заставил его работать, но без ExtJS. Вместо создания полей с помощью ExtJS я использовал поля, предоставленные магазином. См. https://developers.shopware.com/developers-guide/custom-shopping-world-elements/.

person Langer.197    schedule 29.06.2017