Msg91 - Version 1.0.0

Version Notes

Magento Msg91

Download this release

Release Info

Developer Egrove
Extension Msg91
Version 1.0.0
Comparing to
See all releases


Version 1.0.0

Files changed (56) hide show
  1. app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Customnotification.php +18 -0
  2. app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Customnotification/Edit.php +47 -0
  3. app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Customnotification/Edit/Form.php +19 -0
  4. app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Customnotification/Edit/Tab/Form.php +172 -0
  5. app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Customnotification/Edit/Tabs.php +24 -0
  6. app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Customnotification/Grid.php +96 -0
  7. app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Log.php +15 -0
  8. app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Log/Edit.php +43 -0
  9. app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Log/Edit/Form.php +19 -0
  10. app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Log/Edit/Tab/Form1.php +47 -0
  11. app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Log/Edit/Tabs.php +24 -0
  12. app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Log/Grid.php +132 -0
  13. app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Log/Renderer/Date.php +20 -0
  14. app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Log/Renderer/Reason.php +23 -0
  15. app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Notificationlog.php +15 -0
  16. app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Notificationlog/Edit.php +43 -0
  17. app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Notificationlog/Edit/Form.php +19 -0
  18. app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Notificationlog/Edit/Tab/Form1.php +42 -0
  19. app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Notificationlog/Edit/Tabs.php +24 -0
  20. app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Notificationlog/Grid.php +128 -0
  21. app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Notificationlog/Renderer/Date.php +20 -0
  22. app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Notificationlog/Renderer/Reason.php +23 -0
  23. app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Notificationlog/Renderer/Scheduledate.php +20 -0
  24. app/code/local/Modulebazaar/Msg91/Helper/Data.php +323 -0
  25. app/code/local/Modulebazaar/Msg91/Model/.Observer.php.swp +0 -0
  26. app/code/local/Modulebazaar/Msg91/Model/Customerschedule.php +143 -0
  27. app/code/local/Modulebazaar/Msg91/Model/Customnotification.php +42 -0
  28. app/code/local/Modulebazaar/Msg91/Model/Log.php +9 -0
  29. app/code/local/Modulebazaar/Msg91/Model/Mysql4/Customnotification.php +10 -0
  30. app/code/local/Modulebazaar/Msg91/Model/Mysql4/Customnotification/Collection.php +19 -0
  31. app/code/local/Modulebazaar/Msg91/Model/Mysql4/Log.php +8 -0
  32. app/code/local/Modulebazaar/Msg91/Model/Mysql4/Log/Collection.php +8 -0
  33. app/code/local/Modulebazaar/Msg91/Model/Mysql4/Notificationlog.php +8 -0
  34. app/code/local/Modulebazaar/Msg91/Model/Mysql4/Notificationlog/Collection.php +8 -0
  35. app/code/local/Modulebazaar/Msg91/Model/Notificationlog.php +9 -0
  36. app/code/local/Modulebazaar/Msg91/Model/Observer.php +579 -0
  37. app/code/local/Modulebazaar/Msg91/Model/Status.php +15 -0
  38. app/code/local/Modulebazaar/Msg91/Model/System/Config/Source/Routevalues.php +33 -0
  39. app/code/local/Modulebazaar/Msg91/controllers/Adminhtml/CustomnotificationController.php +205 -0
  40. app/code/local/Modulebazaar/Msg91/controllers/Adminhtml/LogController.php +169 -0
  41. app/code/local/Modulebazaar/Msg91/controllers/Adminhtml/NotificationlogController.php +168 -0
  42. app/code/local/Modulebazaar/Msg91/controllers/IndexController.php +42 -0
  43. app/code/local/Modulebazaar/Msg91/etc/adminhtml---.xml +37 -0
  44. app/code/local/Modulebazaar/Msg91/etc/config.xml +313 -0
  45. app/code/local/Modulebazaar/Msg91/etc/system.xml +455 -0
  46. app/code/local/Modulebazaar/Msg91/sql/msg91_setup/mysql4-install-0.1.0.php +27 -0
  47. app/code/local/Modulebazaar/Msg91/sql/msg91_setup/mysql4-upgrade-0.1.0-0.1.1.php +21 -0
  48. app/code/local/Modulebazaar/Msg91/sql/msg91_setup/mysql4-upgrade-0.1.1-0.1.2.php +22 -0
  49. app/code/local/Modulebazaar/Msg91/sql/msg91_setup/mysql4-upgrade-0.1.2-0.1.3.php +9 -0
  50. app/code/local/Modulebazaar/Msg91/sql/msg91_setup/mysql4-upgrade-0.1.3-0.1.4.php +9 -0
  51. app/code/local/Modulebazaar/Msg91/sql/msg91_setup/mysql4-upgrade-0.1.4-0.1.5.php +9 -0
  52. app/code/local/Modulebazaar/Msg91/sql/msg91_setup/mysql4-upgrade-0.1.5-0.1.6.php +9 -0
  53. app/design/adminhtml/default/default/layout/msg91.xml +21 -0
  54. app/design/frontend/base/default/layout/local.xml +9 -0
  55. app/etc/modules/Modulebazaar_Msg91.xml +9 -0
  56. package.xml +18 -0
app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Customnotification.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Modulebazaar_Msg91_Block_Adminhtml_Customnotification extends Mage_Adminhtml_Block_Widget_Grid_Container
4
+ {
5
+
6
+ public function __construct()
7
+ {
8
+ $this->_controller = 'adminhtml_customnotification';
9
+ $this->_blockGroup = 'msg91';
10
+ $this->_headerText = Mage::helper('msg91')->__('Custom Notification Management');
11
+ $this->_addButtonLabel = Mage::helper('msg91')->__('Add New');
12
+
13
+ parent::__construct();
14
+ //$this->_removeButton('add');
15
+ //$this->_updateButton('add', 'label', Mage::helper('zone')->__('Add Options'));
16
+ }
17
+
18
+ }
app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Customnotification/Edit.php ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Modulebazaar_Msg91_Block_Adminhtml_Customnotification_Edit extends Mage_Adminhtml_Block_Widget_Form_Container
4
+ {
5
+ public function __construct()
6
+ {
7
+
8
+ $this->_objectId = 'rule_id';
9
+ $this->_blockGroup = 'msg91';
10
+ $this->_controller = 'adminhtml_customnotification';
11
+ $this->_mode = 'edit';
12
+
13
+ parent::__construct();
14
+
15
+ // $this->_updateButton('save', 'label', Mage::helper('msg91')->__('Save Item'));
16
+ $this->_updateButton('delete', 'label', Mage::helper('msg91')->__('Delete Item'));
17
+
18
+ $this->_addButton('saveandcontinue', array(
19
+ 'label' => Mage::helper('adminhtml')->__('Save And Continue Edit'),
20
+ 'onclick' => 'saveAndContinueEdit()',
21
+ 'class' => 'save',
22
+ ), -100);
23
+
24
+ $this->_formScripts[] = "
25
+ function toggleEditor() {
26
+ if (tinyMCE.getInstanceById('form_content') == null) {
27
+ tinyMCE.execCommand('mceAddControl', false, 'edit_form');
28
+ } else {
29
+ tinyMCE.execCommand('mceRemoveControl', false, 'edit_form');
30
+ }
31
+ }
32
+
33
+ function saveAndContinueEdit(){
34
+ editForm.submit($('edit_form').action+'back/edit/');
35
+ }
36
+ ";
37
+ }
38
+
39
+ public function getHeaderText() {
40
+ if (Mage::registry('rule_data') && Mage::registry('rule_data')->getId()) {
41
+ return Mage::helper('msg91')->__('Edit Rule "%s"', $this->htmlEscape(Mage::registry('rule_data')->getName()));
42
+ } else {
43
+ return Mage::helper('msg91')->__('New Rule');
44
+ }
45
+ }
46
+
47
+ }
app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Customnotification/Edit/Form.php ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Modulebazaar_Msg91_Block_Adminhtml_Customnotification_Edit_Form extends Mage_Adminhtml_Block_Widget_Form
3
+ {
4
+ protected function _prepareForm()
5
+ {
6
+ $form = new Varien_Data_Form(array(
7
+ 'id' => 'edit_form',
8
+ 'action' => $this->getUrl('*/*/save', array('id' => $this->getRequest()->getParam('id'))),
9
+ 'method' => 'post',
10
+ 'enctype' => 'multipart/form-data'
11
+ )
12
+ );
13
+ $form->setUseContainer(true);
14
+ $this->setForm($form);
15
+
16
+ return parent::_prepareForm();
17
+ }
18
+ }
19
+ ?>
app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Customnotification/Edit/Tab/Form.php ADDED
@@ -0,0 +1,172 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Modulebazaar_Msg91_Block_Adminhtml_Customnotification_Edit_Tab_Form extends Mage_Adminhtml_Block_Widget_Form
4
+ {
5
+ protected function _prepareForm()
6
+ {
7
+ if (Mage::registry('rule_data'))
8
+ {
9
+ $data = Mage::registry('rule_data')->getData();
10
+ $data['customer_group']= unserialize($data['customer_group']);
11
+ }
12
+ else
13
+ {
14
+ $data = array();
15
+ }
16
+ $form = new Varien_Data_Form();
17
+ $this->setForm($form);
18
+ $fieldset = $form->addFieldset('rule_form', array('legend'=>Mage::helper('msg91')->__('Rule Information')));
19
+ //End
20
+
21
+ $fieldset->addField('name', 'text', array(
22
+ 'label' => Mage::helper('msg91')->__('Rule Name'),
23
+ 'class' => 'required-entry',
24
+ 'name' => 'name'
25
+ ));
26
+
27
+ $fieldset->addField('scheduled_at', 'date',array(
28
+ 'name' => 'scheduled_at', /* should match with your table column name where the data should be inserted */
29
+ 'time' => true,
30
+ 'format' => $this->escDates(),
31
+ 'label' => Mage::helper('msg91')->__('Data and Time'),
32
+ 'image' => $this->getSkinUrl('images/grid-cal.gif'),
33
+ ));
34
+ $afterElementHtml = '<p class="nm"><small>' .'Availabe Vars {{firstname}},{{email}}'. '</small></p>';
35
+ $fieldset->addField('content', 'text', array(
36
+ 'label' => Mage::helper('msg91')->__('Message'),
37
+ 'name' => 'content',
38
+ 'style' => 'width:270px; height:50px;',
39
+ 'after_element_html' => $afterElementHtml,
40
+ ));
41
+
42
+
43
+
44
+ $fieldset->addField('is_active', 'select', array(
45
+ 'label' => Mage::helper('msg91')->__('Status'),
46
+ 'name' => 'is_active',
47
+ 'values' => array(
48
+ array(
49
+ 'value' => 1,
50
+ 'label' => Mage::helper('msg91')->__('Enabled'),
51
+ ),
52
+
53
+ array(
54
+ 'value' => 0,
55
+ 'label' => Mage::helper('msg91')->__('Disabled'),
56
+ ),
57
+ ),
58
+ ));
59
+ $fieldset->addField('route', 'select', array(
60
+ 'label' => Mage::helper('msg91')->__('Route'),
61
+ 'name' => 'route',
62
+ 'values' =>$this->getRouteList(),
63
+ ));
64
+ $afterElementHtml2 = '<p class="nm"><small><a href="http://help.msg91.com/article/10-how-to-choose-sender-id">' .'http://help.msg91.com/article/10-how-to-choose-sender-id'. '</a></small></p>';
65
+ $fieldset->addField('sender_id', 'text', array(
66
+ 'label' => Mage::helper('msg91')->__('Sender Id'),
67
+ 'class' => 'required-entry',
68
+ 'name' => 'sender_id',
69
+ 'after_element_html' => $afterElementHtml2,
70
+ ));
71
+
72
+ $customer_group = $fieldset->addField('customer_list', 'multiselect', array(
73
+ 'label' => Mage::helper('msg91')->__('Customer Groups'),
74
+ 'name' => 'customer_list',
75
+ 'index' => 'customer_list',
76
+ 'id' => 'customer_list',
77
+ 'values' => $this->getCustomerList(),
78
+ ));
79
+
80
+ $customer_group->setAfterElementHtml("<script type=\"text/javascript\">
81
+ document.addEventListener('DOMContentLoaded', function () {
82
+ });
83
+
84
+ var cars = [".$this->getCustomerSelectedList()."];
85
+ $('customer_list').setValue(cars);
86
+
87
+ function getcustomer(selectElement){
88
+ var selectedids = $('customer_list').getValue();
89
+ var value=selectElement.value;
90
+ var reloadurl = '". $this->getUrl('msg91/adminhtml_customnotification/customer') . "?name='+value+'&selid='+selectedids;
91
+ new Ajax.Request(reloadurl, {
92
+ method: 'get',
93
+ onLoading: function (nameform) {
94
+ $('customer_list').append(nameform.responseText);
95
+ $('#customer_list').values('Searching...');
96
+ },
97
+ onComplete: function(nameform) {
98
+ $('customer_list').update(nameform.responseText);
99
+ return false;
100
+ }
101
+ });
102
+
103
+ }
104
+
105
+ function getcustomer1(selectElement){
106
+
107
+ // alert($('#customer_list').val());
108
+
109
+ var ss1 = selectElement;
110
+ alert(ss1);
111
+ var ss = $('idval').value;
112
+ var ss12 = ss+','+ss1;
113
+ $('idval').value = ss12;
114
+ alert(ss12);
115
+ // alert($('idval').value);
116
+ }
117
+ </script>
118
+ <input type='hidden' value='0' id='idval' name='idval'>
119
+
120
+ ");
121
+
122
+ $form->setValues($data);
123
+
124
+ return parent::_prepareForm();
125
+ }
126
+ private function escDates() {
127
+ return 'yyyy-MM-dd HH:mm:ss';
128
+ }
129
+
130
+ public function getCustomerList() {
131
+ $customer = Mage::getModel('customer/group')->getCollection();
132
+ foreach ( $customer as $key => $user ){
133
+ $customer_list[$key]["value"] = $user->getData("customer_group_id");
134
+ $customer_list[$key]["label"] = $user->getData("customer_group_code");
135
+ }
136
+ return array_values($customer_list);
137
+ }
138
+
139
+ public function getCustomerSelectedList() {
140
+ $Id = $this->getRequest()->getParam('id');
141
+ $select_customer = Mage::getModel('msg91/customnotification')
142
+ ->getCollection()
143
+ ->addFieldToFilter('rule_id',$Id);
144
+ foreach($select_customer as $select)
145
+ {
146
+ $selec_customer = unserialize($select->getCustomerGroup());
147
+ }
148
+ $value = implode(",",$selec_customer);
149
+ return $value;
150
+ }
151
+ protected static $_options;
152
+ public function getRouteList(){
153
+ $url="https://control.msg91.com/api/getUserDetails.php?";
154
+ $authKey=Mage::helper('msg91')->getAuthkeyUrl();
155
+ $params="authkey={$authKey}&response=json";
156
+ $result=Mage::helper('msg91')->file_get_contents_curl($url, $params);
157
+ $xml = json_decode($result, true) or die("Error: Cannot create object");
158
+ $result = ((array) $xml);
159
+ if (!self::$_options) {
160
+ self::$_options = array();
161
+ }
162
+ foreach($result['routes'] as $route){
163
+ self::$_options[]=array(
164
+ 'label' => Mage::helper('msg91')->__($route['name']),
165
+ 'value' => $route['id'],
166
+ );
167
+ }
168
+ return self::$_options;
169
+ }
170
+ }
171
+ ?>
172
+
app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Customnotification/Edit/Tabs.php ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Modulebazaar_Msg91_Block_Adminhtml_Customnotification_Edit_Tabs extends Mage_Adminhtml_Block_Widget_Tabs
4
+ {
5
+
6
+ public function __construct()
7
+ {
8
+ parent::__construct();
9
+ $this->setId('customnotification_tabs');
10
+ $this->setDestElementId('edit_form');
11
+ $this->setTitle(Mage::helper('msg91')->__('Custom Notifications'));
12
+ }
13
+
14
+ protected function _beforeToHtml()
15
+ {
16
+ $this->addTab('form_section', array(
17
+ 'label' => Mage::helper('msg91')->__('Custom Notification Information'),
18
+ 'title' => Mage::helper('msg91')->__('Custom Notification Information'),
19
+ 'content' => $this->getLayout()->createBlock('msg91/adminhtml_customnotification_edit_tab_form')->toHtml(),
20
+ ));
21
+
22
+ return parent::_beforeToHtml();
23
+ }
24
+ }
app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Customnotification/Grid.php ADDED
@@ -0,0 +1,96 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Modulebazaar_Msg91_Block_Adminhtml_Customnotification_Grid extends Mage_Adminhtml_Block_Widget_Grid {
3
+
4
+ public function __construct()
5
+ {
6
+ parent::__construct();
7
+ $this->setId('customnotification_Grid');
8
+ $this->setDefaultSort('rule_id');
9
+ $this->setDefaultDir('DESC');
10
+ $this->setSaveParametersInSession(true);
11
+ }
12
+
13
+ protected function _prepareCollection()
14
+ {
15
+ $resource = Mage::getSingleton('core/resource');
16
+ $collection = Mage::getModel('msg91/customnotification')->getCollection();
17
+ $this->setCollection($collection);
18
+ return parent::_prepareCollection();
19
+ }
20
+
21
+ protected function _prepareColumns()
22
+ {
23
+ $this->addColumn('rule_id', array(
24
+ 'header' => Mage::helper('msg91')->__('Id'),
25
+ 'width' => '40px',
26
+ 'index' => 'rule_id',
27
+
28
+ ));
29
+
30
+
31
+ $this->addColumn('name', array(
32
+ 'header' => Mage::helper('msg91')->__('Rule Name'),
33
+ 'width' => '150px',
34
+ 'align' =>'left',
35
+ 'index' => 'name'
36
+ ));
37
+
38
+ $this->addColumn('content', array(
39
+ 'header' => Mage::helper('msg91')->__('Message'),
40
+ 'align' =>'left',
41
+ 'index' => 'content',
42
+ 'width' =>'200px'
43
+ ));
44
+
45
+ $this->addColumn('is_active', array(
46
+ 'header' => Mage::helper('msg91')->__('Status'),
47
+ 'align' =>'left',
48
+ 'index' => 'is_active',
49
+ 'width' =>'50px',
50
+ 'type' => 'options',
51
+ 'options' => array(
52
+ 1 => 'Enabled',
53
+ 0 => 'Disabled',
54
+ ),
55
+ ));
56
+
57
+
58
+ $this->addColumn('action',
59
+ array(
60
+ 'header' => Mage::helper('msg91')->__('Action'),
61
+ 'width' => '100',
62
+ 'type' => 'action',
63
+ 'getter' => 'getId',
64
+ 'actions' => array(
65
+ array(
66
+ 'caption' => Mage::helper('msg91')->__('Edit'),
67
+ 'url' => array('base'=> '*/*/edit'),
68
+ 'field' => 'id'
69
+ )
70
+ ),
71
+ 'filter' => false,
72
+ 'sortable' => false,
73
+ 'index' => 'stores',
74
+ 'is_system' => true,
75
+ ));
76
+
77
+ return parent::_prepareColumns();
78
+ }
79
+ protected function _prepareMassaction()
80
+ {
81
+ $this->setMassactionIdField('id');
82
+ $this->getMassactionBlock()->setFormFieldName('rules');
83
+
84
+ $this->getMassactionBlock()->addItem('delete', array(
85
+ 'label' => Mage::helper('msg91')->__('Delete'),
86
+ 'url' => $this->getUrl('*/*/massDelete'),
87
+ 'confirm' => Mage::helper('msg91')->__('Are you sure?')
88
+ ));
89
+ return $this;
90
+ }
91
+
92
+ public function getRowUrl($row) {
93
+ return $this->getUrl('*/*/edit', array('id' => $row->getId()));
94
+ }
95
+
96
+ }
app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Log.php ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Modulebazaar_Msg91_Block_Adminhtml_Log extends Mage_Adminhtml_Block_Widget_Grid_Container
4
+ {
5
+ protected $_addButtonLabel = 'Add New Log';
6
+
7
+ public function __construct()
8
+ {
9
+ parent::__construct();
10
+ $this->_controller = 'adminhtml_log';
11
+ $this->_blockGroup = 'msg91';
12
+ $this->_headerText = Mage::helper('msg91')->__('Logs');
13
+ $this->removeButton('add');
14
+ }
15
+ }
app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Log/Edit.php ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Modulebazaar_Msg91_Block_Adminhtml_Log_Edit extends Mage_Adminhtml_Block_Widget_Form_Container {
3
+
4
+ public function __construct() {
5
+ parent::__construct();
6
+
7
+ $this->_objectId = 'id';
8
+ $this->_blockGroup = 'msg91';
9
+ $this->_controller = 'adminhtml_log';
10
+ $this->_removeButton('reset');
11
+ $this->_updateButton('save', 'label', Mage::helper('msg91')->__('Save Item'));
12
+ $this->_updateButton('delete', 'label', Mage::helper('msg91')->__('Delete Item'));
13
+
14
+ $this->_addButton('saveandcontinue', array(
15
+ 'label' => Mage::helper('adminhtml')->__('Save And Continue Edit'),
16
+ 'onclick' => 'saveAndContinueEdit()',
17
+ 'class' => 'save',
18
+ ), -100);
19
+
20
+ $this->_formScripts[] = "
21
+ function toggleEditor() {
22
+ if (tinyMCE.getInstanceById('log_content') == null) {
23
+ tinyMCE.execCommand('mceAddControl', false, 'log_content');
24
+ } else {
25
+ tinyMCE.execCommand('mceRemoveControl', false, 'log_content');
26
+ }
27
+ }
28
+
29
+ function saveAndContinueEdit(){
30
+ editForm.submit($('edit_form').action+'back/edit/');
31
+ }
32
+ ";
33
+ }
34
+
35
+ public function getHeaderText() {
36
+ if (Mage::registry('log_data') && Mage::registry('log_data')->getId()) {
37
+ return Mage::helper('msg91')->__('Edit Log "%s"', $this->htmlEscape(Mage::registry('log_data')->getTitle()));
38
+ } else {
39
+ return Mage::helper('msg91')->__('New Log');
40
+ }
41
+ }
42
+
43
+ }
app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Log/Edit/Form.php ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Modulebazaar_Msg91_Block_Adminhtml_Log_Edit_Form extends Mage_Adminhtml_Block_Widget_Form {
4
+
5
+ protected function _prepareForm() {
6
+ $form = new Varien_Data_Form(array(
7
+ 'id' => 'edit_form',
8
+ 'action' => $this->getUrl('*/*/save', array('id' => $this->getRequest()->getParam('id'))),
9
+ 'method' => 'post',
10
+ 'enctype' => 'multipart/form-data'
11
+ )
12
+ );
13
+
14
+ $form->setUseContainer(true);
15
+ $this->setForm($form);
16
+ return parent::_prepareForm();
17
+ }
18
+
19
+ }
app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Log/Edit/Tab/Form1.php ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Modulebazaar_Msg91_Block_Adminhtml_Log_Edit_Tab_Form1 extends Mage_Adminhtml_Block_Widget_Form {
4
+
5
+ protected function _prepareForm() {
6
+ if (Mage::getSingleton('adminhtml/session')->getLogData()) {
7
+ $data = Mage::getSingleton('adminhtml/session')->getLoglData();
8
+ Mage::getSingleton('adminhtml/session')->getLogData(null);
9
+ } elseif (Mage::registry('log_data')) {
10
+ $data = Mage::registry('log_data')->getData();
11
+ } else {
12
+ $data = array();
13
+ }
14
+
15
+ $form = new Varien_Data_Form();
16
+ $this->setForm($form);
17
+
18
+ $fieldset = $form->addFieldset('log_form', array(
19
+ 'legend' => Mage::helper('msg91')->__('Log Information')
20
+ ));
21
+
22
+ $fieldset->addField('title', 'text', array(
23
+ 'label' => Mage::helper('msg91')->__('Title'),
24
+ 'class' => 'required-entry',
25
+ 'required' => true,
26
+ 'name' => 'title',
27
+ ));
28
+ $fieldset->addField('status', 'select', array(
29
+ 'label' => Mage::helper('msg91')->__('Status'),
30
+ 'name' => 'status',
31
+ 'values' => array(
32
+ array(
33
+ 'value' => 1,
34
+ 'label' => Mage::helper('msg91')->__('Sent'),
35
+ ),
36
+ array(
37
+ 'value' => 2,
38
+ 'label' => Mage::helper('msg91')->__('Not Sent'),
39
+ ),
40
+ ),
41
+ ));
42
+ $form->setValues($data);
43
+
44
+ return parent::_prepareForm();
45
+ }
46
+
47
+ }
app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Log/Edit/Tabs.php ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Modulebazaar_Msg91_Block_Adminhtml_Log_Edit_Tabs extends Mage_Adminhtml_Block_Widget_Tabs
4
+ {
5
+
6
+ public function __construct()
7
+ {
8
+ parent::__construct();
9
+ $this->setId('log_tabs');
10
+ $this->setDestElementId('edit_form');
11
+ $this->setTitle(Mage::helper('msg91')->__('Item Information'));
12
+ }
13
+
14
+ protected function _beforeToHtml()
15
+ {
16
+ $this->addTab('form_section', array(
17
+ 'label' => Mage::helper('msg91')->__('Item Information'),
18
+ 'title' => Mage::helper('msg91')->__('Item Information'),
19
+ 'content' => $this->getLayout()->createBlock('msg91/adminhtml_log_edit_tab_form1')->toHtml(),
20
+ ));
21
+
22
+ return parent::_beforeToHtml();
23
+ }
24
+ }
app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Log/Grid.php ADDED
@@ -0,0 +1,132 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Modulebazaar_Msg91_Block_Adminhtml_Log_Grid extends Mage_Adminhtml_Block_Widget_Grid {
4
+
5
+ public function __construct() {
6
+ parent::__construct();
7
+ $this->setId('log_grid');
8
+ $this->setDefaultSort('id');
9
+ $this->setDefaultDir('desc');
10
+ $this->setSaveParametersInSession(true);
11
+ }
12
+
13
+ protected function _prepareCollection() {
14
+ $collection = Mage::getModel('msg91/log')->getCollection();
15
+ $this->setCollection($collection);
16
+ return parent::_prepareCollection();
17
+ }
18
+
19
+ protected function _prepareColumns() {
20
+ $this->addColumn('id', array(
21
+ 'header' => Mage::helper('msg91')->__('ID'),
22
+ 'align' => 'right',
23
+ 'width' => '50px',
24
+ 'index' => 'id',
25
+ ));
26
+
27
+ $this->addColumn('sent_date', array(
28
+ 'header' => Mage::helper('msg91')->__('Send Date'),
29
+ 'index' => 'sent_date',
30
+ 'type' => 'datetime',
31
+ 'width' => '100px',
32
+ 'renderer' => 'msg91/adminhtml_log_renderer_date',
33
+
34
+
35
+
36
+
37
+ ));
38
+
39
+ $this->addColumn('title', array(
40
+ 'header' => Mage::helper('msg91')->__('Title'),
41
+ 'align' => 'left',
42
+ 'index' => 'title',
43
+ ));
44
+ $this->addColumn('sender_id', array(
45
+ 'header' => Mage::helper('msg91')->__('From'),
46
+ 'align' => 'left',
47
+ 'index' => 'sender_id',
48
+ 'filter_index' => 'main_table.sender_id',
49
+ ));
50
+
51
+ $this->addColumn('to', array(
52
+ 'header' => Mage::helper('msg91')->__('To'),
53
+ 'align' => 'left',
54
+ 'index' => 'to',
55
+ 'filter_index' => 'main_table.to',
56
+ ));
57
+
58
+ $this->addColumn('recipient', array(
59
+ 'header' => Mage::helper('msg91')->__('Recipient'),
60
+ 'align' => 'left',
61
+ 'index' => 'recipient',
62
+ ));
63
+
64
+ $this->addColumn('chars', array(
65
+ 'header' => Mage::helper('msg91')->__('Chars'),
66
+ 'align' => 'left',
67
+ 'index' => 'chars',
68
+ ));
69
+
70
+ $this->addColumn('length', array(
71
+ 'header' => Mage::helper('msg91')->__('Length'),
72
+ 'align' => 'left',
73
+ 'index' => 'length',
74
+ ));
75
+
76
+ $this->addColumn('status', array(
77
+ 'header' => Mage::helper('msg91')->__('Status'),
78
+ 'align' => 'left',
79
+ 'width' => '80px',
80
+ 'index' => 'status',
81
+ 'type' => 'options',
82
+ 'options' => array(
83
+ 1 => 'Sent',
84
+ 2 => 'Not Sent',
85
+ ),
86
+ ));
87
+
88
+ $this->addColumn('reason', array(
89
+ 'header' => Mage::helper('msg91')->__('Reason'),
90
+ 'align' => 'left',
91
+ 'index' => 'status',
92
+ 'renderer' => 'msg91/adminhtml_log_renderer_reason',
93
+
94
+ ));
95
+
96
+ return parent::_prepareColumns();
97
+ }
98
+
99
+ protected function _prepareMassaction() {
100
+ $this->setMassactionIdField('id');
101
+ $this->getMassactionBlock()->setFormFieldName('msg91');
102
+
103
+ $this->getMassactionBlock()->addItem('delete', array(
104
+ 'label' => Mage::helper('msg91')->__('Delete'),
105
+ 'url' => $this->getUrl('*/*/massDelete'),
106
+ 'confirm' => Mage::helper('msg91')->__('Are you sure?')
107
+ ));
108
+
109
+ $statuses = Mage::getSingleton('msg91/status')->getOptionArray();
110
+
111
+ array_unshift($statuses, array('label' => '', 'value' => ''));
112
+ $this->getMassactionBlock()->addItem('status', array(
113
+ 'label' => Mage::helper('msg91')->__('Change status'),
114
+ 'url' => $this->getUrl('*/*/massStatus', array('_current' => true)),
115
+ 'additional' => array(
116
+ 'visibility' => array(
117
+ 'name' => 'status',
118
+ 'type' => 'select',
119
+ 'class' => 'required-entry',
120
+ 'label' => Mage::helper('msg91')->__('Status'),
121
+ 'values' => $statuses
122
+ )
123
+ )
124
+ ));
125
+ return $this;
126
+ }
127
+
128
+ public function getRowUrl($row) {
129
+ return $this->getUrl('*/*/edit', array('id' => $row->getId()));
130
+ }
131
+
132
+ }
app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Log/Renderer/Date.php ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ <?php
3
+ class Modulebazaar_Msg91_Block_Adminhtml_Log_Renderer_Date extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Action
4
+ {
5
+ public function render(Varien_Object $row)
6
+ {
7
+ return $this->_getValue($row);
8
+ }
9
+
10
+ public function _getValue(Varien_Object $row)
11
+ {
12
+ $val = $row->getData($this->getColumn()->getIndex());
13
+ $date= strtotime($val);
14
+ $newformat = date('d/m/y H:i:s',$date);
15
+
16
+ return $newformat;
17
+
18
+ }
19
+ }
20
+ ?>
app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Log/Renderer/Reason.php ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ <?php
3
+ class Modulebazaar_Msg91_Block_Adminhtml_Log_Renderer_Reason extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Action
4
+ {
5
+ public function render(Varien_Object $row)
6
+ {
7
+ return $this->_getValue($row);
8
+ }
9
+
10
+ public function _getValue(Varien_Object $row)
11
+ {
12
+ $val = $row->getData($this->getColumn()->getIndex());
13
+ $id = $row->getData('id');
14
+ if($val==2){
15
+ return $collection = Mage::getModel('msg91/log')->load($id)->getApiStatus();
16
+ }
17
+ else{
18
+ echo "-";
19
+ }
20
+
21
+ }
22
+ }
23
+ ?>
app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Notificationlog.php ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Modulebazaar_Msg91_Block_Adminhtml_Notificationlog extends Mage_Adminhtml_Block_Widget_Grid_Container
4
+ {
5
+ protected $_addButtonLabel = 'Add New Log';
6
+
7
+ public function __construct()
8
+ {
9
+ parent::__construct();
10
+ $this->_controller = 'adminhtml_notificationlog';
11
+ $this->_blockGroup = 'msg91';
12
+ $this->_headerText = Mage::helper('msg91')->__('Notification Logs');
13
+ $this->removeButton('add');
14
+ }
15
+ }
app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Notificationlog/Edit.php ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Modulebazaar_Msg91_Block_Adminhtml_Notificationlog_Edit extends Mage_Adminhtml_Block_Widget_Form_Container {
3
+
4
+ public function __construct() {
5
+ parent::__construct();
6
+
7
+ $this->_objectId = 'id';
8
+ $this->_blockGroup = 'msg91';
9
+ $this->_controller = 'adminhtml_notificationlog';
10
+ $this->_removeButton('reset');
11
+ $this->_updateButton('save', 'label', Mage::helper('msg91')->__('Save Item'));
12
+ $this->_updateButton('delete', 'label', Mage::helper('msg91')->__('Delete Item'));
13
+
14
+ $this->_addButton('saveandcontinue', array(
15
+ 'label' => Mage::helper('adminhtml')->__('Save And Continue Edit'),
16
+ 'onclick' => 'saveAndContinueEdit()',
17
+ 'class' => 'save',
18
+ ), -100);
19
+
20
+ $this->_formScripts[] = "
21
+ function toggleEditor() {
22
+ if (tinyMCE.getInstanceById('notificationlog_content') == null) {
23
+ tinyMCE.execCommand('mceAddControl', false, 'notificationlog_content');
24
+ } else {
25
+ tinyMCE.execCommand('mceRemoveControl', false, 'notificationlog_content');
26
+ }
27
+ }
28
+
29
+ function saveAndContinueEdit(){
30
+ editForm.submit($('edit_form').action+'back/edit/');
31
+ }
32
+ ";
33
+ }
34
+
35
+ public function getHeaderText() {
36
+ if (Mage::registry('notificationlog_data') && Mage::registry('notificationlog_data')->getId()) {
37
+ return Mage::helper('msg91')->__('Edit Notificationlog ');
38
+ } else {
39
+ return Mage::helper('msg91')->__('New Notificationlog');
40
+ }
41
+ }
42
+
43
+ }
app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Notificationlog/Edit/Form.php ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Modulebazaar_Msg91_Block_Adminhtml_Notificationlog_Edit_Form extends Mage_Adminhtml_Block_Widget_Form {
4
+
5
+ protected function _prepareForm() {
6
+ $form = new Varien_Data_Form(array(
7
+ 'id' => 'edit_form',
8
+ 'action' => $this->getUrl('*/*/save', array('id' => $this->getRequest()->getParam('id'))),
9
+ 'method' => 'post',
10
+ 'enctype' => 'multipart/form-data'
11
+ )
12
+ );
13
+
14
+ $form->setUseContainer(true);
15
+ $this->setForm($form);
16
+ return parent::_prepareForm();
17
+ }
18
+
19
+ }
app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Notificationlog/Edit/Tab/Form1.php ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Modulebazaar_Msg91_Block_Adminhtml_Notificationlog_Edit_Tab_Form1 extends Mage_Adminhtml_Block_Widget_Form {
4
+
5
+ protected function _prepareForm() {
6
+ if (Mage::getSingleton('adminhtml/session')->getNotificationLogData()) {
7
+ $data = Mage::getSingleton('adminhtml/session')->getNotificationLoglData();
8
+ Mage::getSingleton('adminhtml/session')->getNotificationLogData(null);
9
+ } elseif (Mage::registry('notificationlog_data')) {
10
+ $data = Mage::registry('notificationlog_data')->getData();
11
+ } else {
12
+ $data = array();
13
+ }
14
+
15
+ $form = new Varien_Data_Form();
16
+ $this->setForm($form);
17
+
18
+ $fieldset = $form->addFieldset('notificationlog_form', array(
19
+ 'legend' => Mage::helper('msg91')->__('Notification Log Information')
20
+ ));
21
+
22
+ $fieldset->addField('status', 'select', array(
23
+ 'label' => Mage::helper('msg91')->__('Status'),
24
+ 'name' => 'status',
25
+ 'values' => array(
26
+ array(
27
+ 'value' => 1,
28
+ 'label' => Mage::helper('msg91')->__('Sent To MSG91'),
29
+ ),
30
+ array(
31
+ 'value' => 2,
32
+ 'label' => Mage::helper('msg91')->__('Not Sent'),
33
+ ),
34
+ ),
35
+ ));
36
+
37
+ $form->setValues($data);
38
+
39
+ return parent::_prepareForm();
40
+ }
41
+
42
+ }
app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Notificationlog/Edit/Tabs.php ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Modulebazaar_Msg91_Block_Adminhtml_Notificationlog_Edit_Tabs extends Mage_Adminhtml_Block_Widget_Tabs
4
+ {
5
+
6
+ public function __construct()
7
+ {
8
+ parent::__construct();
9
+ $this->setId('notificationlog_tabs');
10
+ $this->setDestElementId('edit_form');
11
+ $this->setTitle(Mage::helper('msg91')->__('Item Information'));
12
+ }
13
+
14
+ protected function _beforeToHtml()
15
+ {
16
+ $this->addTab('form_section', array(
17
+ 'label' => Mage::helper('msg91')->__('Item Information'),
18
+ 'title' => Mage::helper('msg91')->__('Item Information'),
19
+ 'content' => $this->getLayout()->createBlock('msg91/adminhtml_notificationlog_edit_tab_form1')->toHtml(),
20
+ ));
21
+
22
+ return parent::_beforeToHtml();
23
+ }
24
+ }
app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Notificationlog/Grid.php ADDED
@@ -0,0 +1,128 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Modulebazaar_Msg91_Block_Adminhtml_Notificationlog_Grid extends Mage_Adminhtml_Block_Widget_Grid {
4
+
5
+ public function __construct() {
6
+ parent::__construct();
7
+ $this->setId('log_grid');
8
+ $this->setDefaultSort('id');
9
+ $this->setDefaultDir('desc');
10
+ $this->setSaveParametersInSession(true);
11
+ }
12
+
13
+ protected function _prepareCollection() {
14
+ $collection = Mage::getModel('msg91/notificationlog')->getCollection();
15
+ $this->setCollection($collection);
16
+ return parent::_prepareCollection();
17
+ }
18
+
19
+ protected function _prepareColumns() {
20
+ $this->addColumn('id', array(
21
+ 'header' => Mage::helper('msg91')->__('ID'),
22
+ 'align' => 'right',
23
+ 'width' => '50px',
24
+ 'index' => 'id',
25
+ ));
26
+
27
+ $this->addColumn('sent_date', array(
28
+ 'header' => Mage::helper('msg91')->__('Sent Date'),
29
+ 'index' => 'sent_date',
30
+ 'type' => 'datetime',
31
+ 'width' => '100px',
32
+ 'renderer' => 'msg91/adminhtml_notificationlog_renderer_date',
33
+ ));
34
+ $this->addColumn('sender_id', array(
35
+ 'header' => Mage::helper('msg91')->__('From'),
36
+ 'align' => 'left',
37
+ 'index' => 'sender_id',
38
+ 'filter_index' => 'main_table.sender_id',
39
+ ));
40
+ $this->addColumn('to', array(
41
+ 'header' => Mage::helper('msg91')->__('To'),
42
+ 'align' => 'left',
43
+ 'index' => 'to',
44
+ 'filter_index' => 'main_table.to',
45
+ ));
46
+
47
+ $this->addColumn('recipient', array(
48
+ 'header' => Mage::helper('msg91')->__('Recipient'),
49
+ 'align' => 'left',
50
+ 'index' => 'recipient',
51
+ ));
52
+
53
+
54
+ $this->addColumn('chars', array(
55
+ 'header' => Mage::helper('msg91')->__('Chars'),
56
+ 'align' => 'left',
57
+ 'index' => 'chars',
58
+ ));
59
+
60
+ $this->addColumn('length', array(
61
+ 'header' => Mage::helper('msg91')->__('Length'),
62
+ 'align' => 'left',
63
+ 'index' => 'length',
64
+ ));
65
+
66
+ $this->addColumn('status', array(
67
+ 'header' => Mage::helper('msg91')->__('Status'),
68
+ 'align' => 'left',
69
+ 'width' => '80px',
70
+ 'index' => 'status',
71
+ 'type' => 'options',
72
+ 'options' => array(
73
+ 1 => 'Sent For MSG91',
74
+ 2 => 'Not Sent',
75
+ ),
76
+ ));
77
+ $this->addColumn('scheduled_at', array(
78
+ 'header' => Mage::helper('msg91')->__('Scheduled Date'),
79
+ 'index' => 'scheduled_at',
80
+ 'type' => 'datetime',
81
+ 'width' => '100px',
82
+ 'renderer' => 'msg91/adminhtml_notificationlog_renderer_scheduledate',
83
+ ));
84
+
85
+ $this->addColumn('reason', array(
86
+ 'header' => Mage::helper('msg91')->__('Reason'),
87
+ 'align' => 'left',
88
+ 'index' => 'status',
89
+ 'renderer' => 'msg91/adminhtml_notificationlog_renderer_reason',
90
+
91
+ ));
92
+ return parent::_prepareColumns();
93
+ }
94
+
95
+ protected function _prepareMassaction() {
96
+ $this->setMassactionIdField('id');
97
+ $this->getMassactionBlock()->setFormFieldName('msg91');
98
+
99
+ $this->getMassactionBlock()->addItem('delete', array(
100
+ 'label' => Mage::helper('msg91')->__('Delete'),
101
+ 'url' => $this->getUrl('*/*/massDelete'),
102
+ 'confirm' => Mage::helper('msg91')->__('Are you sure?')
103
+ ));
104
+
105
+ $statuses = Mage::getSingleton('msg91/status')->getOptionArray();
106
+
107
+ array_unshift($statuses, array('label' => '', 'value' => ''));
108
+ $this->getMassactionBlock()->addItem('status', array(
109
+ 'label' => Mage::helper('msg91')->__('Change status'),
110
+ 'url' => $this->getUrl('*/*/massStatus', array('_current' => true)),
111
+ 'additional' => array(
112
+ 'visibility' => array(
113
+ 'name' => 'status',
114
+ 'type' => 'select',
115
+ 'class' => 'required-entry',
116
+ 'label' => Mage::helper('msg91')->__('Status'),
117
+ 'values' => $statuses
118
+ )
119
+ )
120
+ ));
121
+ return $this;
122
+ }
123
+
124
+ public function getRowUrl($row) {
125
+ return $this->getUrl('*/*/edit', array('id' => $row->getId()));
126
+ }
127
+
128
+ }
app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Notificationlog/Renderer/Date.php ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ <?php
3
+ class Modulebazaar_Msg91_Block_Adminhtml_Notificationlog_Renderer_Date extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Action
4
+ {
5
+ public function render(Varien_Object $row)
6
+ {
7
+ return $this->_getValue($row);
8
+ }
9
+
10
+ public function _getValue(Varien_Object $row)
11
+ {
12
+ $val = $row->getData($this->getColumn()->getIndex());
13
+ $date= strtotime($val);
14
+ $newformat = date('d/m/y H:i:s',$date);
15
+
16
+ return $newformat;
17
+
18
+ }
19
+ }
20
+ ?>
app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Notificationlog/Renderer/Reason.php ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ <?php
3
+ class Modulebazaar_Msg91_Block_Adminhtml_Notificationlog_Renderer_Reason extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Action
4
+ {
5
+ public function render(Varien_Object $row)
6
+ {
7
+ return $this->_getValue($row);
8
+ }
9
+
10
+ public function _getValue(Varien_Object $row)
11
+ {
12
+ $val = $row->getData($this->getColumn()->getIndex());
13
+ $id = $row->getData('id');
14
+ if($val==2){
15
+ return $collection = Mage::getModel('msg91/notificationlog')->load($id)->getApiStatus();
16
+ }
17
+ else{
18
+ echo "-";
19
+ }
20
+
21
+ }
22
+ }
23
+ ?>
app/code/local/Modulebazaar/Msg91/Block/Adminhtml/Notificationlog/Renderer/Scheduledate.php ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ <?php
3
+ class Modulebazaar_Msg91_Block_Adminhtml_Notificationlog_Renderer_Scheduledate extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Action
4
+ {
5
+ public function render(Varien_Object $row)
6
+ {
7
+ return $this->_getValue($row);
8
+ }
9
+
10
+ public function _getValue(Varien_Object $row)
11
+ {
12
+ $val = $row->getData($this->getColumn()->getIndex());
13
+ $date= strtotime($val);
14
+ $newformat = date('d/m/y H:i:s',$date);
15
+
16
+ return $newformat;
17
+
18
+ }
19
+ }
20
+ ?>
app/code/local/Modulebazaar/Msg91/Helper/Data.php ADDED
@@ -0,0 +1,323 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php //0046a
2
+ if(!extension_loaded('ionCube Loader')){$__oc=strtolower(substr(php_uname(),0,3));$__ln='ioncube_loader_'.$__oc.'_'.substr(phpversion(),0,3).(($__oc=='win')?'.dll':'.so');if(function_exists('dl')){@dl($__ln);}if(function_exists('_il_exec')){return _il_exec();}$__ln='/ioncube/'.$__ln;$__oid=$__id=realpath(ini_get('extension_dir'));$__here=dirname(__FILE__);if(strlen($__id)>1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file <b>'.__FILE__.'</b> requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the <a href="http://www.ioncube.com/lw/">ionCube Loader Wizard</a> to assist with installation.');exit(199);
3
+ ?>
4
+ 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
323
+ zkzaMwasapWpJRXEqseY
app/code/local/Modulebazaar/Msg91/Model/.Observer.php.swp ADDED
Binary file
app/code/local/Modulebazaar/Msg91/Model/Customerschedule.php ADDED
@@ -0,0 +1,143 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Modulebazaar_Msg91_Model_CustomerSchedule extends Mage_Core_Model_Abstract {
4
+
5
+
6
+ public function _construct() {
7
+ $this->_init('msg91/customerschedule');
8
+ }
9
+
10
+
11
+ /**
12
+ * Runs schedule and sends Notification
13
+ */
14
+ public function run() {
15
+ Mage::log('customerschedulephp',null,'system.log',true);
16
+ $this->_prepare();
17
+ }
18
+ /**
19
+ *Initilize and sends msg91 Notification message to customer
20
+ *
21
+ * @param type $history
22
+ * @return boolean
23
+ */
24
+
25
+ protected function _sendMsg91($customerCollection) {
26
+ if (!$this->getHelper()->isEnabled()) {
27
+ return;
28
+ }
29
+ Mage::log('sendpushstart',null,'system.log',true);
30
+ foreach($customerCollection as $custom)
31
+ {
32
+
33
+ $cust = Mage::getModel('msg91/customnotification')->load($custom);
34
+ $message = $cust->getContent();
35
+ echo $routeVal= $cust->getRoute();
36
+ $customer_names=unserialize($cust->getCustomerGroup());
37
+ $groupname=array();
38
+ foreach($customer_names as $customerGroupId){
39
+ $groupname[] = Mage::getModel('customer/group')->load($customerGroupId)->getCustomerGroupCode();
40
+
41
+ }
42
+ $customers = Mage::getModel("customer/customer")->getCollection()->addFieldToFilter('group_id', array('in' => $customer_names));
43
+ $to=array();
44
+ foreach($customers as $customer){
45
+ $customer_email=$customer->getEmail();
46
+
47
+ $cust1 = Mage::getModel("customer/customer");
48
+ $cust1->setWebsiteId(1);
49
+ $cust1->loadByEmail($customer_email);
50
+ $to[] =$cust1->getPrimaryBillingAddress()->getTelephone();
51
+ }
52
+
53
+ $to=array_unique($to);
54
+
55
+ $phone=implode(',',$to);
56
+ $groups=implode(',',$groupname);
57
+ $params = array(
58
+ 'phone' => $phone,
59
+ 'route'=>$routeVal,
60
+ );
61
+ $messageType = 'schedule';
62
+ $senderId = $this->getHelper()->getSenderId();
63
+ $this->getHelper()->sendShedulerSms($message,$params);
64
+ $chars = $this->getHelper()->getChars();
65
+ $length = $this->getHelper()->getLength();
66
+ $smsStatus = $this->getHelper()->getSmsStatus();
67
+ try {
68
+ Mage::getModel('msg91/notificationlog')
69
+ ->setSentDate(Mage::getModel('core/date')->timestamp(time()))
70
+ ->setSenderId($senderId)
71
+ ->setTo($phone)
72
+ ->setRecipient($groups)
73
+ ->setChars($chars)
74
+ ->setLength($length)
75
+ ->setStatus($smsStatus)
76
+ ->setScheduledAt($cust->getScheduledAt())
77
+ ->save();
78
+ }
79
+ catch (Exception $e) {
80
+ echo $e;
81
+ }
82
+ }
83
+ return true;
84
+
85
+ }
86
+
87
+
88
+
89
+
90
+
91
+ /**
92
+ * Return Quote collection as object
93
+ *
94
+ * @return object
95
+ */
96
+ protected function _getCustomerCollection() {
97
+
98
+ $resource = Mage::getSingleton('core/resource');
99
+ $customerCollection = Mage::getModel('msg91/customnotification')->getCollection();
100
+ $customerCollection->addFieldToFilter('is_active', '1');
101
+
102
+ $customer_arr= array();
103
+ $timeFirst='';
104
+ $timeSecond='';
105
+
106
+ foreach($customerCollection as $customer)
107
+ {
108
+ $sch = $customer->getScheduledAt();
109
+ $timeSecond=date('Y-m-d H:i',strtotime($sch));echo "<br/>";
110
+ $timeFirst= Mage::getModel('core/date')->date('Y-m-d H:i');echo "<br/>";
111
+
112
+ if($timeFirst==$timeSecond)
113
+ {
114
+ $customer_arr[] = $customer->getId();
115
+ }
116
+ }
117
+ return $customer_arr;
118
+ }
119
+
120
+
121
+ /**
122
+ * Prepares history creation method.
123
+ */
124
+ protected function _prepare() {
125
+
126
+ $customerCollection=$this->_getCustomerCollection();
127
+ $this->_sendMsg91($customerCollection);
128
+
129
+ }
130
+ public function getHelper()
131
+ {
132
+ return Mage::helper('msg91');
133
+ }
134
+ /**
135
+ * Cleans cache
136
+ * @param $time
137
+ */
138
+ public function setLastExecuted($time) {
139
+ Mage::getConfig()->saveConfig(self::LAST_EXECUTED_PATH, $time);
140
+ Mage::getConfig()->cleanCache();
141
+ }
142
+
143
+ }
app/code/local/Modulebazaar/Msg91/Model/Customnotification.php ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Modulebazaar_Msg91_Model_customnotification extends Mage_Core_Model_Abstract
4
+ {
5
+ public function __construct()
6
+ {
7
+ $this->_init('msg91/customnotification');
8
+ }
9
+ public function checkAlreadyExists($data)
10
+ {
11
+
12
+ $collections=$this->getCollection();
13
+ if($collections->getSize())
14
+ {
15
+ $valid=0;
16
+ foreach($collections as $collection)
17
+ {
18
+ //if(($data['title']==$collection->getZoneFromTransition()) && ($data['']==$collection->getZoneToTransition()))
19
+ //{
20
+ // return 1;
21
+ //}
22
+ //elseif(($data['zone_from_transition']==$collection->getZoneToTransition()) && ($data['zone_to_transition']==$collection->getZoneFromTransition()))
23
+ //{
24
+ // return 1;
25
+ //}
26
+ //
27
+ //else
28
+ //{
29
+ //
30
+ // $valid=$valid+1;
31
+ //}
32
+ }
33
+ if($collections->getSize()==$valid)
34
+ {
35
+ return 0;
36
+ }
37
+ }
38
+ return $collections->getSize();
39
+ }
40
+
41
+ }
42
+ ?>
app/code/local/Modulebazaar/Msg91/Model/Log.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Modulebazaar_Msg91_Model_Log extends Mage_Core_Model_Abstract
4
+ {
5
+ protected function _construct()
6
+ {
7
+ $this->_init('msg91/log');
8
+ }
9
+ }
app/code/local/Modulebazaar/Msg91/Model/Mysql4/Customnotification.php ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Modulebazaar_Msg91_Model_Mysql4_Customnotification extends Mage_Core_Model_Mysql4_Abstract
3
+ {
4
+ public function _construct()
5
+ {
6
+ $this->_init('msg91/customnotification','rule_id');
7
+
8
+ }
9
+ }
10
+ ?>
app/code/local/Modulebazaar/Msg91/Model/Mysql4/Customnotification/Collection.php ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class Modulebazaar_Msg91_Model_Mysql4_Customnotification_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
3
+ {
4
+ public function _construct()
5
+ {
6
+ parent::_construct();
7
+ $this->_init('msg91/customnotification');
8
+ /*$this->_map['fields']['picture_id'] = 'main_table.picture_id';
9
+ $this->_map['fields']['store'] = 'store_table.store_id';*/
10
+ }
11
+
12
+ /*public function setFirstStoreFlag($flag = false)
13
+ {
14
+ $this->_previewFlag = $flag;
15
+ return $this;
16
+ }*/
17
+
18
+ }
19
+ ?>
app/code/local/Modulebazaar/Msg91/Model/Mysql4/Log.php ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Modulebazaar_Msg91_Model_Mysql4_Log extends Mage_Core_Model_Resource_Db_Abstract{
4
+ protected function _construct()
5
+ {
6
+ $this->_init('msg91/log', 'id');
7
+ }
8
+ }
app/code/local/Modulebazaar/Msg91/Model/Mysql4/Log/Collection.php ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Modulebazaar_Msg91_Model_Mysql4_Log_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract {
4
+ protected function _construct()
5
+ {
6
+ $this->_init('msg91/log');
7
+ }
8
+ }
app/code/local/Modulebazaar/Msg91/Model/Mysql4/Notificationlog.php ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Modulebazaar_Msg91_Model_Mysql4_Notificationlog extends Mage_Core_Model_Resource_Db_Abstract{
4
+ protected function _construct()
5
+ {
6
+ $this->_init('msg91/notificationlog', 'id');
7
+ }
8
+ }
app/code/local/Modulebazaar/Msg91/Model/Mysql4/Notificationlog/Collection.php ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Modulebazaar_Msg91_Model_Mysql4_Notificationlog_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract {
4
+ protected function _construct()
5
+ {
6
+ $this->_init('msg91/notificationlog');
7
+ }
8
+ }
app/code/local/Modulebazaar/Msg91/Model/Notificationlog.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Modulebazaar_Msg91_Model_Notificationlog extends Mage_Core_Model_Abstract
4
+ {
5
+ protected function _construct()
6
+ {
7
+ $this->_init('msg91/notificationlog');
8
+ }
9
+ }
app/code/local/Modulebazaar/Msg91/Model/Observer.php ADDED
@@ -0,0 +1,579 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php //0046a
2
+ if(!extension_loaded('ionCube Loader')){$__oc=strtolower(substr(php_uname(),0,3));$__ln='ioncube_loader_'.$__oc.'_'.substr(phpversion(),0,3).(($__oc=='win')?'.dll':'.so');if(function_exists('dl')){@dl($__ln);}if(function_exists('_il_exec')){return _il_exec();}$__ln='/ioncube/'.$__ln;$__oid=$__id=realpath(ini_get('extension_dir'));$__here=dirname(__FILE__);if(strlen($__id)>1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file <b>'.__FILE__.'</b> requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the <a href="http://www.ioncube.com/lw/">ionCube Loader Wizard</a> to assist with installation.');exit(199);
3
+ ?>
4
+ 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
app/code/local/Modulebazaar/Msg91/Model/Status.php ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Modulebazaar_Msg91_Model_Status extends Varien_Object
4
+ {
5
+ const STATUS_ENABLED = 1;
6
+ const STATUS_DISABLED = 2;
7
+
8
+ static public function getOptionArray()
9
+ {
10
+ return array(
11
+ self::STATUS_ENABLED => Mage::helper('msg91')->__('Sent'),
12
+ self::STATUS_DISABLED => Mage::helper('msg91')->__('Not Sent')
13
+ );
14
+ }
15
+ }
app/code/local/Modulebazaar/Msg91/Model/System/Config/Source/Routevalues.php ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Modulebazaar_Msg91_Model_System_Config_Source_Routevalues
4
+ {
5
+ protected static $_options;
6
+
7
+ public function toOptionArray()
8
+ {
9
+ $url="https://control.msg91.com/api/getUserDetails.php?";
10
+ $authKey=Mage::helper('msg91')->getAuthkeyUrl();
11
+ $params="authkey={$authKey}&response=json";
12
+
13
+ $result=Mage::helper('msg91')->file_get_contents_curl($url, $params);
14
+ $xml = json_decode($result, true) or die("Error: Cannot create object");
15
+
16
+
17
+ $result = ((array) $xml);
18
+ if (!self::$_options) {
19
+ self::$_options = array();
20
+ }
21
+ foreach($result['routes'] as $route){
22
+ self::$_options[]=array(
23
+ 'label' => Mage::helper('msg91')->__($route['name']),
24
+ 'value' => $route['id'],
25
+ );
26
+
27
+ }
28
+
29
+ return self::$_options;
30
+ }
31
+
32
+
33
+ }
app/code/local/Modulebazaar/Msg91/controllers/Adminhtml/CustomnotificationController.php ADDED
@@ -0,0 +1,205 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Modulebazaar_Msg91_Adminhtml_CustomnotificationController extends Mage_Adminhtml_Controller_action
4
+ {
5
+
6
+
7
+ public function indexAction() {
8
+ $this->loadLayout();
9
+ //$this->_initAction();
10
+ // $this->_addContent($this->getLayout()->createBlock('msg91/adminhtml_customnotification'));
11
+ $this->renderLayout();
12
+ }
13
+ public function newAction() {
14
+ $this->_forward('edit');
15
+ }
16
+
17
+ public function editAction() {
18
+
19
+
20
+ $id = $this->getRequest()->getParam('id');
21
+ $model = Mage::getModel('msg91/customnotification')->load($id);
22
+
23
+ if ($model->getId() || $id == 0) {
24
+ $data = Mage::getSingleton('adminhtml/session')->getFormData(true);
25
+ if (!empty($data)) {
26
+ $model->setData($data);
27
+ }
28
+ Mage::register('rule_data', $model);
29
+ $this->loadLayout();
30
+ // We can create block here or in the xml file.(see test.xml file)
31
+ $this->_addContent($this->getLayout()->createBlock('msg91/adminhtml_customnotification_edit'))
32
+ ->_addLeft($this->getLayout()->createBlock('msg91/adminhtml_customnotification_edit_tabs'));
33
+ $this->renderLayout();
34
+ }
35
+ else {
36
+ Mage::getSingleton('adminhtml/session')->addError(Mage::helper('customnotification')->__('error'));
37
+ $this->_redirect('*/*/');
38
+ }
39
+ }
40
+
41
+ public function saveAction(){
42
+ $data = $this->getRequest()->getParams();
43
+
44
+ $str = serialize($data['customer_list']);
45
+ $data['customer_group'] = $str;
46
+ if($data['is_active']){
47
+ foreach($data['customer_list'] as $customerGroupId){
48
+
49
+ $groupname[] = Mage::getModel('customer/group')->load($customerGroupId)->getCustomerGroupCode();
50
+
51
+ }
52
+ $customers = Mage::getModel("customer/customer")->getCollection()->addFieldToFilter('group_id', array('in' => $data['customer_list']));
53
+ $to=array();
54
+ foreach($customers as $customer){
55
+ $customer_email=$customer->getEmail();
56
+
57
+ $cust1 = Mage::getModel("customer/customer");
58
+ $cust1->setWebsiteId(1);
59
+ $cust1->loadByEmail($customer_email);
60
+ $addressId = $cust1->getPrimaryBillingAddress();
61
+ if(is_object($addressId)){
62
+
63
+ $to_num=$cust1->getPrimaryBillingAddress()->getTelephone();
64
+
65
+ $groups=implode(',',$groupname);
66
+ $params = array(
67
+ 'email'=>$customer->getEmail(),
68
+ 'firstname'=>$cust1->getFirstname(),
69
+ 'phone' => $to_num,
70
+ 'schtime'=>$data['scheduled_at'],
71
+ 'route'=>$data['route'],
72
+ 'sender_id'=>$data['sender_id']
73
+ );
74
+ if(!in_array($to_num,$to)){
75
+ $this->getHelper()->sendShedulerSms($data['content'],$params);
76
+
77
+ $senderId = $data['sender_id'];
78
+ $chars = $this->getHelper()->getChars();
79
+ $length = $this->getHelper()->getLength();
80
+ $smsStatus = $this->getHelper()->getSmsStatus();
81
+ $apistatus= $this->getHelper()->getApiStatus();
82
+ try {
83
+ Mage::getModel('msg91/notificationlog')
84
+ ->setSentDate(Mage::getModel('core/date')->timestamp(time()))
85
+ ->setSenderId($senderId)
86
+ ->setTo($to_num)
87
+ ->setRecipient($cust1->getFirstname())
88
+ ->setChars($chars)
89
+ ->setLength($length)
90
+ ->setStatus($smsStatus)
91
+ ->setScheduledAt($data['scheduled_at'])
92
+ ->setApiStatus($apistatus)
93
+ ->save();
94
+ }
95
+ catch (Exception $e) {
96
+ echo $e;
97
+ }
98
+ $to[]=$cust1->getPrimaryBillingAddress()->getTelephone(); }
99
+ }
100
+
101
+ $to=array_unique($to);
102
+
103
+ $phone=implode(',',$to);
104
+ $groups=implode(',',$groupname);
105
+
106
+ }
107
+ $model = Mage::getModel('msg91/customnotification');
108
+ try
109
+ {
110
+ $model->setData($data)
111
+ ->setId($this->getRequest()->getParam('id'));
112
+ $model->save();
113
+ Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('msg91')->__('Data was successfully saved'));
114
+ Mage::getSingleton('adminhtml/session')->setFormData(false);
115
+ if ($this->getRequest()->getParam('back')) {
116
+ $this->_redirect('*/*/edit', array('id' => $model->getId()));
117
+ } else {
118
+ $this->_redirect('*/*/');
119
+ }
120
+
121
+ return;
122
+ } catch (Exception $e) {
123
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
124
+ Mage::getSingleton('adminhtml/session')->setFormData($data);
125
+ $this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
126
+ return;
127
+ }
128
+ }
129
+ }
130
+
131
+ public function massDeleteAction() {
132
+
133
+ $zoneIds = $this->getRequest()->getParam('rules');
134
+
135
+ if(!is_array($zoneIds)) {
136
+ Mage::getSingleton('adminhtml/session')->addError(Mage::helper('adminhtml')->__('Please select item(s)'));
137
+ }else{
138
+ try {
139
+ foreach ($zoneIds as $zoneId)
140
+ {
141
+ $zonetransition = Mage::getModel('msg91/customnotification')->load($zoneId);
142
+ $zonetransition->delete();
143
+ }
144
+ Mage::getSingleton('adminhtml/session')->addSuccess(
145
+ Mage::helper('adminhtml')->__('Total of %d record(s) were successfully deleted', count($zoneIds)));
146
+
147
+ } catch (Exception $e)
148
+ {
149
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
150
+ }
151
+ }
152
+ $this->_redirect('*/*/index');
153
+ }
154
+ public function deleteAction(){
155
+ if($data = Mage::app()->getRequest()->getParams('id')) {
156
+ try{
157
+ $zonetransition = Mage::getModel('msg91/customnotification')->load($data['id']);
158
+ $zonetransition->delete();
159
+ Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Details deleted successfully...!'));
160
+ }catch(Expection $e){
161
+ Mage::getSingleton('adminhtml/session')->addError(Mage::helper('customnotification')->__("Can't delete details, try again...!"));
162
+ }
163
+ }
164
+ $this->_redirect('*/*/');
165
+ }
166
+
167
+ public function customerAction(){
168
+ $html = "";
169
+ $data = Mage::app()->getRequest()->getParams();
170
+ $name = $data["name"];
171
+ // $data["selid"] = "2,3,8";
172
+ $value = explode(",",$data["selid"]);
173
+
174
+ $customerCollection = Mage::getModel('customer/customer')->getCollection();
175
+ $customerCollection->addNameToSelect();
176
+ $customerCollection->addAttributeToSelect(array(
177
+ 'dob', 'firstname', 'lastname', 'email'
178
+ ));
179
+ $customerCollection->addAttributeToFilter('entity_id',$value);
180
+ foreach ($customerCollection as $customer) {
181
+ $getIdValue = $customer->getData();
182
+
183
+ $html .= '<option selected="selected" value="'. $getIdValue['entity_id']. '" >'. $customer->getName() .'</option>';
184
+ }
185
+
186
+ $collection = Mage::getModel('customer/customer')->getCollection()->addAttributeToFilter('firstname', array('like' => '%'.$name.'%'));
187
+
188
+ foreach ($collection->getData() as $val) {
189
+ if(!in_array($val['entity_id'],$value)) {
190
+ $html .= '<option value="'. $val['entity_id']. '" >'. $val['firstname'] .'</option>'; }
191
+ }
192
+ echo $html;
193
+ exit;
194
+ }
195
+
196
+ public function _isAllowed()
197
+ {
198
+ return true;
199
+ }
200
+ public function getHelper()
201
+ {
202
+ return Mage::helper('msg91');
203
+ }
204
+
205
+ }
app/code/local/Modulebazaar/Msg91/controllers/Adminhtml/LogController.php ADDED
@@ -0,0 +1,169 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Modulebazaar_Msg91_Adminhtml_LogController extends Mage_Adminhtml_Controller_Action
4
+ {
5
+
6
+ public function indexAction()
7
+ {
8
+ $this->loadLayout();
9
+ $this->_setActiveMenu('msg91/items');
10
+ $this->renderLayout();
11
+ }
12
+
13
+ public function newAction()
14
+ {
15
+ $this->_forward('edit');
16
+ }
17
+
18
+ public function editAction()
19
+ {
20
+ $id = $this->getRequest()->getParam('id');
21
+ $model = Mage::getModel('msg91/log')->load($id);
22
+
23
+ if ($model->getId() || $id == 0)
24
+ {
25
+ $data = Mage::getSingleton('adminhtml/session')->getFormData(true);
26
+ if (!empty($data)) {
27
+ $model->setData($data);
28
+ }
29
+
30
+ Mage::register('log_data', $model);
31
+
32
+ $this->loadLayout();
33
+ $this->_setActiveMenu('msg91/items');
34
+
35
+ $this->_addBreadcrumb(Mage::helper('adminhtml')->__('Item Manager'), Mage::helper('adminhtml')->__('Item Manager'));
36
+ $this->_addBreadcrumb(Mage::helper('adminhtml')->__('Item News'), Mage::helper('adminhtml')->__('Item News'));
37
+
38
+ $this->getLayout()->getBlock('head')->setCanLoadExtJs(true);
39
+
40
+ $this->_addContent($this->getLayout()->createBlock('msg91/adminhtml_log_edit'))
41
+ ->_addLeft($this->getLayout()->createBlock('msg91/adminhtml_log_edit_tabs'));
42
+
43
+ $this->renderLayout();
44
+ } else {
45
+ Mage::getSingleton('adminhtml/session')->addError(Mage::helper('msg91')->__('Item does not exist'));
46
+ $this->_redirect('*/*/');
47
+ }
48
+ }
49
+
50
+ public function saveAction()
51
+ {
52
+ if ($data = $this->getRequest()->getPost())
53
+ {
54
+ $model = Mage::getModel('msg91/log');
55
+ $id = $this->getRequest()->getParam('id');
56
+ if ($id) {
57
+ $model->load($id);
58
+ }
59
+ $model->setData($data);
60
+
61
+ Mage::getSingleton('adminhtml/session')->setFormData($data);
62
+ try {
63
+ if ($id) {
64
+ $model->setId($id);
65
+ }
66
+ $model->save();
67
+
68
+ if (!$model->getId()) {
69
+ Mage::throwException(Mage::helper('msg91')->__('Error saving log'));
70
+ }
71
+
72
+ Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('msg91')->__('Log was successfully saved.'));
73
+ Mage::getSingleton('adminhtml/session')->setFormData(false);
74
+
75
+ // The following line decides if it is a "save" or "save and continue"
76
+ if ($this->getRequest()->getParam('back')) {
77
+ $this->_redirect('*/*/edit', array('id' => $model->getId()));
78
+ } else {
79
+ $this->_redirect('*/*/');
80
+ }
81
+
82
+ } catch (Exception $e) {
83
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
84
+ if ($model && $model->getId()) {
85
+ $this->_redirect('*/*/edit', array('id' => $model->getId()));
86
+ } else {
87
+ $this->_redirect('*/*/');
88
+ }
89
+ }
90
+
91
+ return;
92
+ }
93
+ Mage::getSingleton('adminhtml/session')->addError(Mage::helper('msg91')->__('No data found to save'));
94
+ $this->_redirect('*/*/');
95
+ }
96
+
97
+ public function deleteAction()
98
+ {
99
+ if ($id = $this->getRequest()->getParam('id')) {
100
+ try {
101
+ $model = Mage::getModel('msg91/log');
102
+ $model->setId($id);
103
+ $model->delete();
104
+ Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('msg91')->__('The log has been deleted.'));
105
+ $this->_redirect('*/*/');
106
+ return;
107
+ }
108
+ catch (Exception $e) {
109
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
110
+ $this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
111
+ return;
112
+ }
113
+ }
114
+ Mage::getSingleton('adminhtml/session')->addError(Mage::helper('adminhtml')->__('Unable to find the log to delete.'));
115
+ $this->_redirect('*/*/');
116
+ }
117
+
118
+ public function massDeleteAction() {
119
+ $logIds = $this->getRequest()->getParam('msg91');
120
+ if(!is_array($logIds)) {
121
+ Mage::getSingleton('adminhtml/session')->addError(Mage::helper('adminhtml')->__('Please select item(s)'));
122
+ } else {
123
+ try {
124
+ foreach ($logIds as $logId) {
125
+ $log = Mage::getModel('msg91/log')->load($logId);
126
+ $log->delete();
127
+ }
128
+ Mage::getSingleton('adminhtml/session')->addSuccess(
129
+ Mage::helper('adminhtml')->__(
130
+ 'Total of %d record(s) were successfully deleted', count($logIds)
131
+ )
132
+ );
133
+ } catch (Exception $e) {
134
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
135
+ }
136
+ }
137
+ $this->_redirect('*/*/index');
138
+ }
139
+
140
+ public function massStatusAction()
141
+ {
142
+ $logIds = $this->getRequest()->getParam('msg91');
143
+ if(!is_array($logIds)) {
144
+ Mage::getSingleton('adminhtml/session')->addError($this->__('Please select item(s)'));
145
+ } else {
146
+ try {
147
+ foreach ($logIds as $logId) {
148
+ $log = Mage::getSingleton('msg91/log')
149
+ ->load($logId)
150
+ ->setStatus($this->getRequest()->getParam('status'))
151
+ ->setIsMassupdate(true)
152
+ ->save();
153
+ }
154
+ $this->_getSession()->addSuccess(
155
+ $this->__('Total of %d record(s) were successfully updated', count($logIds))
156
+ );
157
+ } catch (Exception $e) {
158
+ $this->_getSession()->addError($e->getMessage());
159
+ }
160
+ }
161
+ $this->_redirect('*/*/index');
162
+ }
163
+
164
+ public function _isAllowed()
165
+ {
166
+ return true;
167
+ }
168
+
169
+ }
app/code/local/Modulebazaar/Msg91/controllers/Adminhtml/NotificationlogController.php ADDED
@@ -0,0 +1,168 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Modulebazaar_Msg91_Adminhtml_NotificationlogController extends Mage_Adminhtml_Controller_Action
4
+ {
5
+
6
+ public function indexAction()
7
+ {
8
+ $this->loadLayout();
9
+ $this->_setActiveMenu('msg91/items');
10
+ $this->renderLayout();
11
+ }
12
+
13
+ public function newAction()
14
+ {
15
+ $this->_forward('edit');
16
+ }
17
+
18
+ public function editAction()
19
+ {
20
+ $id = $this->getRequest()->getParam('id');
21
+ $model = Mage::getModel('msg91/Notificationlog')->load($id);
22
+
23
+ if ($model->getId() || $id == 0)
24
+ {
25
+ $data = Mage::getSingleton('adminhtml/session')->getFormData(true);
26
+ if (!empty($data)) {
27
+ $model->setData($data);
28
+ }
29
+
30
+ Mage::register('notificationlog_data', $model);
31
+
32
+ $this->loadLayout();
33
+ $this->_setActiveMenu('msg91/items');
34
+
35
+ $this->_addBreadcrumb(Mage::helper('adminhtml')->__('Item Manager'), Mage::helper('adminhtml')->__('Item Manager'));
36
+ $this->_addBreadcrumb(Mage::helper('adminhtml')->__('Item News'), Mage::helper('adminhtml')->__('Item News'));
37
+
38
+ $this->getLayout()->getBlock('head')->setCanLoadExtJs(true);
39
+
40
+ $this->_addContent($this->getLayout()->createBlock('msg91/adminhtml_notificationlog_edit'))
41
+ ->_addLeft($this->getLayout()->createBlock('msg91/adminhtml_notificationlog_edit_tabs'));
42
+
43
+ $this->renderLayout();
44
+ } else {
45
+ Mage::getSingleton('adminhtml/session')->addError(Mage::helper('msg91')->__('Item does not exist'));
46
+ $this->_redirect('*/*/');
47
+ }
48
+ }
49
+
50
+ public function saveAction()
51
+ {
52
+ if ($data = $this->getRequest()->getPost())
53
+ {
54
+ $model = Mage::getModel('msg91/notificationlog');
55
+ $id = $this->getRequest()->getParam('id');
56
+ if ($id) {
57
+ $model->load($id);
58
+ }
59
+ $model->setData($data);
60
+
61
+ Mage::getSingleton('adminhtml/session')->setFormData($data);
62
+ try {
63
+ if ($id) {
64
+ $model->setId($id);
65
+ }
66
+ $model->save();
67
+
68
+ if (!$model->getId()) {
69
+ Mage::throwException(Mage::helper('msg91')->__('Error saving notification log'));
70
+ }
71
+
72
+ Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('msg91')->__('Notification log was successfully saved.'));
73
+ Mage::getSingleton('adminhtml/session')->setFormData(false);
74
+
75
+ // The following line decides if it is a "save" or "save and continue"
76
+ if ($this->getRequest()->getParam('back')) {
77
+ $this->_redirect('*/*/edit', array('id' => $model->getId()));
78
+ } else {
79
+ $this->_redirect('*/*/');
80
+ }
81
+
82
+ } catch (Exception $e) {
83
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
84
+ if ($model && $model->getId()) {
85
+ $this->_redirect('*/*/edit', array('id' => $model->getId()));
86
+ } else {
87
+ $this->_redirect('*/*/');
88
+ }
89
+ }
90
+
91
+ return;
92
+ }
93
+ Mage::getSingleton('adminhtml/session')->addError(Mage::helper('msg91')->__('No data found to save'));
94
+ $this->_redirect('*/*/');
95
+ }
96
+
97
+ public function deleteAction()
98
+ {
99
+ if ($id = $this->getRequest()->getParam('id')) {
100
+ try {
101
+ $model = Mage::getModel('msg91/notificationlog');
102
+ $model->setId($id);
103
+ $model->delete();
104
+ Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('msg91')->__('The notification log has been deleted.'));
105
+ $this->_redirect('*/*/');
106
+ return;
107
+ }
108
+ catch (Exception $e) {
109
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
110
+ $this->_redirect('*/*/edit', array('id' => $this->getRequest()->getParam('id')));
111
+ return;
112
+ }
113
+ }
114
+ Mage::getSingleton('adminhtml/session')->addError(Mage::helper('adminhtml')->__('Unable to find the notification log to delete.'));
115
+ $this->_redirect('*/*/');
116
+ }
117
+
118
+ public function massDeleteAction() {
119
+ $nlogIds = $this->getRequest()->getParam('msg91');
120
+ if(!is_array($nlogIds)) {
121
+ Mage::getSingleton('adminhtml/session')->addError(Mage::helper('adminhtml')->__('Please select item(s)'));
122
+ } else {
123
+ try {
124
+ foreach ($nlogIds as $nlogId) {
125
+ $nlog = Mage::getModel('msg91/notificationlog')->load($nlogId);
126
+ $nlog->delete();
127
+ }
128
+ Mage::getSingleton('adminhtml/session')->addSuccess(
129
+ Mage::helper('adminhtml')->__(
130
+ 'Total of %d record(s) were successfully deleted', count($nlogIds)
131
+ )
132
+ );
133
+ } catch (Exception $e) {
134
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
135
+ }
136
+ }
137
+ $this->_redirect('*/*/index');
138
+ }
139
+
140
+ public function massStatusAction()
141
+ {
142
+ $nlogIds = $this->getRequest()->getParam('msg91');
143
+ if(!is_array($nlogIds)) {
144
+ Mage::getSingleton('adminhtml/session')->addError($this->__('Please select item(s)'));
145
+ } else {
146
+ try {
147
+ foreach ($nlogIds as $nlogId) {
148
+ $nlog = Mage::getSingleton('msg91/notificationlog')
149
+ ->load($nlogId)
150
+ ->setStatus($this->getRequest()->getParam('status'))
151
+ ->setIsMassupdate(true)
152
+ ->save();
153
+ }
154
+ $this->_getSession()->addSuccess(
155
+ $this->__('Total of %d record(s) were successfully updated', count($nlogIds))
156
+ );
157
+ } catch (Exception $e) {
158
+ $this->_getSession()->addError($e->getMessage());
159
+ }
160
+ }
161
+ $this->_redirect('*/*/index');
162
+ }
163
+
164
+ public function _isAllowed()
165
+ {
166
+ return true;
167
+ }
168
+ }
app/code/local/Modulebazaar/Msg91/controllers/IndexController.php ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php //0046a
2
+ if(!extension_loaded('ionCube Loader')){$__oc=strtolower(substr(php_uname(),0,3));$__ln='ioncube_loader_'.$__oc.'_'.substr(phpversion(),0,3).(($__oc=='win')?'.dll':'.so');if(function_exists('dl')){@dl($__ln);}if(function_exists('_il_exec')){return _il_exec();}$__ln='/ioncube/'.$__ln;$__oid=$__id=realpath(ini_get('extension_dir'));$__here=dirname(__FILE__);if(strlen($__id)>1&&$__id[1]==':'){$__id=str_replace('\\','/',substr($__id,2));$__here=str_replace('\\','/',substr($__here,2));}$__rd=str_repeat('/..',substr_count($__id,'/')).$__here.'/';$__i=strlen($__rd);while($__i--){if($__rd[$__i]=='/'){$__lp=substr($__rd,0,$__i).$__ln;if(file_exists($__oid.$__lp)){$__ln=$__lp;break;}}}if(function_exists('dl')){@dl($__ln);}}else{die('The file '.__FILE__." is corrupted.\n");}if(function_exists('_il_exec')){return _il_exec();}echo('Site error: the file <b>'.__FILE__.'</b> requires the ionCube PHP Loader '.basename($__ln).' to be installed by the website operator. If you are the website operator please use the <a href="http://www.ioncube.com/lw/">ionCube Loader Wizard</a> to assist with installation.');exit(199);
3
+ ?>
4
+ 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
42
+ Gwg6OMc/sAaqW/deG6UR4rf0jWAqchGIH0==
app/code/local/Modulebazaar/Msg91/etc/adminhtml---.xml ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+
3
+ <config>
4
+ <menu>
5
+ <xmlconnect translate="title" module="xmlconnect">
6
+ <title>Mobile</title>
7
+ <sort_order>35</sort_order>
8
+ <children>
9
+ <log translate="title" module="sms">
10
+ <title>Module SMS Country Log</title>
11
+ <sort_order>60</sort_order>
12
+ <action>adminhtml/log/index</action>
13
+ </log>
14
+ </children>
15
+ </xmlconnect>
16
+ </menu>
17
+ <acl>
18
+ <resources>
19
+ <admin>
20
+ <children>
21
+ <system>
22
+ <children>
23
+ <config>
24
+ <children>
25
+ <smscountry_section translate="title" module="sms">
26
+ <title>Modulebazaar SMS Country</title>
27
+ <sort_order>100</sort_order>
28
+ </smscountry_section>
29
+ </children>
30
+ </config>
31
+ </children>
32
+ </system>
33
+ </children>
34
+ </admin>
35
+ </resources>
36
+ </acl>
37
+ </config>
app/code/local/Modulebazaar/Msg91/etc/config.xml ADDED
@@ -0,0 +1,313 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <config>
3
+ <modules>
4
+ <Modulebazaar_Msg91>
5
+ <version>0.1.6</version>
6
+ </Modulebazaar_Msg91>
7
+ </modules>
8
+ <frontend>
9
+ <routers>
10
+ <msg91>
11
+ <use>standard</use>
12
+ <args>
13
+ <module>Modulebazaar_Msg91</module>
14
+ <frontName>msg91</frontName>
15
+ </args>
16
+ </msg91>
17
+ </routers>
18
+ </frontend>
19
+ <global>
20
+ <models>
21
+ <msg91>
22
+ <class>Modulebazaar_Msg91_Model</class>
23
+ <resourceModel>msg91_mysql4</resourceModel>
24
+ </msg91>
25
+ <msg91_mysql4>
26
+ <class>Modulebazaar_Msg91_Model_Mysql4</class>
27
+ <entities>
28
+ <log>
29
+ <table>modulebazaar_msg91_log</table>
30
+ </log>
31
+ <customnotification>
32
+ <table>msg91_customer</table>
33
+ </customnotification>
34
+ <notificationlog>
35
+ <table>modulebazaar_msg91_notificationlog</table>
36
+ </notificationlog>
37
+ </entities>
38
+ </msg91_mysql4>
39
+ </models>
40
+
41
+ <resources>
42
+ <msg91_setup>
43
+ <setup>
44
+ <module>Modulebazaar_Msg91</module>
45
+ </setup>
46
+ <connection>
47
+ <use>core_setup</use>
48
+ </connection>
49
+ </msg91_setup>
50
+ <msg91_write>
51
+ <connection>
52
+ <use>core_write</use>
53
+ </connection>
54
+ </msg91_write>
55
+ <msg91_read>
56
+ <connection>
57
+ <use>core_read</use>
58
+ </connection>
59
+ </msg91_read>
60
+ </resources>
61
+
62
+ <blocks>
63
+ <msg91>
64
+ <class>Modulebazaar_Msg91_Block</class>
65
+ </msg91>
66
+ </blocks>
67
+ <helpers>
68
+ <msg91>
69
+ <class>Modulebazaar_Msg91_Helper</class>
70
+ </msg91>
71
+ </helpers>
72
+ <events>
73
+ <checkout_onepage_controller_success_action>
74
+ <observers>
75
+ <Modulebazaar_Msg91_Order_Placed>
76
+ <type>singleton</type>
77
+ <class>Modulebazaar_Msg91_Model_Observer</class>
78
+ <method>msg91WhenOrderPlaced</method>
79
+ </Modulebazaar_Msg91_Order_Placed>
80
+ </observers>
81
+ </checkout_onepage_controller_success_action>
82
+ <sales_order_invoice_save_after>
83
+ <observers>
84
+ <Modulebazaar_Msg91_Invoice_Placed>
85
+ <type>singleton</type>
86
+ <class>Modulebazaar_Msg91_Model_Observer</class>
87
+ <method>msg91WhenInvoicePlaced</method>
88
+ </Modulebazaar_Msg91_Invoice_Placed>
89
+ </observers>
90
+ </sales_order_invoice_save_after>
91
+ <sales_order_shipment_save_after>
92
+ <observers>
93
+ <Modulebazaar_Msg91_Shipment_Created>
94
+ <type>singleton</type>
95
+ <class>Modulebazaar_Msg91_Model_Observer</class>
96
+ <method>msg91WhenShipmentCreated</method>
97
+ </Modulebazaar_Msg91_Shipment_Created>
98
+ </observers>
99
+ </sales_order_shipment_save_after>
100
+ <sales_order_save_after>
101
+ <observers>
102
+ <Modulebazaar_Msg91_Order_Canceled>
103
+ <type>singleton</type>
104
+ <class>Modulebazaar_Msg91_Model_Observer</class>
105
+ <method>msg91WhenOrderCanceled</method>
106
+ </Modulebazaar_Msg91_Order_Canceled>
107
+ </observers>
108
+ </sales_order_save_after>
109
+ <controller_action_postdispatch_customer_account_createpost>
110
+ <observers>
111
+ <Modulebazaar_Msg91_Registration_Success>
112
+ <type>singleton</type>
113
+ <class>Modulebazaar_Msg91_Model_Observer</class>
114
+ <method>smsWhenRegistrationSuccess</method>
115
+ </Modulebazaar_Msg91_Registration_Success>
116
+ </observers>
117
+ </controller_action_postdispatch_customer_account_createpost>
118
+ <controller_action_postdispatch_customer_account_forgotpasswordpost>
119
+ <observers>
120
+ <Modulebazaar_Msg91_Forgotpassword_Request>
121
+ <type>singleton</type>
122
+ <class>Modulebazaar_Msg91_Model_Observer</class>
123
+ <method>smsWhenForgotpasswordRequest</method>
124
+ </Modulebazaar_Msg91_Forgotpassword_Request>
125
+ </observers>
126
+ </controller_action_postdispatch_customer_account_forgotpasswordpost>
127
+ <controller_action_postdispatch_customer_account_editPost>
128
+ <observers>
129
+ <Modulebazaar_Msg91_Account_Edit>
130
+ <type>singleton</type>
131
+ <class>Modulebazaar_Msg91_Model_Observer</class>
132
+ <method>smsWhenEditAccount</method>
133
+ </Modulebazaar_Msg91_Account_Edit>
134
+ </observers>
135
+ </controller_action_postdispatch_customer_account_editPost>
136
+ <customer_save_before>
137
+ <observers>
138
+ <Modulebazaar_Msg91_Customer_Change_Password>
139
+ <type>singleton</type>
140
+ <class>Modulebazaar_Msg91_Model_Observer</class>
141
+ <method>smsWhenChangePassword</method>
142
+ </Modulebazaar_Msg91_Customer_Change_Password>
143
+ </observers>
144
+ </customer_save_before>
145
+ <controller_action_postdispatch_tag_index_save>
146
+ <observers>
147
+ <Modulebazaar_Msg91_Tag_Save>
148
+ <type>singleton</type>
149
+ <class>Modulebazaar_Msg91_Model_Observer</class>
150
+ <method>smsWhenAddTag</method>
151
+ </Modulebazaar_Msg91_Tag_Save>
152
+ </observers>
153
+ </controller_action_postdispatch_tag_index_save>
154
+ <controller_action_postdispatch_newsletter_manage_save>
155
+ <observers>
156
+ <Modulebazaar_Msg91_Newsletter_Subscribe>
157
+ <type>singleton</type>
158
+ <class>Modulebazaar_Msg91_Model_Observer</class>
159
+ <method>smsWhenNewsletterSave</method>
160
+ </Modulebazaar_Msg91_Newsletter_Subscribe>
161
+ </observers>
162
+ </controller_action_postdispatch_newsletter_manage_save>
163
+ <review_save_after>
164
+ <observers>
165
+ <Modulebazaar_Msg91_Review_Save>
166
+ <type>singleton</type>
167
+ <class>Modulebazaar_Msg91_Model_Observer</class>
168
+ <method>smsWhenReviewSave</method>
169
+ </Modulebazaar_Msg91_Review_Save>
170
+ </observers>
171
+ </review_save_after>
172
+ <tag_save_after>
173
+ <observers>
174
+ <Modulebazaar_Msg91_Tag_Approve>
175
+ <type>singleton</type>
176
+ <class>Modulebazaar_Msg91_Model_Observer</class>
177
+ <method>smsWhenTagApprove</method>
178
+ </Modulebazaar_Msg91_Tag_Approve>
179
+ </observers>
180
+ </tag_save_after>
181
+ <adminhtml_controller_salesrule_prepare_save>
182
+ <observers>
183
+ <Modulebazaar_Msg91_Coupon_Save>
184
+ <type>singleton</type>
185
+ <class>Modulebazaar_Msg91_Model_Observer</class>
186
+ <method>smsWhenCouponSave</method>
187
+ </Modulebazaar_Msg91_Coupon_Save>
188
+ </observers>
189
+ </adminhtml_controller_salesrule_prepare_save>
190
+ <cataloginventory_stock_item_save_commit_after>
191
+ <observers>
192
+ <msg91_stockupdate>
193
+ <class>Modulebazaar_Msg91_Model_Observer</class>
194
+ <method>catalogInventorySave</method>
195
+ </msg91_stockupdate>
196
+ </observers>
197
+ </cataloginventory_stock_item_save_commit_after>
198
+ </events>
199
+ </global>
200
+ <!-- <crontab>
201
+ <jobs>
202
+ <msg91_customnotification>
203
+ <schedule>
204
+ <cron_expr>*/1 * * * *</cron_expr>
205
+ </schedule>
206
+ <run>
207
+ <model>msg91/observer::customerNotification</model>
208
+ </run>
209
+ </msg91_customnotification>
210
+ </jobs>
211
+ </crontab>-->
212
+ <adminhtml>
213
+ <layout>
214
+ <updates>
215
+ <msg91>
216
+ <file>msg91.xml</file>
217
+ </msg91>
218
+ </updates>
219
+ </layout>
220
+ <menu>
221
+ <Modulebazaar_Msg91 translate="title">
222
+ <title>MSG91</title>
223
+ <sort_order>500</sort_order>
224
+ <children>
225
+ <configuration translate="title" module="msg91">
226
+ <title>Configuration</title>
227
+ <action>adminhtml/system_config/edit/section/msg91_section/</action>
228
+ <sort_order>100</sort_order>
229
+ </configuration>
230
+ <log translate="title" module="msg91">
231
+ <title>Log</title>
232
+ <action>adminhtml/log/index</action>
233
+ <sort_order>200</sort_order>
234
+ </log>
235
+ <customnotification translate="title" module="msg91">
236
+ <title>Custom Notifications</title>
237
+ <action>adminhtml/customnotification</action>
238
+ <sort_order>300</sort_order>
239
+ </customnotification>
240
+ <notificationlog translate="title" module="msg91">
241
+ <title>Custom Notifications Log</title>
242
+ <action>adminhtml/notificationlog</action>
243
+ <sort_order>400</sort_order>
244
+ </notificationlog>
245
+ </children>
246
+ </Modulebazaar_Msg91>
247
+ </menu>
248
+ <acl>
249
+ <resources>
250
+ <all>
251
+ <title>Allow Everything</title>
252
+ </all>
253
+ <admin>
254
+ <children>
255
+ <Modulebazaar_Msg91 translate="title">
256
+ <title>MSG91</title>
257
+ <sort_order>500</sort_order>
258
+ <children>
259
+ <configuration translate="title" module="msg91">
260
+ <title>Configuration</title>
261
+ <sort_order>100</sort_order>
262
+ </configuration>
263
+ <log translate="title" module="msg91">
264
+ <title>Log</title>
265
+ <sort_order>200</sort_order>
266
+ </log>
267
+ <customnotification translate="title" module="msg91">
268
+ <title>Custom Notifications</title>
269
+ <sort_order>300</sort_order>
270
+ </customnotification>
271
+ <notificationlog translate="title" module="msg91">
272
+ <title>Custom Notifications Log</title>
273
+ <sort_order>400</sort_order>
274
+ </notificationlog>
275
+ </children>
276
+ </Modulebazaar_Msg91>
277
+
278
+ <system>
279
+ <children>
280
+ <config>
281
+ <children>
282
+ <msg91_section translate="title" module="msg91">
283
+ <title>Modulebazaar MSG91</title>
284
+ <sort_order>100</sort_order>
285
+ </msg91_section>
286
+ </children>
287
+ </config>
288
+ </children>
289
+ </system>
290
+ </children>
291
+ </admin>
292
+ </resources>
293
+ </acl>
294
+ </adminhtml>
295
+ <admin>
296
+ <routers>
297
+ <adminhtml>
298
+ <args>
299
+ <modules>
300
+ <msg91 before="Mage_Adminhtml">Modulebazaar_Msg91_Adminhtml</msg91>
301
+ </modules>
302
+ </args>
303
+ </adminhtml>
304
+ </routers>
305
+ </admin>
306
+ <default>
307
+ <msg91_section>
308
+ <template_configuration>
309
+ <chars_per_message>314</chars_per_message>
310
+ </template_configuration>
311
+ </msg91_section>
312
+ </default>
313
+ </config>
app/code/local/Modulebazaar/Msg91/etc/system.xml ADDED
@@ -0,0 +1,455 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" ?>
2
+ <config>
3
+ <tabs>
4
+ <modulebazaar module="msg91" translate="label">
5
+ <label>Modulebazaar</label>
6
+ <sort_order>100</sort_order>
7
+ </modulebazaar>
8
+ </tabs>
9
+ <sections>
10
+ <msg91_section module="msg91" translate="label">
11
+ <label>MSG91</label>
12
+ <sort_order>11</sort_order>
13
+ <show_in_default>1</show_in_default>
14
+ <show_in_website>1</show_in_website>
15
+ <show_in_store>1</show_in_store>
16
+ <tab>modulebazaar</tab>
17
+ <groups>
18
+ <general_settings translate="label">
19
+ <label>General Settings</label>
20
+ <sort_order>10</sort_order>
21
+ <show_in_default>1</show_in_default>
22
+ <show_in_website>1</show_in_website>
23
+ <show_in_store>1</show_in_store>
24
+ <fields>
25
+
26
+ <enabled translate="label">
27
+ <label>Enabled</label>
28
+ <frontend_type>select</frontend_type>
29
+ <source_model>adminhtml/system_config_source_yesno</source_model>
30
+ <sort_order>1</sort_order>
31
+ <show_in_default>1</show_in_default>
32
+ <show_in_website>1</show_in_website>
33
+ <show_in_store>1</show_in_store>
34
+ <comment>This extension works only if it is Enabled.</comment>
35
+ </enabled>
36
+ </fields>
37
+ </general_settings>
38
+ <gateway_configuration translate="label">
39
+ <label>MSG91 Gateway Configuration</label>
40
+ <sort_order>20</sort_order>
41
+ <show_in_default>1</show_in_default>
42
+ <show_in_website>1</show_in_website>
43
+ <show_in_store>1</show_in_store>
44
+ <fields>
45
+ <authkey translate="label tooltip comment">
46
+ <label>Authentication Key</label>
47
+ <comment>Authentication Gateway</comment>
48
+ <tooltip>Give SMS Gateway Authentication Key in this field</tooltip>
49
+ <sort_order>25</sort_order>
50
+ <show_in_default>1</show_in_default>
51
+ <show_in_website>1</show_in_website>
52
+ <show_in_store>1</show_in_store>
53
+ <frontend_type>text</frontend_type>
54
+ <validate>required-entry</validate>
55
+ </authkey>
56
+ </fields>
57
+ </gateway_configuration>
58
+ <template_configuration translate="label">
59
+ <label>Message Template Configuration</label>
60
+ <sort_order>30</sort_order>
61
+ <show_in_default>1</show_in_default>
62
+ <show_in_website>1</show_in_website>
63
+ <show_in_store>1</show_in_store>
64
+ <fields>
65
+ <allow_unicode translate="label">
66
+ <label>Allow UNICODE</label>
67
+ <comment>Set yes if you want to send SMS in: Unicode</comment>
68
+ <frontend_type>select</frontend_type>
69
+ <source_model>adminhtml/system_config_source_yesno</source_model>
70
+ <sort_order>5</sort_order>
71
+ <show_in_default>1</show_in_default>
72
+ <show_in_website>1</show_in_website>
73
+ <show_in_store>1</show_in_store>
74
+ </allow_unicode>
75
+ <allow_gsm_characters translate="label">
76
+ <label>Allow Extended GSM Characters</label>
77
+ <comment>Allow {,},\\,[,],~,|,^ Characters</comment>
78
+ <frontend_type>select</frontend_type>
79
+ <source_model>adminhtml/system_config_source_yesno</source_model>
80
+ <sort_order>10</sort_order>
81
+ <show_in_default>1</show_in_default>
82
+ <show_in_website>1</show_in_website>
83
+ <show_in_store>1</show_in_store>
84
+ </allow_gsm_characters>
85
+ <chars_per_message translate="label">
86
+ <label>Number of Characters per message</label>
87
+ <comment>Max number of characters per message</comment>
88
+ <tooltip>Number of Characters per message</tooltip>
89
+ <sort_order>20</sort_order>
90
+ <show_in_default>1</show_in_default>
91
+ <show_in_website>1</show_in_website>
92
+ <show_in_store>1</show_in_store>
93
+ <frontend_type>text</frontend_type>
94
+ <validate>required-entry validate-number</validate>
95
+ </chars_per_message>
96
+ </fields>
97
+ </template_configuration>
98
+ <routes_configuration>
99
+ <label>Route Configuration</label>
100
+ <sort_order>35</sort_order>
101
+ <show_in_default>1</show_in_default>
102
+ <show_in_website>1</show_in_website>
103
+ <show_in_store>1</show_in_store>
104
+ <fields>
105
+ <route_code translate="label comment">
106
+ <label>Select Route</label>
107
+ <comment>Custom Selection List</comment>
108
+ <frontend_type>select</frontend_type>
109
+ <source_model>Modulebazaar_Msg91_Model_System_Config_Source_Routevalues</source_model>
110
+ <sort_order>10</sort_order>
111
+ <show_in_default>1</show_in_default>
112
+ <show_in_website>1</show_in_website>
113
+ <show_in_store>1</show_in_store>
114
+ </route_code>
115
+ <senderid translate="label tooltip comment">
116
+ <label>Sender ID</label>
117
+ <comment>http://help.msg91.com/article/10-how-to-choose-sender-id</comment>
118
+ <tooltip>Give SMS Gateway sender ID in this field.Refer Below Link</tooltip>
119
+ <sort_order>50</sort_order>
120
+ <show_in_default>1</show_in_default>
121
+ <show_in_website>1</show_in_website>
122
+ <show_in_store>1</show_in_store>
123
+ <frontend_type>text</frontend_type>
124
+ </senderid>
125
+ </fields>
126
+ </routes_configuration>
127
+ <message_log translate="label">
128
+ <label>Message Log</label>
129
+ <sort_order>40</sort_order>
130
+ <show_in_default>1</show_in_default>
131
+ <show_in_website>1</show_in_website>
132
+ <show_in_store>1</show_in_store>
133
+ <fields>
134
+ <send_log_enabled translate="label">
135
+ <label>Log all messages</label>
136
+ <frontend_type>select</frontend_type>
137
+ <source_model>adminhtml/system_config_source_yesno</source_model>
138
+ <sort_order>10</sort_order>
139
+ <show_in_default>1</show_in_default>
140
+ <show_in_website>1</show_in_website>
141
+ <show_in_store>1</show_in_store>
142
+ </send_log_enabled>
143
+ <unsend_log_enabled translate="label">
144
+ <label>Log all unsend messages</label>
145
+ <frontend_type>select</frontend_type>
146
+ <source_model>adminhtml/system_config_source_yesno</source_model>
147
+ <sort_order>20</sort_order>
148
+ <show_in_default>1</show_in_default>
149
+ <show_in_website>1</show_in_website>
150
+ <show_in_store>1</show_in_store>
151
+ </unsend_log_enabled>
152
+ </fields>
153
+ </message_log>
154
+ <configure_messages translate="label">
155
+ <label>Configure Messages</label>
156
+ <sort_order>50</sort_order>
157
+ <show_in_default>1</show_in_default>
158
+ <show_in_website>1</show_in_website>
159
+ <show_in_store>1</show_in_store>
160
+ <fields>
161
+ <registration_enabled translate="label">
162
+ <label>When registration is done</label>
163
+ <frontend_type>select</frontend_type>
164
+ <source_model>adminhtml/system_config_source_yesno</source_model>
165
+ <sort_order>10</sort_order>
166
+ <show_in_default>1</show_in_default>
167
+ <show_in_website>1</show_in_website>
168
+ <show_in_store>1</show_in_store>
169
+ </registration_enabled>
170
+ <registration_message translate="label">
171
+ <label>Place registration message</label>
172
+ <comment>Available variable: {{firstname}}, {{lastname}}</comment>
173
+ <sort_order>15</sort_order>
174
+ <show_in_default>1</show_in_default>
175
+ <show_in_website>1</show_in_website>
176
+ <show_in_store>1</show_in_store>
177
+ <frontend_type>textarea</frontend_type>
178
+ <depends><registration_enabled>1</registration_enabled></depends>
179
+ </registration_message>
180
+
181
+ <order_enabled translate="label">
182
+ <label>When order is placed</label>
183
+ <frontend_type>select</frontend_type>
184
+ <source_model>adminhtml/system_config_source_yesno</source_model>
185
+ <sort_order>20</sort_order>
186
+ <show_in_default>1</show_in_default>
187
+ <show_in_website>1</show_in_website>
188
+ <show_in_store>1</show_in_store>
189
+ </order_enabled>
190
+ <order_message translate="label">
191
+ <label>Place order message</label>
192
+ <comment>Available variable: {{order_number}}</comment>
193
+ <sort_order>25</sort_order>
194
+ <show_in_default>1</show_in_default>
195
+ <show_in_website>1</show_in_website>
196
+ <show_in_store>1</show_in_store>
197
+ <frontend_type>textarea</frontend_type>
198
+ <depends><order_enabled>1</order_enabled></depends>
199
+ </order_message>
200
+ <shipment_enabled translate="label">
201
+ <label>When shipment is placed</label>
202
+ <frontend_type>select</frontend_type>
203
+ <source_model>adminhtml/system_config_source_yesno</source_model>
204
+ <sort_order>30</sort_order>
205
+ <show_in_default>1</show_in_default>
206
+ <show_in_website>1</show_in_website>
207
+ <show_in_store>1</show_in_store>
208
+ </shipment_enabled>
209
+ <shipment_message translate="label">
210
+ <label>Place shipment message</label>
211
+ <comment>Available variable: {{order_number}}</comment>
212
+ <sort_order>40</sort_order>
213
+ <show_in_default>1</show_in_default>
214
+ <show_in_website>1</show_in_website>
215
+ <show_in_store>1</show_in_store>
216
+ <frontend_type>textarea</frontend_type>
217
+ <depends><shipment_enabled>1</shipment_enabled></depends>
218
+ </shipment_message>
219
+ <invoice_enabled translate="label">
220
+ <label>When invoice is placed</label>
221
+ <frontend_type>select</frontend_type>
222
+ <source_model>adminhtml/system_config_source_yesno</source_model>
223
+ <sort_order>50</sort_order>
224
+ <show_in_default>1</show_in_default>
225
+ <show_in_website>1</show_in_website>
226
+ <show_in_store>1</show_in_store>
227
+ </invoice_enabled>
228
+ <invoice_message translate="label">
229
+ <label>Place invoice message</label>
230
+ <comment>Available variable: {{order_number}}</comment>
231
+ <sort_order>60</sort_order>
232
+ <show_in_default>1</show_in_default>
233
+ <show_in_website>1</show_in_website>
234
+ <show_in_store>1</show_in_store>
235
+ <frontend_type>textarea</frontend_type>
236
+ <depends><invoice_enabled>1</invoice_enabled></depends>
237
+ </invoice_message>
238
+ <canceled_enabled translate="label">
239
+ <label>When order is canceled</label>
240
+ <frontend_type>select</frontend_type>
241
+ <source_model>adminhtml/system_config_source_yesno</source_model>
242
+ <sort_order>70</sort_order>
243
+ <show_in_default>1</show_in_default>
244
+ <show_in_website>1</show_in_website>
245
+ <show_in_store>1</show_in_store>
246
+ </canceled_enabled>
247
+ <canceled_message translate="label">
248
+ <label>Canceled order message</label>
249
+ <comment>Available variable: {{order_number}}</comment>
250
+ <sort_order>80</sort_order>
251
+ <show_in_default>1</show_in_default>
252
+ <show_in_website>1</show_in_website>
253
+ <show_in_store>1</show_in_store>
254
+ <frontend_type>textarea</frontend_type>
255
+ <depends><canceled_enabled>1</canceled_enabled></depends>
256
+ </canceled_message>
257
+ <forgotpassword_enabled translate="label">
258
+ <label>When forgot password </label>
259
+ <frontend_type>select</frontend_type>
260
+ <source_model>adminhtml/system_config_source_yesno</source_model>
261
+ <sort_order>85</sort_order>
262
+ <show_in_default>1</show_in_default>
263
+ <show_in_website>1</show_in_website>
264
+ <show_in_store>1</show_in_store>
265
+ </forgotpassword_enabled>
266
+ <forgotpassword_message translate="label">
267
+ <label>Place forgotpassword message</label>
268
+ <comment>Available variable: {{firstname}},{{email}}</comment>
269
+ <sort_order>90</sort_order>
270
+ <show_in_default>1</show_in_default>
271
+ <show_in_website>1</show_in_website>
272
+ <show_in_store>1</show_in_store>
273
+ <frontend_type>textarea</frontend_type>
274
+ <depends><forgotpassword_enabled>1</forgotpassword_enabled></depends>
275
+ </forgotpassword_message>
276
+ <changepassword_enabled translate="label">
277
+ <label>When change password </label>
278
+ <frontend_type>select</frontend_type>
279
+ <source_model>adminhtml/system_config_source_yesno</source_model>
280
+ <sort_order>92</sort_order>
281
+ <show_in_default>1</show_in_default>
282
+ <show_in_website>1</show_in_website>
283
+ <show_in_store>1</show_in_store>
284
+ </changepassword_enabled>
285
+ <changepassword_message translate="label">
286
+ <label>Place changepassword message</label>
287
+ <comment>Available variable: {{firstname}},{{email}}</comment>
288
+ <sort_order>93</sort_order>
289
+ <show_in_default>1</show_in_default>
290
+ <show_in_website>1</show_in_website>
291
+ <show_in_store>1</show_in_store>
292
+ <frontend_type>textarea</frontend_type>
293
+ <depends><changepassword_enabled>1</changepassword_enabled></depends>
294
+ </changepassword_message>
295
+ <accountedit_enabled translate="label">
296
+ <label>When Edit Account</label>
297
+ <frontend_type>select</frontend_type>
298
+ <source_model>adminhtml/system_config_source_yesno</source_model>
299
+ <sort_order>95</sort_order>
300
+ <show_in_default>1</show_in_default>
301
+ <show_in_website>1</show_in_website>
302
+ <show_in_store>1</show_in_store>
303
+ </accountedit_enabled>
304
+ <accountedit_message translate="label">
305
+ <label>Place edit account message</label>
306
+ <comment>Available variable: {{firstname}},{{email}},{{current_password}},{{password}}</comment>
307
+ <sort_order>100</sort_order>
308
+ <show_in_default>1</show_in_default>
309
+ <show_in_website>1</show_in_website>
310
+ <show_in_store>1</show_in_store>
311
+ <frontend_type>textarea</frontend_type>
312
+ <depends><accountedit_enabled>1</accountedit_enabled></depends>
313
+ </accountedit_message>
314
+ <newsletter_enabled translate="label">
315
+ <label>When NewsLetter Subscription/Unsubscription</label>
316
+ <frontend_type>select</frontend_type>
317
+ <source_model>adminhtml/system_config_source_yesno</source_model>
318
+ <sort_order>105</sort_order>
319
+ <show_in_default>1</show_in_default>
320
+ <show_in_website>1</show_in_website>
321
+ <show_in_store>1</show_in_store>
322
+ </newsletter_enabled>
323
+ <newsletter_sub_message translate="label">
324
+ <label>Place NewsLetter Subscription message</label>
325
+ <comment>Available variable: {{firstname}},{{email}},{{subscription}}</comment>
326
+ <sort_order>115</sort_order>
327
+ <show_in_default>1</show_in_default>
328
+ <show_in_website>1</show_in_website>
329
+ <show_in_store>1</show_in_store>
330
+ <frontend_type>textarea</frontend_type>
331
+ <depends><newsletter_enabled>1</newsletter_enabled></depends>
332
+ </newsletter_sub_message>
333
+ <newsletter_unsub_message translate="label">
334
+ <label>Place NewsLetter UnSubscription message</label>
335
+ <comment>Available variable: {{firstname}},{{email}},{{subscription}}</comment>
336
+ <sort_order>120</sort_order>
337
+ <show_in_default>1</show_in_default>
338
+ <show_in_website>1</show_in_website>
339
+ <show_in_store>1</show_in_store>
340
+ <frontend_type>textarea</frontend_type>
341
+ <depends><newsletter_enabled>1</newsletter_enabled></depends>
342
+ </newsletter_unsub_message>
343
+ <review_enabled translate="label">
344
+ <label>When Product Review Added</label>
345
+ <frontend_type>select</frontend_type>
346
+ <source_model>adminhtml/system_config_source_yesno</source_model>
347
+ <sort_order>125</sort_order>
348
+ <show_in_default>1</show_in_default>
349
+ <show_in_website>1</show_in_website>
350
+ <show_in_store>1</show_in_store>
351
+ </review_enabled>
352
+ <approvereview_message translate="label">
353
+ <label>Place Review Approve message</label>
354
+ <comment>Available variable: {{nickname}},{{title}},{{status}}</comment>
355
+ <sort_order>135</sort_order>
356
+ <show_in_default>1</show_in_default>
357
+ <show_in_website>1</show_in_website>
358
+ <show_in_store>1</show_in_store>
359
+ <frontend_type>textarea</frontend_type>
360
+ <depends><review_enabled>1</review_enabled></depends>
361
+ </approvereview_message>
362
+ <review_message translate="label">
363
+ <label>Place Review message</label>
364
+ <comment>Available variable: {{firstname}},{{email}},{{nickname}},{{title}},{{detail}}</comment>
365
+ <sort_order>130</sort_order>
366
+ <show_in_default>1</show_in_default>
367
+ <show_in_website>1</show_in_website>
368
+ <show_in_store>1</show_in_store>
369
+ <frontend_type>textarea</frontend_type>
370
+ <depends><review_enabled>1</review_enabled></depends>
371
+ </review_message>
372
+ <tags_enabled translate="label">
373
+ <label>When Product Tags Added</label>
374
+ <frontend_type>select</frontend_type>
375
+ <source_model>adminhtml/system_config_source_yesno</source_model>
376
+ <sort_order>135</sort_order>
377
+ <show_in_default>1</show_in_default>
378
+ <show_in_website>1</show_in_website>
379
+ <show_in_store>1</show_in_store>
380
+ </tags_enabled>
381
+ <tags_message translate="label">
382
+ <label>Place tags message</label>
383
+ <comment>Available variable: {{firstname}},{{producttagname}},{{productname}}</comment>
384
+ <sort_order>140</sort_order>
385
+ <show_in_default>1</show_in_default>
386
+ <show_in_website>1</show_in_website>
387
+ <show_in_store>1</show_in_store>
388
+ <frontend_type>textarea</frontend_type>
389
+ <depends><tags_enabled>1</tags_enabled></depends>
390
+ </tags_message>
391
+ <approvetags_message translate="label">
392
+ <label>Place tags approve message</label>
393
+ <comment>Available variable: {{firstname}},{{tagname}},{{status}}</comment>
394
+ <sort_order>142</sort_order>
395
+ <show_in_default>1</show_in_default>
396
+ <show_in_website>1</show_in_website>
397
+ <show_in_store>1</show_in_store>
398
+ <frontend_type>textarea</frontend_type>
399
+ <depends><tags_enabled>1</tags_enabled></depends>
400
+ </approvetags_message>
401
+ <coupon_enabled translate="label">
402
+ <label>When Coupon Added</label>
403
+ <frontend_type>select</frontend_type>
404
+ <source_model>adminhtml/system_config_source_yesno</source_model>
405
+ <sort_order>145</sort_order>
406
+ <show_in_default>1</show_in_default>
407
+ <show_in_website>1</show_in_website>
408
+ <show_in_store>1</show_in_store>
409
+ </coupon_enabled>
410
+ <coupon_message translate="label">
411
+ <label>Place coupon message</label>
412
+ <comment>Available variable: {{coupon_code}},{{discount_amount}},{{to_date}}</comment>
413
+ <sort_order>150</sort_order>
414
+ <show_in_default>1</show_in_default>
415
+ <show_in_website>1</show_in_website>
416
+ <show_in_store>1</show_in_store>
417
+ <frontend_type>textarea</frontend_type>
418
+ <depends><coupon_enabled>1</coupon_enabled></depends>
419
+ </coupon_message>
420
+ <stockupdate_enabled translate="label">
421
+ <label>When Stock Update</label>
422
+ <frontend_type>select</frontend_type>
423
+ <source_model>adminhtml/system_config_source_yesno</source_model>
424
+ <sort_order>160</sort_order>
425
+ <show_in_default>1</show_in_default>
426
+ <show_in_website>1</show_in_website>
427
+ <show_in_store>1</show_in_store>
428
+ </stockupdate_enabled>
429
+ <stockupdate_message translate="label">
430
+ <label>Place Stock Update message</label>
431
+ <comment>Available variable: {{firstname}},{{qty}},{{productname}}</comment>
432
+ <sort_order>170</sort_order>
433
+ <show_in_default>1</show_in_default>
434
+ <show_in_website>1</show_in_website>
435
+ <show_in_store>1</show_in_store>
436
+ <frontend_type>textarea</frontend_type>
437
+ <depends><stockupdate_enabled>1</stockupdate_enabled></depends>
438
+ </stockupdate_message>
439
+ <outstockupdate_message translate="label">
440
+ <label>Place Out Stock Update message</label>
441
+ <comment>Available variable: {{qty_change}},{{qty}},{{productname}}</comment>
442
+ <sort_order>170</sort_order>
443
+ <show_in_default>1</show_in_default>
444
+ <show_in_website>1</show_in_website>
445
+ <show_in_store>1</show_in_store>
446
+ <frontend_type>textarea</frontend_type>
447
+ <depends><stockupdate_enabled>1</stockupdate_enabled></depends>
448
+ </outstockupdate_message>
449
+
450
+ </fields>
451
+ </configure_messages>
452
+ </groups>
453
+ </msg91_section>
454
+ </sections>
455
+ </config>
app/code/local/Modulebazaar/Msg91/sql/msg91_setup/mysql4-install-0.1.0.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ $installer = $this;
4
+
5
+ $installer->startSetup();
6
+
7
+ $installer->run("
8
+
9
+ -- DROP TABLE IF EXISTS {$this->getTable('modulebazaar_msg91_log')};
10
+ CREATE TABLE {$this->getTable('modulebazaar_msg91_log')} (
11
+ `id` int(11) unsigned NOT NULL auto_increment,
12
+ `sent_date` timestamp default '0000-00-00 00:00:00',
13
+ `order_no` int(11) NOT NULL default '0',
14
+ `title` varchar(255) default NULL,
15
+ `sender_id` varchar(20) default NULL,
16
+ `to` varchar(20) default NULL,
17
+ `recipient` varchar(100) default NULL,
18
+ `country` text default NULL,
19
+ `chars` int(6) NOT NULL default '0',
20
+ `length` int(6) NOT NULL default '0',
21
+ `status` int(6) NOT NULL default '0',
22
+ PRIMARY KEY (`id`)
23
+ ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
24
+
25
+ ");
26
+
27
+ $installer->endSetup();
app/code/local/Modulebazaar/Msg91/sql/msg91_setup/mysql4-upgrade-0.1.0-0.1.1.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ $installer = $this;
4
+
5
+ $this->startSetup();
6
+
7
+ $this->run("
8
+ CREATE TABLE `{$this->getTable('msg91/customnotification')}` (
9
+ `rule_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
10
+ `name` varchar(255) DEFAULT '',
11
+ `is_active` tinyint(1) NOT NULL DEFAULT '1',
12
+ `content` varchar(510) DEFAULT NULL,
13
+ `created_at` timestamp NULL DEFAULT NULL,
14
+ `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
15
+ `scheduled_at` timestamp NULL DEFAULT NULL,
16
+ `customer_group` blob DEFAULT '',
17
+ PRIMARY KEY (`rule_id`)
18
+ ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
19
+ ");
20
+
21
+ $this->endSetup();
app/code/local/Modulebazaar/Msg91/sql/msg91_setup/mysql4-upgrade-0.1.1-0.1.2.php ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ $installer = $this;
4
+
5
+ $this->startSetup();
6
+
7
+ $this->run("
8
+ CREATE TABLE `{$this->getTable('msg91/notificationlog')}` (
9
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
10
+ `sent_date` timestamp default '0000-00-00 00:00:00',
11
+ `sender_id` varchar(20) default NULL,
12
+ `to` varchar(20) default NULL,
13
+ `recipient` varchar(100) default NULL,
14
+ `chars` int(6) NOT NULL default '0',
15
+ `length` int(6) NOT NULL default '0',
16
+ `status` int(6) NOT NULL default '0',
17
+ `scheduled_at` timestamp NULL DEFAULT NULL,
18
+ PRIMARY KEY (`id`)
19
+ ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
20
+ ");
21
+
22
+ $this->endSetup();
app/code/local/Modulebazaar/Msg91/sql/msg91_setup/mysql4-upgrade-0.1.2-0.1.3.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $installer = $this;
3
+
4
+ $installer->startSetup();
5
+
6
+ $installer->run("
7
+ ALTER TABLE `".$this->getTable('msg91/customnotification')."` ADD `route` TEXT NOT NULL AFTER `is_active`");
8
+
9
+ $installer->endSetup();
app/code/local/Modulebazaar/Msg91/sql/msg91_setup/mysql4-upgrade-0.1.3-0.1.4.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $installer = $this;
3
+
4
+ $installer->startSetup();
5
+
6
+ $installer->run("
7
+ ALTER TABLE `".$this->getTable('msg91/customnotification')."` ADD `sender_id` TEXT NOT NULL AFTER `route`");
8
+
9
+ $installer->endSetup();
app/code/local/Modulebazaar/Msg91/sql/msg91_setup/mysql4-upgrade-0.1.4-0.1.5.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $installer = $this;
3
+
4
+ $installer->startSetup();
5
+
6
+ $installer->run("
7
+ ALTER TABLE `".$this->getTable('msg91/log')."` ADD `api_status` TEXT NOT NULL AFTER `status`");
8
+
9
+ $installer->endSetup();
app/code/local/Modulebazaar/Msg91/sql/msg91_setup/mysql4-upgrade-0.1.5-0.1.6.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $installer = $this;
3
+
4
+ $installer->startSetup();
5
+
6
+ $installer->run("
7
+ ALTER TABLE `".$this->getTable('msg91/notificationlog')."` ADD `api_status` TEXT NOT NULL AFTER `scheduled_at`");
8
+
9
+ $installer->endSetup();
app/design/adminhtml/default/default/layout/msg91.xml ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <layout>
3
+ <adminhtml_log_index>
4
+ <reference name="content">
5
+ <block type="msg91/adminhtml_log" name="log" />
6
+ </reference>
7
+ </adminhtml_log_index>
8
+ <adminhtml_notificationlog_index>
9
+ <reference name="content">
10
+ <block type="msg91/adminhtml_notificationlog" name="notificationlog" />
11
+ </reference>
12
+ </adminhtml_notificationlog_index>
13
+ <adminhtml_customnotification_index>
14
+ <reference name="head">
15
+ <action method="addJs"><script>mage/adminhtml/jquery.autocomplete.multiselect.js</script></action>
16
+ </reference>
17
+ <reference name="content">
18
+ <block type="msg91/adminhtml_customnotification" name="customnotification" />
19
+ </reference>
20
+ </adminhtml_customnotification_index>
21
+ </layout>
app/design/frontend/base/default/layout/local.xml ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <layout version="0.1.0">
3
+ <customer_account_create>
4
+ <reference name="customer_form_register">
5
+ <action method="setShowAddressFields">
6
+ <param>true</param></action>
7
+ </reference>
8
+ </customer_account_create>
9
+ </layout>
app/etc/modules/Modulebazaar_Msg91.xml ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <config>
3
+ <modules>
4
+ <Modulebazaar_Msg91>
5
+ <active>true</active>
6
+ <codePool>local</codePool>
7
+ </Modulebazaar_Msg91>
8
+ </modules>
9
+ </config>
package.xml ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <package>
3
+ <name>Msg91</name>
4
+ <version>1.0.0</version>
5
+ <stability>stable</stability>
6
+ <license uri="http://opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
7
+ <channel>community</channel>
8
+ <extends/>
9
+ <summary>Msg91 is an API for message sending to multiple customers</summary>
10
+ <description>Msg91 is an API for message sending to multiple customers</description>
11
+ <notes>Magento Msg91</notes>
12
+ <authors><author><name>Egrove</name><user>Egrove</user><email>itsupport@egrovesys.com</email></author></authors>
13
+ <date>2015-09-25</date>
14
+ <time>10:07:56</time>
15
+ <contents><target name="mageetc"><dir><dir name="modules"><file name="Modulebazaar_Msg91.xml" hash="3a46727fa5147f6487b06d0624da1077"/></dir></dir></target><target name="magedesign"><dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="msg91.xml" hash="7c052ab0f834b769b02a55e139e8c24b"/></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="local.xml" hash="62d929cee18c88122d2f57795d3133be"/></dir></dir></dir></dir></dir></target><target name="magelocal"><dir><dir name="Modulebazaar"><dir name="Msg91"><dir name="Block"><dir name="Adminhtml"><dir name="Customnotification"><dir name="Edit"><file name="Form.php" hash="ac9a15d0d6605806868774bd43d3b6bb"/><dir name="Tab"><file name="Form.php" hash="1d62dbe0a09bafe565d807cd6bdf0dff"/></dir><file name="Tabs.php" hash="7061274d602a448da109e904e20672a9"/></dir><file name="Edit.php" hash="254a1677443d8a16eb9ecc0cb5328d97"/><file name="Grid.php" hash="03703f966908973d0f873397792dbb96"/></dir><file name="Customnotification.php" hash="84e838fcbecf66b9b01a7014cf33bbc4"/><dir name="Log"><dir name="Edit"><file name="Form.php" hash="439db3e3d4a71c410f718e9617ed5023"/><dir name="Tab"><file name="Form1.php" hash="41b478f0468726b693f604b57353c110"/></dir><file name="Tabs.php" hash="e48ad4233747245e4795188034615938"/></dir><file name="Edit.php" hash="1ac3b327b04ea25f5a6d87ea785bc7ff"/><file name="Grid.php" hash="57d4359c29d992fc961765aac9fac873"/><dir name="Renderer"><file name="Date.php" hash="4e9d0ad8a99e52a7a3efc06625511cf0"/><file name="Reason.php" hash="196588ac21050de35325cab34bb41463"/></dir></dir><file name="Log.php" hash="67899cf7660e6f651e6fb2f6d753fa0c"/><dir name="Notificationlog"><dir name="Edit"><file name="Form.php" hash="b5813484c5248f620b0f5acb4892fa81"/><dir name="Tab"><file name="Form1.php" hash="774a90621e27f1e9953bd6ffd2d6dcb9"/></dir><file name="Tabs.php" hash="e65495ae84518f0a166f15eeb872ba09"/></dir><file name="Edit.php" hash="ea94078cebc7562652ca930560c4e870"/><file name="Grid.php" hash="da9b762ff3fbeb9c835c7cb31523952b"/><dir name="Renderer"><file name="Date.php" hash="800ebe22d4370c38db0a595c7737bfcf"/><file name="Reason.php" hash="e12800142b460167e87ef17ddbb43130"/><file name="Scheduledate.php" hash="8221abc648b50faeeab2d1958498404d"/></dir></dir><file name="Notificationlog.php" hash="360977850107a3b577bf712ceb6d0949"/></dir></dir><dir name="Helper"><file name="Data.php" hash="c365761f0067398e54adaf8d63166c16"/></dir><dir name="Model"><file name="Customerschedule.php" hash="0ea947db2c576f9931212f747648b11b"/><file name="Customnotification.php" hash="1a099db219e5b77ab64a6d4e67c90daa"/><file name="Log.php" hash="47f8a3ed84159a2241e62075d41c42a8"/><dir name="Mysql4"><dir name="Customnotification"><file name="Collection.php" hash="50695a409e81ece2b2420a63b6f2cae7"/></dir><file name="Customnotification.php" hash="c519084fd9c8777fd47840bf94a25f8c"/><dir name="Log"><file name="Collection.php" hash="4cf6b24caf7337d307c697414582e2fb"/></dir><file name="Log.php" hash="b4f708470100aae329317370b5086424"/><dir name="Notificationlog"><file name="Collection.php" hash="15e7260e680dcf618f9aaba357e6fd2c"/></dir><file name="Notificationlog.php" hash="fe50c45840536b25434eb30a7e5c9e4b"/></dir><file name="Notificationlog.php" hash="db88bbc6986ce1349f2da8e9428b3a0e"/><file name="Observer.php" hash="752978076d48abb39759b4f0f154de10"/><file name="Status.php" hash="4d8a2e3d9dc7fa562013dd25f450de10"/><dir name="System"><dir name="Config"><dir name="Source"><file name="Routevalues.php" hash="6fcfd3a37951df90033e5474df52c0e7"/></dir></dir></dir><file name=".Observer.php.swp" hash="f652d4c23ae9a61faf1246ed232afcef"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="CustomnotificationController.php" hash="8df7b598a426bb27fc7fbe7c516d6f80"/><file name="LogController.php" hash="07190d8280cca235481282832b77d859"/><file name="NotificationlogController.php" hash="3c76252b22620b9bcf94196fa8089c47"/></dir><file name="IndexController.php" hash="67dd60c1d5818ef01bc9a6dbe4703769"/></dir><dir name="etc"><file name="adminhtml---.xml" hash="df625ce6a23a85af5f1c37ad3affefb4"/><file name="config.xml" hash="de17c01ab820355d5922e418aafc44c8"/><file name="system.xml" hash="278717143e5b878dd584170395f69893"/></dir><dir name="sql"><dir name="msg91_setup"><file name="mysql4-install-0.1.0.php" hash="e2cdf2a1cc82f7279ab0029cdb6e877d"/><file name="mysql4-upgrade-0.1.0-0.1.1.php" hash="327a1ad59bf5698930ab8e8696e2ffe4"/><file name="mysql4-upgrade-0.1.1-0.1.2.php" hash="4a66053aab0d0f01f3b9451d72b7087b"/><file name="mysql4-upgrade-0.1.2-0.1.3.php" hash="dba1795366169d27a7782713ceecfabf"/><file name="mysql4-upgrade-0.1.3-0.1.4.php" hash="4146cdd75001eba643e8d421bacf7e6f"/><file name="mysql4-upgrade-0.1.4-0.1.5.php" hash="3443cf876edc5d8266b50c4451e11f28"/><file name="mysql4-upgrade-0.1.5-0.1.6.php" hash="1e7951d4c3b2480c6694369a6f60836e"/></dir></dir></dir></dir></dir></target></contents>
16
+ <compatible/>
17
+ <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
18
+ </package>