gpt4 book ai didi

magento - 将日期选择器添加到自定义模块上的 system.xml

转载 作者:行者123 更新时间:2023-12-02 20:41:28 28 4
gpt4 key购买 nike

如主题中所述,我尝试在自定义模块的“系统”>“配置”区域中添加一个带有日期选择器的日期字段(因此使用 etc/system.xml)。

我试图从下面的帖子中获得灵感: Magento - Add a button to system.xml with method attached to it

但没有成功。

我确信这是创建正确的 block 或方法来创建自定义 html 字段的问题,但我无法阅读 Magento Matrix :)

我陷入了需要对类进行编码的步骤(Datefield.php):

    <?php
class Namespace_Module_Block_Datefield extends Mage_Adminhtml_Block_System_Config_Form_Field {

protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element) {
// ----> Am I wrong in calling ..._Abstract? Should I call Varien_Data_Form_Element_Date? I've tried but no success either...

$this->setElement($element);

$html = // ------------------> what to put here? Call a block or some other method?
->setFormat('d-m-Y')
->setLabel($this->__('Choose date'))
->toHtml();

return $html;
}
}
?>

你有办法做到这一点吗?

非常感谢。埃尔维

最佳答案

编辑 02/19/2014:添加验证

我发现了一种更优雅的方法。实际上,satrun77 方法是可以的,但我们必须在 Varien/Data/Form/Element/中放置一个文件,如果从事该项目的其他人不幸使用相同的文件/类名,该文件可能会被覆盖。此外,我认为这种方法将文件放置在模块目录中,这比将文件分布在整个目录树中要好。

在system.xml中:

<?xml version="1.0" encoding="UTF-8"?>
<config>
....
<fields>
...
<run translate="label">
<label>Date</label>
<frontend_type>text</frontend_type> <!-- Use text instead of "myDateSelection" -->
<frontend_model>module/adminhtml_system_config_date</frontend_model> <!-- Call a module specific renderer model -->
<sort_order>20</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<validate>required-entry</validate> <!-- Optional -->
<show_in_store>1</show_in_store>
</run>
</fields>
...
</config>

创建一个新文件:

应用程序/代码/[本地、社区]/命名空间/模块/ block /Adminhtml/系统/配置/日期

内容如下:

class Namespace_Module_Block_Adminhtml_System_Config_Date extends Mage_Adminhtml_Block_System_Config_Form_Field
{
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
{
$date = new Varien_Data_Form_Element_Date;
$format = Mage::app()->getLocale()->getDateFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT);

$data = array(
'name' => $element->getName(),
'html_id' => $element->getId(),
'image' => $this->getSkinUrl('images/grid-cal.gif'),
);
$date->setData($data);
$date->setValue($element->getValue(), $format);
$date->setFormat(Mage::app()->getLocale()->getDateFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT));
$date->setClass($element->getFieldConfig()->validate->asArray());
$date->setForm($element->getForm());

return $date->getElementHtml();
}
}

关于magento - 将日期选择器添加到自定义模块上的 system.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3660842/

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