I'm using Magento 1.9.0.1 and right now i'm developing a new magento extension.
So far i've created new adminhtml page with grid table that is fetching data from custom MySQL table:
Here is the page:
![enter image description here][1]
This page is fetching data from custom MySQL table VivasIndustries_SmsNotification here is the structure of it:
![enter image description here][2]
Let me show you my extension files:
I have in: /app/code/community/VivasIndustries/SmsNotification/etc/config.xml:
<?xml version="1.0"?> <config> <modules> <VivasIndustries_SmsNotification> <version>0.1.0</version> </VivasIndustries_SmsNotification> </modules> <global> <models> <smsnotification> <class>VivasIndustries_SmsNotification_Model</class> <resourceModel>vivasindustries_smsnotification_resource</resourceModel> </smsnotification> <vivasindustries_smsnotification_resource> <class>VivasIndustries_SmsNotification_Model_Resource</class> <entities> <smsnotification> <table>VivasIndustries_SmsNotification</table> </smsnotification> </entities> </vivasindustries_smsnotification_resource> </models> <resources> <smsnotification_setup> <setup> <module>VivasIndustries_SmsNotification</module> </setup> <connection> <use>core_setup</use> </connection> </smsnotification_setup> <smsnotification_read> <connection> <use>core_read</use> </connection> </smsnotification_read> <smsnotification_write> <connection> <use>core_write</use> </connection> </smsnotification_write> </resources> <events> <sales_order_save_after> <observers> <vivasindustries_smsnotification> <class>smsnotification/observer</class> <method>orderSaved</method> </vivasindustries_smsnotification> </observers> </sales_order_save_after> </events> <helpers> <smsnotification> <class>VivasIndustries_SmsNotification_Helper</class> </smsnotification> </helpers> <blocks> <smsnotification> <class>VivasIndustries_SmsNotification_Block</class> </smsnotification> </blocks> </global> <adminhtml> <acl> <resources> <all> <title>Allow Everything</title> </all> <admin> <children> <system> <children> <config> <children> <vivas> <title>Vivas - All</title> </vivas> </children> </config> </children> </system> </children> </admin> </resources> </acl> </adminhtml> <admin> <routers> <adminhtml> <args> <modules> <VivasIndustries_SmsNotification before="Mage_Adminhtml">VivasIndustries_SmsNotification_Adminhtml</VivasIndustries_SmsNotification> </modules> </args> </adminhtml> </routers> </admin> </config> Here is what i have in: /app/code/community/VivasIndustries/SmsNotification/Block/Adminhtml/Sms/Status.php:
<?php class VivasIndustries_SmsNotification_Block_Adminhtml_Sms_Status extends Mage_Adminhtml_Block_Widget_Grid_Container { public function __construct() { $this->_blockGroup = 'smsnotification'; $this->_controller = 'adminhtml_sms_status'; $this->_headerText = Mage::helper('smsnotification')->__('Send SMS on Order Status Changes'); $this->_addButtonLabel = Mage::helper('smsnotification')->__('Create new SMS Rule'); parent::__construct(); } protected function _prepareLayout() { $this->setChild( 'grid', $this->getLayout()->createBlock( $this->_blockGroup.'/' . $this->_controller . '_grid', $this->_controller . '.grid')->setSaveParametersInSession(true) ); return parent::_prepareLayout(); } } Here is what i have in: /app/code/community/VivasIndustries/SmsNotification/Block/Adminhtml/Sms/Status/Grid.php:
<?php class VivasIndustries_SmsNotification_Block_Adminhtml_Sms_Status_Grid extends Mage_Adminhtml_Block_Widget_Grid { public function __construct() { parent::__construct(); $this->setId('smsnotification_grid'); $this->setDefaultSort('id'); $this->setDefaultDir('DESC'); $this->setSaveParametersInSession(true); $this->setUseAjax(true); } protected function _prepareCollection() { $collection = Mage::getResourceModel('smsnotification/smsnotification_collection'); $this->setCollection($collection); return parent::_prepareCollection(); } protected function _prepareColumns() { $this->addColumn('id', array( 'header' => Mage::helper('smsnotification')->__('ID'), 'align' =>'right', 'width' => '50px', 'index' => 'id', )); $this->addColumn('Receiver', array( 'header' => Mage::helper('smsnotification')->__('Receiver'), 'align' =>'left', 'index' => 'Receiver', )); $this->addColumn('Phone', array( 'header' => Mage::helper('smsnotification')->__('Phone'), 'align' =>'left', 'index' => 'Phone', )); $this->addColumn('Date', array( 'header' => Mage::helper('smsnotification')->__('Date'), 'align' =>'left', 'index' => 'Date', )); return parent::_prepareColumns(); } public function getRowUrl($row) { return $this->getUrl('*/*/edit', array('id'=>$row->getId())); } } Here is what i have in: /app/code/community/VivasIndustries/SmsNotification/controllers/Adminhtml/SmsorderstatusesController.php:
<?php class VivasIndustries_SmsNotification_Adminhtml_SmsorderstatusesController extends Mage_Adminhtml_Controller_Action { public function indexAction() { $this->_title($this->__('SMS Center'))->_title($this->__('SMS Center')); $this->loadLayout(); $this->_setActiveMenu('vivassms'); $this->_addContent($this->getLayout()->createBlock('smsnotification/adminhtml_sms_status')); $this->renderLayout(); } public function gridAction() { $this->loadLayout(); $this->getResponse()->setBody( $this->getLayout()->createBlock('smsnotification/adminhtml_sms_status_grid')->toHtml() ); } public function newAction() { $this->loadLayout(); $this->_setActiveMenu('vivassms'); $this->renderLayout(); } public function editAction() { $this->_initAction(); // Get id if available $id = $this->getRequest()->getParam('id'); $model = Mage::getModel('smsnotification/smsnotification'); $this->_initAction() ->_addBreadcrumb($id ? $this->__('Edit Baz') : $this->__('New Baz'), $id ? $this->__('Edit Baz') : $this->__('New Baz')) ->_addContent($this->getLayout()->createBlock('smsnotification/adminhtml_sms_status_edit')->setData('action', $this->getUrl('*/*/save'))) ->renderLayout(); } protected function _initAction() { $this->loadLayout() // Make the active menu match the menu config nodes (without 'children' inbetween) ->_setActiveMenu('vivassms') ->_title($this->__('Sales'))->_title($this->__('Baz')) ->_addBreadcrumb($this->__('Sales'), $this->__('Sales')) ->_addBreadcrumb($this->__('Baz'), $this->__('Baz')); return $this; } protected function _isAllowed() { return Mage::getSingleton('admin/session')->isAllowed('sales/foo_bar_baz'); } } Right now when i click on Create new SMS Rule button i get blank page like this:
![enter image description here][3]
What i want to achieve is:
- I want to display in the blank page shown above 3 input fields (Receiver, Phone, Date) in which i can insert data.
- I want to have
Savebutton and i hit it. The data entered in the 3 fields i want to be saved in the MySQL tableVivasIndustries_SmsNotification.
Why i receive a blank page when i click on Create new SMS Rule and how can i make what i want in the two points above?
Thanks in advance!