gpt4 book ai didi

magento - 如何在 magento 管理表单中显示上传的文件名?

转载 作者:行者123 更新时间:2023-12-05 08:24:12 29 4
gpt4 key购买 nike

如何在 magento 自定义模块表单成功上传文件后显示上传的文件名或链接。我附上了屏幕截图以便清楚地理解。请帮助 enter image description here

最佳答案

为此,您需要为表单中的 file 输入自定义渲染器。为此创建以下类:

<?php
class {{Namespace}}_{{Module}}_Block_Adminhtml_{{Entity}}_Helper_File extends Varien_Data_Form_Element_Abstract{
public function __construct($data){
parent::__construct($data);
$this->setType('file');
}
public function getElementHtml(){
$html = '';
$this->addClass('input-file');
$html.= parent::getElementHtml();
if ($this->getValue()) {
$url = $this->_getUrl();
if( !preg_match("/^http\:\/\/|https\:\/\//", $url) ) {
$url = Mage::getBaseUrl('media').'{{entity}}'.'/'.'file' . $url; //replace this with the path to the file if you upload it somewhere else
}
$html .= '<br /><a href="'.$url.'">'.$this->_getUrl().'</a> ';
}
$html.= $this->_getDeleteCheckbox();
return $html;
}
protected function _getDeleteCheckbox(){
$html = '';
if ($this->getValue()) {
$label = Mage::helper('{{module}}')->__('Delete File');
$html .= '<span class="delete-image">';
$html .= '<input type="checkbox" name="'.parent::getName().'[delete]" value="1" class="checkbox" id="'.$this->getHtmlId().'_delete"'.($this->getDisabled() ? ' disabled="disabled"': '').'/>';
$html .= '<label for="'.$this->getHtmlId().'_delete"'.($this->getDisabled() ? ' class="disabled"' : '').'> '.$label.'</label>';
$html .= $this->_getHiddenInput();
$html .= '</span>';
}
return $html;
}
protected function _getHiddenInput(){
return '<input type="hidden" name="'.parent::getName().'[value]" value="'.$this->getValue().'" />';
}
protected function _getUrl(){
return $this->getValue();
}
public function getName(){
return $this->getData('name');
}
}

然后您需要告诉您将其用于文件输入。因此,在您的编辑表单选项卡中,在定义字段集后立即添加:

$fieldset->addType('file', Mage::getConfig()->getBlockClassName('{{module}}/adminhtml_{{entity}}_helper_file'));

用适当的值替换 {{Namespace}}、{{Module}} 和 {{Entity}}
Namespace 是您的模块的 namespace (D'uh),Module 是您的模块的名称(又是 D'uh),而 Entity 是您正在管理的内容。可以是文章新闻文件....
[编辑]
您可以使用 this module creator 构建您的模块.它会处理这类问题。
注意:我希望这不是 self 推销。该扩展程序是免费的,我不会从中获得任何经济利益。

关于magento - 如何在 magento 管理表单中显示上传的文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19288230/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com