Я пытаюсь создать виджет для галереи, так как все модули, которые я видел, на самом деле не выполняют то, что мне нужно, и виджеты кажутся способом продвижения вперед, позволяющим конечному пользователю легко и удобно управлять размещением.
До сих пор я следовал Magento, как сделать учебник для виджетов:
http://www.magentocommerce.com/knowledge-base/entry/tutorial-creating-a-magento-widget-part-2/
, который позволил мне настроить нужные мне файлы и распознать вещи на заднем плане.
Теперь я могу добавить поле загрузки изображения с помощью приведенного ниже кода, но файл не загружается, похоже, это происходит из-за того, что enctype = "multipart / form-data" не устанавливается автоматически при добавлении поля файла.
Итак, я посмотрел и, кажется, вы можете добавить вспомогательный блок для формы виджета
местный / WebsiteDevelopment / GalleryWidget / и т.д. / Widget.xml
<?xml version="1.0"?>
<widgets>
<WebsiteDevelopment_GalleryWidget type="widgets/list" translate="name description" module="GalleryWidget">
<name>Banner Gallery</name>
<description>Adds a full page width gallery</description>
<parameters>
<enabled_services>
<label>Enabled Services</label>
<visible>1</visible>
<required>1</required>
<type>multiselect</type>
<source_model>WebsiteDevelopment_GalleryWidget_Model_Services</source_model>
</enabled_services>
<helper_block>
<type>WebsiteDevelopment/GalleryWidget_Adminhtml_Edit_Form</type>
</helper_block>
<template translate="label">
<label>Frontend Template</label>
<visible>1</visible>
<required>1</required>
<type>select</type>
<values>
<text translate="label">
<value>GalleryWidget/view.phtml</value>
<label>Text Links</label>
</text>
</values>
</template>
<image>
<label>Image One</label>
<description>The first image for the banner</description>
<visible>1</visible>
<type>image</type>
</image>
</parameters>
</WebsiteDevelopment_GalleryWidget>
</widgets>
поэтому после того, как я добавлю свой блок помощников в раздел params в xml выше, я создаю свой помощник в WebsiteDevelopment / GalleryWidget / Block / Adminhtml / Edit / Form.php (который, я думаю, там, где и должен быть, я все еще не уверен должен ли блок быть в определенной структуре, подобной этой, для использования в бэкэнде), а затем добавить следующий код
WebsiteDevelopment / GalleryWidget / Block / Adminhtml / Редактировать / form.php
<?php
class WebsiteDevelopment_GalleryWidget_Block_Adminhtml_Edit_Form extends Mage_Adminhtml_Block_Widget_Form
{
protected function _prepareForm()
{
$form = new Varien_Data_Form(array(
'id' => 'edit_form',
'enctype' => 'multipart/form-data'
));
$form->setUseContainer(true);
$this->setForm($form);
return parent::_prepareForm();
}
}
очевидно, что форме понадобятся еще некоторые атрибуты для полноценной работы, но я просто надеялся добавить в форму несколько других атрибутов, чтобы убедиться, что блок применяется.
Так что в тот момент, когда я захожу в бэк-энд, форма с помощником не имеет еще энтипа, и я не уверен, загружен ли мой вспомогательный блок или нет, и он просто не имеет никакого эффекта.
Правильно ли я это делаю или нет?