【问题标题】:How to make own frontend-Forms with Magento 1.6.2如何使用 Magento 1.6.2 制作自己的前端表单
【发布时间】:2012-02-02 17:18:47
【问题描述】:

我为 Magento 1.6.2 做了一个小扩展。我设法在后端系统中编写代码来为数据库创建 EAV 模型,我可以像本教程一样从中写入/读取项目:http://www.pierrefay.com/magento-admin-gridview-85

如何在前端系统中使用以下表单,.. 我看到没有像 Mage_Adminhtml_Block_Widget_Form 这样的类。我不想使用自己的 HTML 结构,想要得到我想要的 Magento 外观。有谁知道如何在 magento 前端使用 magento 类制作自己的表单?

class Extension_Name_Adminhtml_Printcatalog_Edit_General_Form extends Mage_Adminhtml_Block_Widget_Form
{

    protected function _prepareForm()
    {
        $form = new Varien_Data_Form();
        $this->setForm($form);
        $fieldset = $form->addFieldset('printcatalog_form',
                        array( 'legend' => __('Allgemeine Informationen')));

        $fieldset->addField('catalog_name', 'text',
                array(
                    'label' => __('Katalogname'),
                    'class' => 'required-entry',
                    'required' => true,
                    'name' => 'catalog_name',
        ));

        $fieldset->addField('release_date', 'text',
                array(
                    'label' => __('Erscheinungsdatum'),
                    'class' => 'required-entry',
                    'required' => true,
                    'name' => 'release_date',
//                                        'image'  => Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN).'/adminhtml/default/default/images/grid-cal.gif',
//                                        'format' => 

Mage::app()->getLocale()->getDateFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT), 
            ));

        if (Mage::registry('printcatalog_data'))
        {
            $form->setValues(Mage::registry('printcatalog_data')->getData());
        }

        return parent::_prepareForm();
    }

}

?>

【问题讨论】:

    标签: forms magento frontend


    【解决方案1】:

    不可能开箱即用,所有 magento 前端表单都是硬编码的。正如您在提供的课程中看到的那样,它是 Adminhtml 模块 (Mage_Adminhtml_Block_Widget_Form) 的一部分,该模块用于 magento 中的管理仪表板。

    在您的代码中集成表单类的开发量不值得硬编码前端表单的时间或灵活性......在大多数情况下。如果您的大部分持续开发都围绕表单进行,那么我会重新考虑构建抽象表单类以帮助通过控制器创建表单。

    更重要的是,Magento 确实为您的前端提供了相当不错的 javascript 验证系统。

    【讨论】:

    • “在前端使用面向对象的表单类会破坏模块、布局、模板和块之间的关系”是不正确的说法。 Adminhtml 通过与前端相同的渲染引擎进行渲染,all 模板通过块类进行渲染。
    【解决方案2】:

    您应该查看 Zend_Form,它是在 Magento/Varien 的原始表单实现之后出现的。

    【讨论】:

      猜你喜欢
      • 2016-07-01
      • 2012-03-22
      • 1970-01-01
      • 2011-08-15
      • 1970-01-01
      • 2019-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多