Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将magento小部件窗体设置为enctype=";“多部分/表单数据”;上传文件?_Magento_File Upload_Widget - Fatal编程技术网

如何将magento小部件窗体设置为enctype=";“多部分/表单数据”;上传文件?

如何将magento小部件窗体设置为enctype=";“多部分/表单数据”;上传文件?,magento,file-upload,widget,Magento,File Upload,Widget,我正在尝试为一个画廊制作一个小部件,因为我看到的所有模块都没有真正做到我想要的,小部件似乎是让最终用户对放置进行轻松控制的前进方向 到目前为止,我已经学习了Magento如何制作小部件教程: 这使我能够设置所需的文件,并在后端识别内容 现在,我可以通过下面的代码添加图像上载字段,但文件没有上载,这似乎是由于添加文件字段时未自动设置enctype=“multipart/form data” 所以我四处看了看,似乎可以为小部件表单添加一个helper块 local/WebsiteDevelopme

我正在尝试为一个画廊制作一个小部件,因为我看到的所有模块都没有真正做到我想要的,小部件似乎是让最终用户对放置进行轻松控制的前进方向

到目前为止,我已经学习了Magento如何制作小部件教程:

这使我能够设置所需的文件,并在后端识别内容

现在,我可以通过下面的代码添加图像上载字段,但文件没有上载,这似乎是由于添加文件字段时未自动设置enctype=“multipart/form data”

所以我四处看了看,似乎可以为小部件表单添加一个helper块

local/WebsiteDevelopment/GalleryWidget/etc/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> 

旗帜画廊
添加一个全页面宽度的库
启用的服务
1.
1.
多选
网站开发\u GalleryWidget\u模型\u服务
网站开发/GalleryWidget\u Adminhtml\u编辑\u表单
前端模板
1.
1.
选择
GalleryWidget/view.phtml
文本链接
图像一
横幅的第一个图像
1.
形象
因此,在我将helper块添加到上面xml的params部分之后,我在WebsiteDevelopment/GalleryWidget/block/Adminhtml/Edit/Form.php(我认为它应该在哪里,我仍然不确定块是否必须在像这样的特定结构中才能在后端使用)创建我的helper,然后添加以下代码

网站开发/GalleryWidget/Block/Adminhtml/Edit/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();
    }
}

表单应按如下方式初始化:

protected function _prepareForm()
{
    $form = new Varien_Data_Form(array(
                                  'id' => 'edit_form',
                                  'action' => $this->getUrl('*/*/save', array('id' => $this->getRequest()->getParam('id'),'store' => $this->getRequest()->getParam('store'))),
                                  'method' => 'post',
                                  'enctype' => 'multipart/form-data'
                               ));
    $form->setUseContainer(true);
    $this->setForm($form);
    return parent::_prepareForm();
}

如果您试图创建一个包含相册并分布在多个页面上的图像库,那么我不会使用小部件。我只会使用一个小部件,如果你只是想在一个页面上播放多个格式很好的图像。我将创建一个自定义模块,该模块具有一个数据库表来存储数据,并具有允许在库中移动的控制器。我为一个客户端做了这项工作,并模拟了类别的管理界面,以允许创建相册和图像。