Forma non appare su adminhtml
Domanda
Ecco la mia struttura della cartella per il mio blocco:
Product
| - Form.php
Product.php
.
Il modulo del prodotto è un contenitore di forma che dovrebbe avviare il modulo memorizzato all'interno del prodotto -> form.php
Tuttavia, sebbene Product.php
stia caricando bene, il Product -> Form.php
non sembra apparire.Ho una semplice configurazione del modulo, con un semplice campo sulla richiesta di un prodotto SKU.Il fieldset né il modulo è contenuto all'interno è caricamento sulla pagina.
<?php
/**
* Form for Warehouse Products.
* Loads individual items that make up the form itself.
*
* @author Dan Hanly
**/
class Company_Module_Block_Adminhtml_Warehouse_Edit_Product_Form extends Mage_Adminhtml_Block_Widget_Form
{
public $_id; // Identifier of the block
public $_title; // Title of the block
public $_form; // Varien_Data_Form
/**
* Init class
*/
public function __construct()
{
parent::__construct();
$this->_id = 'product_form';
$this->_title = $this->__('Product Information');
}
/**
* Setup form fields for inserts/updates
*
* @return Mage_Adminhtml_Block_Widget_Form
* @author Dan Hanly
*/
public function _prepareForm()
{
$model = Mage::registry('module_warehouse');
$request = $this->getRequest();
$this->_form = $this->createForm($this->getUrl('*/*/save', $this->getUrlParameters($request)));
$this->setForm($this->_form);
$fieldset = $this->_form->addFieldset('base_fieldset', array(
'legend' => $this->_title,
'class' => 'fieldset-wide',
));
if ($this->isEdit($request)) {
$fieldset->addField('id', 'hidden', array(
'name' => 'id',
));
}
$fieldset->addField('warehouse_id', 'hidden', array(
'name' => 'warehouse_id',
'value' => Mage::registry('module_warehouse')->getId()
));
$fieldset->addField('product_id', 'text', array(
'name' => 'product_id',
'label' => $this->__('Choose Product'),
'value' => $this->__('Choose Product'),
));
return parent::_prepareForm();
}
.
Non c'è niente di rilevante nei tronchi che alludirebbero a questo.
Modifica
Ho chiarito la mia domanda per spogliare parti irrilevanti che erano irrilevanti.
Soluzione
Ho risolto il problema.
In sostanza, Magento cerca automaticamente il modulo di un contenitore di forma all'interno di una cartella di modifica. Quindi, come il mio modulo è stato memorizzato nella cartella del prodotto, non è stato visualizzato.
C'è una variabile di classe nella classe Mage_Adminhtml_Block_Widget_Form_Container
chiamata $this->_mode
.Questa variabile valori predefinita su 'edit'
: questo da solo influenza la ricerca del contenitore della forma per una classe nella cartella Modifica.
All'interno della mia classe Container Class, sono stato in grado di sovrascrivere la variabile _Mode, fornendo 'product'
come valore.Ora, tutto è collegato come dovrebbe essere.