Как сделать собственный Фронтенд-Формы с помощью Magento 1.6.2 - PullRequest
0 голосов
/ 02 февраля 2012

Я сделал небольшое расширение для Magento 1.6.2. Мне удалось написать код в бэкэнд-системе для создания модели EAV в базе данных, и я могу записывать / читать элементы из нее, как в этом руководстве: http://www.pierrefay.com/magento-admin-gridview-85

Как я могу использовать следующие формы в frontendsystem, .. Я вижу, что есть классы не такие, как 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();
    }

}

?>

Ответы [ 2 ]

2 голосов
/ 03 февраля 2012

Вы должны взглянуть на Zend_Form , который появился после первоначальной реализации формы Magento / Varien.

2 голосов
/ 02 февраля 2012

Не возможно из коробки, все формы интерфейса magento жестко закодированы. Как вы можете видеть в классе, который вы указали, он является частью модуля Adminhtml (Mage_Adminhtml_Block_Widget_Form), который предназначен для панели администратора в magento.

Объем разработки для интеграции класса формы, как в вашем коде, не стоит времени или гибкости жестко закодированной интерфейсной формы ... в большинстве случаев. Если бы большинство ваших дальнейших разработок вращалось вокруг форм, то я бы пересмотрел создание абстрактных классов форм, чтобы помочь в создании ваших форм через контроллер.

На более высокой ноте Magento действительно предоставляет достаточно приличную систему проверки JavaScript для вашего интерфейса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...