Ковыряю исходники 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 нет..