Magento - добавление нового поля в опциях товара в админке - PullRequest
1 голос
/ 26 января 2010

Я бы хотел добавить новую вкладку на страницу «Каталог-> Управление продуктами-> Информация о продукте» в админке. Под вкладкой «Изображения» я хотел бы добавить новую вкладку для видео с простым вводом текста для добавления URL-адреса видео, которое я затем могу получить для внешнего интерфейса.

Кто-нибудь есть идеи, где файлы, которые мне нужно редактировать? Я искал последние пару часов без радости. Я нашел список текущих опций в Mage_Catalog_Model_Resource_Eav_Mysql4_Setup, но не могу понять, как их добавить ...

Похоже, что он получен от Mage_Adminhtml_Block_Catalog_Product_Edit_Tabs. Если я скопирую один из разделов вкладок здесь и изменит название на «Видео», я смогу отобразить его на вкладках слева. Но как мне добавить опции для этого?

Ответы [ 2 ]

3 голосов
/ 26 января 2010

По звукам вы пытаетесь создать собственное поле и добавить его в данные своего каталога. Хорошая новость заключается в том, что для этого вам не нужно разбираться в PHP.

Перейдите в каталог -> Атрибуты -> Управление атрибутами и создайте для себя новый атрибут под названием «Видео URL» (или что-то в этом роде). Вероятно, это будет текстовое поле, и вы можете скрыть его от сравнения в веб-интерфейсе сайта (выберите «Нет» для всех этих полей в нижней части формы).

Как только вы создали атрибут, вам нужно будет добавить его в набор атрибутов. Если все ваши продукты относятся к одному «типу», и если вы не создали никаких других наборов атрибутов, это должен быть только один шаг. Перейдите в каталог -> Атрибуты -> Управление наборами атрибутов и создайте «Новую группу» под названием «Видео» и перетащите в нее новый атрибут URL-адреса видео. Сохраните набор атрибутов, и теперь у вас должна появиться новая вкладка.

Единственное осложнение из того, что я прочитал в вашем посте, это размещение его под вкладкой изображений. Magento добавляет несколько вкладок статически (длинный путь в PHP) и обычно не подчиняется порядку групп вкладок. Рассмотрим компромисс по времени.

Надеюсь, это поможет. Спасибо,

Джо

1 голос
/ 26 января 2010

В соответствии с вашими другими комментариями, для URL будет работать простой атрибут, но файлы будут более сложными. Чтобы добавить пользовательскую вкладку, как вы сказали, вы можете отредактировать (или, в случае плагина, переопределить) Mage_Adminhtml_Block_Catalog_Product_Edit_Tabs::_prepareLayout и добавить вкладку. Вам нужно добавить блок или шаблон для отображения содержимого вкладки.

После этого вам нужно где-то хранить данные. Посмотрев на Adminhtml/controllers/ProductController, вы сможете подключиться к событию catalog_product_prepare_save, чтобы получить данные из $event->getRequest() и перенести их в продукт или сохранить другой объект по мере необходимости.

Я не уверен, насколько хорошо семантика сохранения файлов будет работать на продукте, поэтому вы можете создать собственное хранилище данных в расширении, а затем предоставить что-то вроде getVideoForProduct метода для его извлечения.

Тогда единственное, что осталось сделать, - это изменить файл шаблона catalog/product/view.phtml, включив в него свои пальцы, и создать контроллер в своем расширении, чтобы обеспечить модальный режим с видео (или сделать это в JS).

Я знаю, что это немного общий ответ, но это грубый путь, который вам нужно будет использовать для вкладок. Дайте мне знать, если какая-то конкретная часть этого неясна.

Спасибо, Джо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...