我正在嘗試爲一個圖庫構建一個小部件,因爲我所看到的所有模塊都沒有真正做到我所追求的目標,小部件看起來像是一種前進的方式,可以讓最終用戶對佈局進行很好且簡單的控制。如何將文件上傳的magento窗體設置爲enctype =「multipart/form-data」?
所以到目前爲止,我跟着的Magento如何讓一個小部件教程:
http://www.magentocommerce.com/knowledge-base/entry/tutorial-creating-a-magento-widget-part-2/
這也使我建立了我所需要的文件,並有東西在後端的認可。
現在我可以通過下面的代碼添加圖片上傳字段,但是文件沒有上傳,這似乎是由於enctype =「multipart/form-data」在添加文件字段時未自動設置。
所以我環顧四周,似乎你可以添加一個輔助塊用於微形式
本地/ 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>
所以之後我加入我的助手塊進入上述xml的params部分,我在WebsiteDevelopment/GalleryWidget/Block/Adminhtml/Edit/Form.php創建了我的幫助器(我認爲它應該在哪裏,我仍然不確定塊是否必須位於特定結構中像這樣用於後端),然後添加以下代碼
WebsiteDevelopment/GalleryWidget /座/ 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();
}
}
明顯的形式將需要更多的一些屬性,充分工作,但我只是希望得到的形式,以便我能有些不同的屬性確保該塊已被應用。
因此,當我進入後端時,帶有幫助器的表單仍然沒有enctype,並且我不確定我的幫助器塊是否被加載,或者它是否被加載,以及它是否沒有效果。
我是以正確的方式處理這個問題嗎?
如果你想創建一個具有相冊,並在多個頁面蔓延話,我不會用一個小部件的圖片庫。我只會使用一個小部件,如果您只想在1頁格式化很好的多頁圖像。 我會創建一個自定義模塊,它有一個數據庫表來存儲數據和控制器允許移動通過畫廊。我爲一個客戶端做了這個,並模仿了管理界面的類別,以允許創建相冊和圖像。 – 2011-12-14 22:27:40