Ковыряю исходники Magento, и не могу понять принцип работы моделей..
К примеру, есть 3 класса моделей, наследников Mage_Core_Model_Abstract, Mage_Core_Model_Mysql4_Abstract и Mage_Core_Model_Mysql4_Collection_Abstract
В контролере и в блоках используется только класс наследник Mage_Core_Model_Abstract, но каким-то образом работают и остальные 2 класса??? Откуда идет к ним обращение, каким образом они используются??? Только не бейте сильно, я только начал изучать магенту.
Принцип работы моделей
24.08.2012 21:45
Попробую..
Для примера возьму готовый плагин показа банеров
Контролер
Блок 'banner/bannergroup'
Этот блок можно сказать пустой, только заголовки и кнопки выводит. Как к нему другие блоки подключаются, которые непосредственно таблицу с данными выводят..?
Для примера возьму готовый плагин показа банеров
Контролер
class Uni_Banner_Adminhtml_BannergroupController extends Mage_Adminhtml_Controller_action {
protected function _initAction() {
$this->loadLayout()
->_setActiveMenu('banner/items')
->_addBreadcrumb(Mage::helper('adminhtml')->__('Items Manager'), Mage::helper('adminhtml')->__('Item Manager'));
$id = $this->getRequest()->getParam('id');
$model = Mage::getModel('banner/bannergroup')->load($id);
if ($model->getId() || $id == 0) {
$data = Mage::getSingleton('adminhtml/session')->getFormData(true);
if (!empty($data)) {
$model->setData($data);
}
}
Mage::register('bannergroup_data', $model);
return $this;
}
public function indexAction() {
$this->_initAction()
->renderLayout();
}
}Блок 'banner/bannergroup'
class Uni_Banner_Block_Adminhtml_Bannergroup extends Mage_Adminhtml_Block_Widget_Grid_Container {
public function __construct() {
$this->_controller = 'adminhtml_bannergroup';
$this->_blockGroup = 'banner';
$this->_headerText = Mage::helper('banner')->__('Banner Group Manager');
$this->_addButtonLabel = Mage::helper('banner')->__('Add Banner Group');
parent::__construct();
}
}Этот блок можно сказать пустой, только заголовки и кнопки выводит. Как к нему другие блоки подключаются, которые непосредственно таблицу с данными выводят..?
24.08.2012 22:06
Каким образом на странице выводится grid описанный в классе
class Uni_Banner_Block_Adminhtml_Bannergroup_Grid extends Mage_Adminhtml_Block_Widget_Grid
если этого класса ни в контролере ни блоке Uni_Banner_Block_Adminhtml_Bannergroup нет..
class Uni_Banner_Block_Adminhtml_Bannergroup_Grid extends Mage_Adminhtml_Block_Widget_Grid
если этого класса ни в контролере ни блоке Uni_Banner_Block_Adminhtml_Bannergroup нет..

Вход
Регистрация
Помощь

