Version Notes
Stable release. Included multistore support. List minor fix
Download this release
Release Info
Developer | Sendmachine |
Extension | sendmachine |
Version | 1.0.3 |
Comparing to | |
See all releases |
Code changes from version 1.0.0 to 1.0.3
- app/code/community/Sendmachine/Sendmachine/Block/AppContainer/Grid.php +3 -1
- app/code/community/Sendmachine/Sendmachine/Block/AppContainer/Tab/Email.php +47 -33
- app/code/community/Sendmachine/Sendmachine/Block/AppContainer/Tab/General.php +23 -15
- app/code/community/Sendmachine/Sendmachine/Block/AppContainer/Tab/Lists.php +58 -51
- app/code/community/Sendmachine/Sendmachine/Block/AppContainer/Tabs.php +13 -3
- app/code/community/Sendmachine/Sendmachine/Block/PopupBlock.php +6 -8
- app/code/community/Sendmachine/Sendmachine/Helper/Data.php +3 -3
- app/code/community/Sendmachine/Sendmachine/Model/...Observer.php +0 -20
- app/code/community/Sendmachine/Sendmachine/Model/Cronjobs.php +1 -2
- app/code/community/Sendmachine/Sendmachine/Model/Email/Template.php +4 -0
- app/code/community/Sendmachine/Sendmachine/Model/Observer.php +1 -3
- app/code/community/Sendmachine/Sendmachine/Model/Sendmachine.php +60 -11
- app/code/community/Sendmachine/Sendmachine/Model/Source/Contactlist.php +4 -6
- app/code/community/Sendmachine/Sendmachine/Model/Source/ImportExportLimit.php +3 -3
- app/code/community/Sendmachine/Sendmachine/Model/Source/Smtp.php +4 -8
- app/code/community/Sendmachine/Sendmachine/Model/Source/TransactionalCampAreas.php +1 -1
- app/code/community/Sendmachine/Sendmachine/controllers/SendmachineController.php +104 -19
- app/code/community/Sendmachine/Sendmachine/controllers/SubscribeController.php +5 -6
- app/code/community/Sendmachine/Sendmachine/etc/config.xml +3 -3
- app/code/community/Sendmachine/Sendmachine/sql/sendmachine_setup/mysql4-install-1.0.0.php +2 -2
- app/code/community/Sendmachine/Sendmachine/sql/sendmachine_setup/mysql4-upgrade-1.0.0-1.0.1.php +9 -0
- app/locale/en_US/template/email/sendmachine/sm_send_test_email.html +19 -0
- js/sendmachine/admin.js +25 -6
- package.xml +32 -23
- skin/adminhtml/default/default/sendmachine/logo2.png +0 -0
- skin/adminhtml/default/default/sendmachine/logo3.png +0 -0
app/code/community/Sendmachine/Sendmachine/Block/AppContainer/Grid.php
CHANGED
@@ -17,7 +17,9 @@ class Sendmachine_Sendmachine_Block_AppContainer_Grid extends Mage_Adminhtml_Blo
|
|
17 |
|
18 |
protected function _prepareCollection() {
|
19 |
|
20 |
-
$
|
|
|
|
|
21 |
$this->setCollection($collection);
|
22 |
|
23 |
return parent::_prepareCollection();
|
17 |
|
18 |
protected function _prepareCollection() {
|
19 |
|
20 |
+
$store_id = Mage::getModel('core/store')->load($this->getRequest()->getParam('store'), 'code')->getId();
|
21 |
+
|
22 |
+
$collection = Mage::getResourceModel($this->_getCollectionClass())->addFieldToFilter('store', $store_id);
|
23 |
$this->setCollection($collection);
|
24 |
|
25 |
return parent::_prepareCollection();
|
app/code/community/Sendmachine/Sendmachine/Block/AppContainer/Tab/Email.php
CHANGED
@@ -2,6 +2,8 @@
|
|
2 |
|
3 |
class Sendmachine_Sendmachine_Block_AppContainer_Tab_Email extends Mage_Adminhtml_Block_Widget_Form {
|
4 |
|
|
|
|
|
5 |
protected function _prepareForm() {
|
6 |
|
7 |
$sm = Mage::registry('sm_model');
|
@@ -12,85 +14,97 @@ class Sendmachine_Sendmachine_Block_AppContainer_Tab_Email extends Mage_Adminhtm
|
|
12 |
)
|
13 |
);
|
14 |
|
|
|
|
|
|
|
15 |
$form->setUseContainer(true);
|
16 |
|
17 |
|
18 |
-
$fieldset = $form->addFieldset('email_fieldset',
|
19 |
-
$
|
|
|
|
|
20 |
|
21 |
-
$fieldset->addField('tab_email', 'hidden',
|
22 |
'name' => 'tab',
|
23 |
'value' => 'email'
|
24 |
-
|
25 |
-
|
26 |
-
$fieldset->addField('
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
'name' => 'email_enabled',
|
28 |
'label' => Mage::helper('sendmachine')->__('Enable email sending'),
|
29 |
'title' => Mage::helper('sendmachine')->__('Enable email sending'),
|
30 |
'values' => Mage::getModel('adminhtml/system_config_source_yesno')->toOptionArray()
|
31 |
-
|
32 |
|
33 |
-
$fieldset->addField('smtp_encryption', 'select',
|
34 |
'name' => 'smtp_encryption',
|
35 |
'label' => Mage::helper('sendmachine')->__('SMTP Encryption'),
|
36 |
'title' => Mage::helper('sendmachine')->__('SMTP Encryption'),
|
37 |
'values' => Mage::getModel('sendmachine/source_smtp')->toOptionArray()
|
38 |
-
|
39 |
|
40 |
-
$fieldset->addField('from_email', 'text',
|
41 |
'name' => 'from_email',
|
42 |
'label' => Mage::helper('sendmachine')->__('From Email'),
|
43 |
'title' => Mage::helper('sendmachine')->__('From Email'),
|
44 |
'after_element_html' => '<small>' . Mage::helper('sendmachine')->__("Note! If you set a 'From email' here, all other 'from emails' will be overriden") . '<small>'
|
45 |
-
|
46 |
-
);
|
47 |
|
48 |
-
$fieldset->addField('from_name', 'text',
|
49 |
'name' => 'from_name',
|
50 |
'label' => Mage::helper('sendmachine')->__('From Name'),
|
51 |
'title' => Mage::helper('sendmachine')->__('From Name'),
|
52 |
'after_element_html' => '<small>' . Mage::helper('sendmachine')->__("Note! If you set a 'From name' here, all other 'from names' will be overriden") . '<small>'
|
53 |
-
|
54 |
-
);
|
55 |
|
56 |
-
$fieldset->addField('transactional_campaigns_enabled', 'select',
|
57 |
'name' => 'transactional_campaigns_enabled',
|
58 |
'label' => Mage::helper('sendmachine')->__('Use transactional emails'),
|
59 |
'title' => Mage::helper('sendmachine')->__('Use transactional emails'),
|
60 |
'values' => Mage::getModel('adminhtml/system_config_source_yesno')->toOptionArray()
|
61 |
-
|
62 |
|
63 |
-
$fieldset->addField('transactional_campaign_prefix', 'text',
|
64 |
'name' => 'transactional_campaign_prefix',
|
65 |
'label' => Mage::helper('sendmachine')->__('Transactional campaigns prefix'),
|
66 |
'title' => Mage::helper('sendmachine')->__('Transactional campaigns prefix'),
|
67 |
'after_element_html' => '<small>Campaign\'s prefix<small>'
|
68 |
-
|
69 |
-
);
|
70 |
|
71 |
-
$fieldset->addField('transactional_campaign_areas', 'multiselect',
|
72 |
'name' => 'transactional_campaign_areas',
|
73 |
'label' => Mage::helper('sendmachine')->__('Transactional campaigns areas'),
|
74 |
'title' => Mage::helper('sendmachine')->__('Transactional campaigns areas'),
|
75 |
'values' => Mage::getModel('sendmachine/source_transactionalCampAreas')->toOptionArray(),
|
76 |
'after_element_html' => '<small>' . Mage::helper('sendmachine')->__("Note! Hold 'ctrl' and click the area you want to select/deselect for multiple selection") . '</small>'
|
77 |
-
|
78 |
|
79 |
-
$fieldset->addField('transactional_campaign_suffix', 'text',
|
80 |
'name' => 'transactional_campaign_suffix',
|
81 |
'label' => Mage::helper('sendmachine')->__('Transactional campaigns suffix'),
|
82 |
'title' => Mage::helper('sendmachine')->__('Transactional campaigns suffix'),
|
83 |
'after_element_html' => '<small>Campaign\'s suffix<small>'
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
|
95 |
$form->addValues($sm->get());
|
96 |
$this->setForm($form);
|
2 |
|
3 |
class Sendmachine_Sendmachine_Block_AppContainer_Tab_Email extends Mage_Adminhtml_Block_Widget_Form {
|
4 |
|
5 |
+
private $store = null;
|
6 |
+
|
7 |
protected function _prepareForm() {
|
8 |
|
9 |
$sm = Mage::registry('sm_model');
|
14 |
)
|
15 |
);
|
16 |
|
17 |
+
$request = Mage::app()->getRequest();
|
18 |
+
$this->store = $request->getParam('store');
|
19 |
+
|
20 |
$form->setUseContainer(true);
|
21 |
|
22 |
|
23 |
+
$fieldset = $form->addFieldset('email_fieldset', array('legend' => Mage::helper('sendmachine')->__('Email Settings')));
|
24 |
+
if($this->store) {
|
25 |
+
$testfieldset = $form->addFieldset('emailtest_fieldset', array('legend' => Mage::helper('sendmachine')->__('Test Configuration')));
|
26 |
+
}
|
27 |
|
28 |
+
$fieldset->addField('tab_email', 'hidden', array(
|
29 |
'name' => 'tab',
|
30 |
'value' => 'email'
|
31 |
+
));
|
32 |
+
|
33 |
+
$fieldset->addField('website_email', 'hidden', array(
|
34 |
+
'name' => 'website',
|
35 |
+
'value' => $request->getParam('website')
|
36 |
+
));
|
37 |
+
|
38 |
+
$fieldset->addField('store_email', 'hidden', array(
|
39 |
+
'name' => 'store',
|
40 |
+
'value' => $request->getParam('store')
|
41 |
+
));
|
42 |
+
|
43 |
+
$fieldset->addField('email_enabled', 'select', array(
|
44 |
'name' => 'email_enabled',
|
45 |
'label' => Mage::helper('sendmachine')->__('Enable email sending'),
|
46 |
'title' => Mage::helper('sendmachine')->__('Enable email sending'),
|
47 |
'values' => Mage::getModel('adminhtml/system_config_source_yesno')->toOptionArray()
|
48 |
+
));
|
49 |
|
50 |
+
$fieldset->addField('smtp_encryption', 'select', array(
|
51 |
'name' => 'smtp_encryption',
|
52 |
'label' => Mage::helper('sendmachine')->__('SMTP Encryption'),
|
53 |
'title' => Mage::helper('sendmachine')->__('SMTP Encryption'),
|
54 |
'values' => Mage::getModel('sendmachine/source_smtp')->toOptionArray()
|
55 |
+
));
|
56 |
|
57 |
+
$fieldset->addField('from_email', 'text', array(
|
58 |
'name' => 'from_email',
|
59 |
'label' => Mage::helper('sendmachine')->__('From Email'),
|
60 |
'title' => Mage::helper('sendmachine')->__('From Email'),
|
61 |
'after_element_html' => '<small>' . Mage::helper('sendmachine')->__("Note! If you set a 'From email' here, all other 'from emails' will be overriden") . '<small>'
|
62 |
+
));
|
|
|
63 |
|
64 |
+
$fieldset->addField('from_name', 'text', array(
|
65 |
'name' => 'from_name',
|
66 |
'label' => Mage::helper('sendmachine')->__('From Name'),
|
67 |
'title' => Mage::helper('sendmachine')->__('From Name'),
|
68 |
'after_element_html' => '<small>' . Mage::helper('sendmachine')->__("Note! If you set a 'From name' here, all other 'from names' will be overriden") . '<small>'
|
69 |
+
));
|
|
|
70 |
|
71 |
+
$fieldset->addField('transactional_campaigns_enabled', 'select', array(
|
72 |
'name' => 'transactional_campaigns_enabled',
|
73 |
'label' => Mage::helper('sendmachine')->__('Use transactional emails'),
|
74 |
'title' => Mage::helper('sendmachine')->__('Use transactional emails'),
|
75 |
'values' => Mage::getModel('adminhtml/system_config_source_yesno')->toOptionArray()
|
76 |
+
));
|
77 |
|
78 |
+
$fieldset->addField('transactional_campaign_prefix', 'text', array(
|
79 |
'name' => 'transactional_campaign_prefix',
|
80 |
'label' => Mage::helper('sendmachine')->__('Transactional campaigns prefix'),
|
81 |
'title' => Mage::helper('sendmachine')->__('Transactional campaigns prefix'),
|
82 |
'after_element_html' => '<small>Campaign\'s prefix<small>'
|
83 |
+
));
|
|
|
84 |
|
85 |
+
$fieldset->addField('transactional_campaign_areas', 'multiselect', array(
|
86 |
'name' => 'transactional_campaign_areas',
|
87 |
'label' => Mage::helper('sendmachine')->__('Transactional campaigns areas'),
|
88 |
'title' => Mage::helper('sendmachine')->__('Transactional campaigns areas'),
|
89 |
'values' => Mage::getModel('sendmachine/source_transactionalCampAreas')->toOptionArray(),
|
90 |
'after_element_html' => '<small>' . Mage::helper('sendmachine')->__("Note! Hold 'ctrl' and click the area you want to select/deselect for multiple selection") . '</small>'
|
91 |
+
));
|
92 |
|
93 |
+
$fieldset->addField('transactional_campaign_suffix', 'text', array(
|
94 |
'name' => 'transactional_campaign_suffix',
|
95 |
'label' => Mage::helper('sendmachine')->__('Transactional campaigns suffix'),
|
96 |
'title' => Mage::helper('sendmachine')->__('Transactional campaigns suffix'),
|
97 |
'after_element_html' => '<small>Campaign\'s suffix<small>'
|
98 |
+
));
|
99 |
+
|
100 |
+
if ($this->store) {
|
101 |
+
$testfieldset->addField('smMageTestEmail', 'text', array(
|
102 |
+
'label' => Mage::helper('sendmachine')->__('Send a test email'),
|
103 |
+
'title' => Mage::helper('sendmachine')->__('Send a test email'),
|
104 |
+
'style' => 'width:240px',
|
105 |
+
'after_element_html' => '<button onClick=\'smSendTestEmail("' . Mage::helper('adminhtml')->getUrl('adminhtml/sendmachine/sendtestmail') . '");return false;\' >' . Mage::helper('sendmachine')->__('Send') . '</button><small>' . Mage::helper('sendmachine')->__('Send a test email to make sure that settings were applied correctly') . '<small>',
|
106 |
+
));
|
107 |
+
}
|
108 |
|
109 |
$form->addValues($sm->get());
|
110 |
$this->setForm($form);
|
app/code/community/Sendmachine/Sendmachine/Block/AppContainer/Tab/General.php
CHANGED
@@ -9,40 +9,48 @@ class Sendmachine_Sendmachine_Block_AppContainer_Tab_General extends Mage_Adminh
|
|
9 |
'id' => 'edit_form',
|
10 |
'action' => $this->getUrl('*/*/save'),
|
11 |
'method' => 'post'
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
$form->setUseContainer(true);
|
16 |
|
17 |
-
$fieldset = $form->addFieldset('general_fieldset',
|
18 |
|
19 |
-
$fieldset->addField('tab_general', 'hidden',
|
20 |
'name' => 'tab',
|
21 |
'value' => 'index'
|
22 |
-
|
23 |
-
|
24 |
-
$fieldset->addField('
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
'name' => 'plugin_enabled',
|
26 |
'label' => Mage::helper('sendmachine')->__('Plugin enabled'),
|
27 |
'title' => Mage::helper('sendmachine')->__('Plugin enabled'),
|
28 |
'values' => Mage::getModel('adminhtml/system_config_source_yesno')->toOptionArray()
|
29 |
-
|
30 |
|
31 |
-
$fieldset->addField('api_username', 'text',
|
32 |
'name' => 'api_username',
|
33 |
'label' => Mage::helper('sendmachine')->__('Api username'),
|
34 |
'title' => Mage::helper('sendmachine')->__('Api username'),
|
35 |
'after_element_html' => '<button id="button_api_username" onClick="smToggleCredentialsVisibility(\'api_username\');return false;" >' . Mage::helper('sendmachine')->__('Show') . '</button>'
|
36 |
-
|
37 |
-
);
|
38 |
|
39 |
-
$fieldset->addField('api_password', 'text',
|
40 |
'name' => 'api_password',
|
41 |
'label' => Mage::helper('adminhtml')->__('API password'),
|
42 |
'title' => Mage::helper('adminhtml')->__('API password'),
|
43 |
'after_element_html' => '<button id="button_api_password" onClick="smToggleCredentialsVisibility(\'api_password\');return false;" >' . Mage::helper('sendmachine')->__('Show') . '</button><script>smInitCredentialsBlur()</script>'
|
44 |
-
|
45 |
-
);
|
46 |
|
47 |
$form->addValues($sm->get());
|
48 |
$this->setForm($form);
|
9 |
'id' => 'edit_form',
|
10 |
'action' => $this->getUrl('*/*/save'),
|
11 |
'method' => 'post'
|
12 |
+
));
|
13 |
+
|
14 |
+
$request = Mage::app()->getRequest();
|
15 |
$form->setUseContainer(true);
|
16 |
|
17 |
+
$fieldset = $form->addFieldset('general_fieldset', array('legend' => Mage::helper('sendmachine')->__('General Settings')));
|
18 |
|
19 |
+
$fieldset->addField('tab_general', 'hidden', array(
|
20 |
'name' => 'tab',
|
21 |
'value' => 'index'
|
22 |
+
));
|
23 |
+
|
24 |
+
$fieldset->addField('website_general', 'hidden', array(
|
25 |
+
'name' => 'website',
|
26 |
+
'value' => $request->getParam('website')
|
27 |
+
));
|
28 |
+
|
29 |
+
$fieldset->addField('store_general', 'hidden', array(
|
30 |
+
'name' => 'store',
|
31 |
+
'value' => $request->getParam('store')
|
32 |
+
));
|
33 |
+
|
34 |
+
$fieldset->addField('plugin_enabled', 'select', array(
|
35 |
'name' => 'plugin_enabled',
|
36 |
'label' => Mage::helper('sendmachine')->__('Plugin enabled'),
|
37 |
'title' => Mage::helper('sendmachine')->__('Plugin enabled'),
|
38 |
'values' => Mage::getModel('adminhtml/system_config_source_yesno')->toOptionArray()
|
39 |
+
));
|
40 |
|
41 |
+
$fieldset->addField('api_username', 'text', array(
|
42 |
'name' => 'api_username',
|
43 |
'label' => Mage::helper('sendmachine')->__('Api username'),
|
44 |
'title' => Mage::helper('sendmachine')->__('Api username'),
|
45 |
'after_element_html' => '<button id="button_api_username" onClick="smToggleCredentialsVisibility(\'api_username\');return false;" >' . Mage::helper('sendmachine')->__('Show') . '</button>'
|
46 |
+
));
|
|
|
47 |
|
48 |
+
$fieldset->addField('api_password', 'text', array(
|
49 |
'name' => 'api_password',
|
50 |
'label' => Mage::helper('adminhtml')->__('API password'),
|
51 |
'title' => Mage::helper('adminhtml')->__('API password'),
|
52 |
'after_element_html' => '<button id="button_api_password" onClick="smToggleCredentialsVisibility(\'api_password\');return false;" >' . Mage::helper('sendmachine')->__('Show') . '</button><script>smInitCredentialsBlur()</script>'
|
53 |
+
));
|
|
|
54 |
|
55 |
$form->addValues($sm->get());
|
56 |
$this->setForm($form);
|
app/code/community/Sendmachine/Sendmachine/Block/AppContainer/Tab/Lists.php
CHANGED
@@ -2,6 +2,8 @@
|
|
2 |
|
3 |
class Sendmachine_Sendmachine_Block_AppContainer_Tab_Lists extends Mage_Adminhtml_Block_Widget_Form {
|
4 |
|
|
|
|
|
5 |
protected function _prepareForm() {
|
6 |
|
7 |
$sm = Mage::registry('sm_model');
|
@@ -12,77 +14,85 @@ class Sendmachine_Sendmachine_Block_AppContainer_Tab_Lists extends Mage_Adminhtm
|
|
12 |
)
|
13 |
);
|
14 |
|
|
|
|
|
|
|
15 |
$form->setUseContainer(true);
|
16 |
|
17 |
-
$fieldset = $form->addFieldset('lists_fieldset',
|
18 |
-
$popupfieldset = $form->addFieldset('lists_fieldset_popup',
|
19 |
-
$
|
|
|
|
|
20 |
|
21 |
-
$fieldset->addField('tab_lists', 'hidden',
|
22 |
'name' => 'tab',
|
23 |
'value' => 'list'
|
24 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
|
26 |
-
$fieldset->addField('selected_contact_list', 'select',
|
27 |
'name' => 'selected_contact_list',
|
28 |
'label' => Mage::helper('sendmachine')->__('Contact List'),
|
29 |
'title' => Mage::helper('sendmachine')->__('Contact List'),
|
30 |
'values' => Mage::getModel('sendmachine/source_contactlist')->toOptionArray(),
|
31 |
'after_element_html' => '<button style="margin-top:10px;" onClick="smRefreshCachedLists(\'' . Mage::helper('adminhtml')->getUrl('adminhtml/sendmachine/refreshCachedLists') . '\');return false;" >' . Mage::helper('sendmachine')->__('Refresh contact lists') . '</button><br><small>' . Mage::helper('sendmachine')->__("Contact lists do not update each time you visit this page. Click 'refresh' to update them when needed") . '</small>'
|
32 |
-
|
33 |
|
34 |
-
$fieldset->addField('keep_users_synced', 'select',
|
35 |
'name' => 'keep_users_synced',
|
36 |
'label' => Mage::helper('sendmachine')->__('Keep subscribers synced'),
|
37 |
'title' => Mage::helper('sendmachine')->__('Keep subscribers synced'),
|
38 |
'values' => Mage::getModel('adminhtml/system_config_source_yesno')->toOptionArray()
|
39 |
-
|
40 |
|
41 |
-
$fieldset->addField('import_subscribers_limit', 'select',
|
42 |
'name' => 'import_subscribers_limit',
|
43 |
'label' => Mage::helper('sendmachine')->__('Import subscribers limit'),
|
44 |
'title' => Mage::helper('sendmachine')->__('Import subscribers limit'),
|
45 |
'values' => Mage::getModel('sendmachine/source_importExportLimit')->toOptionArray()
|
46 |
-
|
47 |
|
48 |
-
$fieldset->addField('export_subscribers_limit', 'select',
|
49 |
'name' => 'export_subscribers_limit',
|
50 |
'label' => Mage::helper('sendmachine')->__('Export subscribers limit'),
|
51 |
'title' => Mage::helper('sendmachine')->__('Export subscribers limit'),
|
52 |
'values' => Mage::getModel('sendmachine/source_importExportLimit')->toOptionArray()
|
53 |
-
|
54 |
|
55 |
-
$popupfieldset->addField('enable_subscribe_popup', 'select',
|
56 |
'name' => 'enable_subscribe_popup',
|
57 |
'label' => Mage::helper('sendmachine')->__('Subscribe popup'),
|
58 |
'title' => Mage::helper('sendmachine')->__('Subscribe popup'),
|
59 |
'values' => Mage::getModel('adminhtml/system_config_source_yesno')->toOptionArray()
|
60 |
-
|
61 |
|
62 |
-
$popupfieldset->addField('popup_show_after_page', 'text',
|
63 |
'name' => 'popup_show_after_page',
|
64 |
'label' => Mage::helper('sendmachine')->__('Show On Page View'),
|
65 |
'title' => Mage::helper('sendmachine')->__('Show On Page View'),
|
66 |
-
|
67 |
|
68 |
-
$popupfieldset->addField('popup_delay', 'text',
|
69 |
'name' => 'popup_delay',
|
70 |
'label' => Mage::helper('sendmachine')->__('Popup Delay (ms)'),
|
71 |
'title' => Mage::helper('sendmachine')->__('Popup Delay (ms)'),
|
72 |
-
|
73 |
|
74 |
-
$popupfieldset->addField('hide_after_subscribe', 'text',
|
75 |
'name' => 'hide_after_subscribe',
|
76 |
'label' => Mage::helper('sendmachine')->__('Dismiss popup (s)'),
|
77 |
'title' => Mage::helper('sendmachine')->__('Dismiss popup (s)'),
|
78 |
'after_element_html' => '<small>' . Mage::helper('sendmachine')->__('Dismiss popup box after successful subscribe or no activity. 0 means no dismiss') . '</small>'
|
79 |
-
]);
|
80 |
-
|
81 |
-
$popupfieldset->addField('popup_show_on_store', 'select', array(
|
82 |
-
'name' => 'popup_show_on_store',
|
83 |
-
'label' => Mage::helper('sendmachine')->__('Show in store'),
|
84 |
-
'title' => Mage::helper('sendmachine')->__('Show in store'),
|
85 |
-
'values' => Mage::getSingleton('adminhtml/system_store')->getStoreValuesForForm(false, true),
|
86 |
));
|
87 |
|
88 |
$popupfieldset->addField('popup_text_header', 'text', array(
|
@@ -97,29 +107,25 @@ class Sendmachine_Sendmachine_Block_AppContainer_Tab_Lists extends Mage_Adminhtm
|
|
97 |
'title' => Mage::helper('sendmachine')->__("Popup custom fields"),
|
98 |
'after_element_html' => Mage::helper('sendmachine')->customfields2checkbox($sm->get('list_custom_fields'))
|
99 |
));
|
100 |
-
|
101 |
-
$
|
102 |
-
|
103 |
-
'
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
'
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
'class' => 'form-button',
|
120 |
-
'onclick' => "smExport('" . Mage::helper('adminhtml')->getUrl('adminhtml/sendmachine/exportToSendmachine') . "')",
|
121 |
-
'after_element_html' => '<br><small>' . Mage::helper('sendmachine')->__("Export your subscribed customers to a contact list in your sendmachine account.") . '<br><b>' . Mage::helper('sendmachine')->__("Note!") . '</b> ' . Mage::helper('sendmachine')->__("You must select a contact list first") . '</small>'
|
122 |
-
]);
|
123 |
|
124 |
$form->addValues($sm->get());
|
125 |
$this->setForm($form);
|
@@ -128,7 +134,8 @@ class Sendmachine_Sendmachine_Block_AppContainer_Tab_Lists extends Mage_Adminhtm
|
|
128 |
|
129 |
protected function _afterToHtml($html) {
|
130 |
|
131 |
-
$extra =
|
|
|
132 |
return $html . $extra;
|
133 |
}
|
134 |
|
2 |
|
3 |
class Sendmachine_Sendmachine_Block_AppContainer_Tab_Lists extends Mage_Adminhtml_Block_Widget_Form {
|
4 |
|
5 |
+
private $store = null;
|
6 |
+
|
7 |
protected function _prepareForm() {
|
8 |
|
9 |
$sm = Mage::registry('sm_model');
|
14 |
)
|
15 |
);
|
16 |
|
17 |
+
$request = Mage::app()->getRequest();
|
18 |
+
$this->store = $request->getParam('store');
|
19 |
+
|
20 |
$form->setUseContainer(true);
|
21 |
|
22 |
+
$fieldset = $form->addFieldset('lists_fieldset', array('legend' => Mage::helper('sendmachine')->__('List Settings')));
|
23 |
+
$popupfieldset = $form->addFieldset('lists_fieldset_popup', array('legend' => Mage::helper('sendmachine')->__('Popup Settings')));
|
24 |
+
if($this->store) {
|
25 |
+
$importexport = $form->addFieldset('lists_fieldset_importexport', array('legend' => Mage::helper('sendmachine')->__('Import/Export Users')));
|
26 |
+
}
|
27 |
|
28 |
+
$fieldset->addField('tab_lists', 'hidden', array(
|
29 |
'name' => 'tab',
|
30 |
'value' => 'list'
|
31 |
+
));
|
32 |
+
|
33 |
+
$fieldset->addField('website_lists', 'hidden', array(
|
34 |
+
'name' => 'website',
|
35 |
+
'value' => $request->getParam('website')
|
36 |
+
));
|
37 |
+
|
38 |
+
$fieldset->addField('store_lists', 'hidden', array(
|
39 |
+
'name' => 'store',
|
40 |
+
'value' => $this->store
|
41 |
+
));
|
42 |
|
43 |
+
$fieldset->addField('selected_contact_list', 'select', array(
|
44 |
'name' => 'selected_contact_list',
|
45 |
'label' => Mage::helper('sendmachine')->__('Contact List'),
|
46 |
'title' => Mage::helper('sendmachine')->__('Contact List'),
|
47 |
'values' => Mage::getModel('sendmachine/source_contactlist')->toOptionArray(),
|
48 |
'after_element_html' => '<button style="margin-top:10px;" onClick="smRefreshCachedLists(\'' . Mage::helper('adminhtml')->getUrl('adminhtml/sendmachine/refreshCachedLists') . '\');return false;" >' . Mage::helper('sendmachine')->__('Refresh contact lists') . '</button><br><small>' . Mage::helper('sendmachine')->__("Contact lists do not update each time you visit this page. Click 'refresh' to update them when needed") . '</small>'
|
49 |
+
));
|
50 |
|
51 |
+
$fieldset->addField('keep_users_synced', 'select', array(
|
52 |
'name' => 'keep_users_synced',
|
53 |
'label' => Mage::helper('sendmachine')->__('Keep subscribers synced'),
|
54 |
'title' => Mage::helper('sendmachine')->__('Keep subscribers synced'),
|
55 |
'values' => Mage::getModel('adminhtml/system_config_source_yesno')->toOptionArray()
|
56 |
+
));
|
57 |
|
58 |
+
$fieldset->addField('import_subscribers_limit', 'select', array(
|
59 |
'name' => 'import_subscribers_limit',
|
60 |
'label' => Mage::helper('sendmachine')->__('Import subscribers limit'),
|
61 |
'title' => Mage::helper('sendmachine')->__('Import subscribers limit'),
|
62 |
'values' => Mage::getModel('sendmachine/source_importExportLimit')->toOptionArray()
|
63 |
+
));
|
64 |
|
65 |
+
$fieldset->addField('export_subscribers_limit', 'select', array(
|
66 |
'name' => 'export_subscribers_limit',
|
67 |
'label' => Mage::helper('sendmachine')->__('Export subscribers limit'),
|
68 |
'title' => Mage::helper('sendmachine')->__('Export subscribers limit'),
|
69 |
'values' => Mage::getModel('sendmachine/source_importExportLimit')->toOptionArray()
|
70 |
+
));
|
71 |
|
72 |
+
$popupfieldset->addField('enable_subscribe_popup', 'select', array(
|
73 |
'name' => 'enable_subscribe_popup',
|
74 |
'label' => Mage::helper('sendmachine')->__('Subscribe popup'),
|
75 |
'title' => Mage::helper('sendmachine')->__('Subscribe popup'),
|
76 |
'values' => Mage::getModel('adminhtml/system_config_source_yesno')->toOptionArray()
|
77 |
+
));
|
78 |
|
79 |
+
$popupfieldset->addField('popup_show_after_page', 'text', array(
|
80 |
'name' => 'popup_show_after_page',
|
81 |
'label' => Mage::helper('sendmachine')->__('Show On Page View'),
|
82 |
'title' => Mage::helper('sendmachine')->__('Show On Page View'),
|
83 |
+
));
|
84 |
|
85 |
+
$popupfieldset->addField('popup_delay', 'text', array(
|
86 |
'name' => 'popup_delay',
|
87 |
'label' => Mage::helper('sendmachine')->__('Popup Delay (ms)'),
|
88 |
'title' => Mage::helper('sendmachine')->__('Popup Delay (ms)'),
|
89 |
+
));
|
90 |
|
91 |
+
$popupfieldset->addField('hide_after_subscribe', 'text', array(
|
92 |
'name' => 'hide_after_subscribe',
|
93 |
'label' => Mage::helper('sendmachine')->__('Dismiss popup (s)'),
|
94 |
'title' => Mage::helper('sendmachine')->__('Dismiss popup (s)'),
|
95 |
'after_element_html' => '<small>' . Mage::helper('sendmachine')->__('Dismiss popup box after successful subscribe or no activity. 0 means no dismiss') . '</small>'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
96 |
));
|
97 |
|
98 |
$popupfieldset->addField('popup_text_header', 'text', array(
|
107 |
'title' => Mage::helper('sendmachine')->__("Popup custom fields"),
|
108 |
'after_element_html' => Mage::helper('sendmachine')->customfields2checkbox($sm->get('list_custom_fields'))
|
109 |
));
|
110 |
+
|
111 |
+
if ($this->store) {
|
112 |
+
|
113 |
+
$importexport->addField('smImportToNewsletter', 'button', array(
|
114 |
+
'label' => Mage::helper('sendmachine')->__("Import subscribers"),
|
115 |
+
'value' => 'Import to Newsletter',
|
116 |
+
'class' => 'form-button',
|
117 |
+
'onclick' => "smImport('" . Mage::helper('adminhtml')->getUrl('adminhtml/sendmachine/importToNewsletter') . "')",
|
118 |
+
'after_element_html' => '<br><small>' . Mage::helper('sendmachine')->__("Import your sendmachine subscribers to 'Newsletter Subscribers' page.") . '<br><b>' . Mage::helper('sendmachine')->__('Note!') . '</b> ' . Mage::helper('sendmachine')->__("You must select a contact list first.") . '<br>' . Mage::helper('sendmachine')->__("If 'All store views' option is selected, users will be subscribed to the default store") . '</small>'
|
119 |
+
));
|
120 |
+
|
121 |
+
$importexport->addField('smExportToSendmachine', 'button', array(
|
122 |
+
'label' => Mage::helper('sendmachine')->__('Export subscribers'),
|
123 |
+
'value' => 'Export to Sendmachine',
|
124 |
+
'class' => 'form-button',
|
125 |
+
'onclick' => "smExport('" . Mage::helper('adminhtml')->getUrl('adminhtml/sendmachine/exportToSendmachine') . "')",
|
126 |
+
'after_element_html' => '<br><small>' . Mage::helper('sendmachine')->__("Export your subscribed customers to a contact list in your sendmachine account.") . '<br><b>' . Mage::helper('sendmachine')->__("Note!") . '</b> ' . Mage::helper('sendmachine')->__("You must select a contact list first") . '</small>'
|
127 |
+
));
|
128 |
+
}
|
|
|
|
|
|
|
|
|
129 |
|
130 |
$form->addValues($sm->get());
|
131 |
$this->setForm($form);
|
134 |
|
135 |
protected function _afterToHtml($html) {
|
136 |
|
137 |
+
$extra = "";
|
138 |
+
if($this->store) $extra = $this->getLayout()->createBlock('sendmachine/appContainer_grid')->toHtml();
|
139 |
return $html . $extra;
|
140 |
}
|
141 |
|
app/code/community/Sendmachine/Sendmachine/Block/AppContainer/Tabs.php
CHANGED
@@ -2,12 +2,22 @@
|
|
2 |
|
3 |
class Sendmachine_Sendmachine_Block_AppContainer_Tabs extends Mage_Adminhtml_Block_Widget_Tabs {
|
4 |
|
|
|
|
|
5 |
public function __construct() {
|
6 |
|
7 |
parent::__construct();
|
8 |
|
9 |
$this->setId('sendmachine_tabs');
|
10 |
$this->setTitle("<img style='height:44px;' src='" . $this->getSkinUrl('sendmachine/logo.png') . "'>");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
}
|
12 |
|
13 |
protected function _beforeToHtml() {
|
@@ -15,20 +25,20 @@ class Sendmachine_Sendmachine_Block_AppContainer_Tabs extends Mage_Adminhtml_Blo
|
|
15 |
$this->addTab('general_section', array(
|
16 |
'label' => Mage::helper('sendmachine')->__('General'),
|
17 |
'title' => Mage::helper('sendmachine')->__('General'),
|
18 |
-
'url' => $this->getUrl('*/*/index')
|
19 |
));
|
20 |
|
21 |
$this->addTab('list_section', array(
|
22 |
'label' => Mage::helper('sendmachine')->__('List'),
|
23 |
'title' => Mage::helper('sendmachine')->__('List'),
|
24 |
-
'url' => $this->getUrl('*/*/list'),
|
25 |
'active' => (Mage::app()->getRequest()->getActionName() == 'list' ) ? true : false
|
26 |
));
|
27 |
|
28 |
$this->addTab('email_section', array(
|
29 |
'label' => Mage::helper('sendmachine')->__('Email'),
|
30 |
'title' => Mage::helper('sendmachine')->__('Email'),
|
31 |
-
'url' => $this->getUrl('*/*/email'),
|
32 |
'active' => (Mage::app()->getRequest()->getActionName() == 'email' ) ? true : false
|
33 |
));
|
34 |
|
2 |
|
3 |
class Sendmachine_Sendmachine_Block_AppContainer_Tabs extends Mage_Adminhtml_Block_Widget_Tabs {
|
4 |
|
5 |
+
private $suffix = "";
|
6 |
+
|
7 |
public function __construct() {
|
8 |
|
9 |
parent::__construct();
|
10 |
|
11 |
$this->setId('sendmachine_tabs');
|
12 |
$this->setTitle("<img style='height:44px;' src='" . $this->getSkinUrl('sendmachine/logo.png') . "'>");
|
13 |
+
|
14 |
+
$request = Mage::app()->getRequest();
|
15 |
+
|
16 |
+
$website = $request->getParam('website');
|
17 |
+
$store = $request->getParam('store');
|
18 |
+
|
19 |
+
if($website) $this->suffix .= "/website/$website";
|
20 |
+
if($store) $this->suffix .= "/store/$store";
|
21 |
}
|
22 |
|
23 |
protected function _beforeToHtml() {
|
25 |
$this->addTab('general_section', array(
|
26 |
'label' => Mage::helper('sendmachine')->__('General'),
|
27 |
'title' => Mage::helper('sendmachine')->__('General'),
|
28 |
+
'url' => $this->getUrl('*/*/index' . $this->suffix)
|
29 |
));
|
30 |
|
31 |
$this->addTab('list_section', array(
|
32 |
'label' => Mage::helper('sendmachine')->__('List'),
|
33 |
'title' => Mage::helper('sendmachine')->__('List'),
|
34 |
+
'url' => $this->getUrl('*/*/list' . $this->suffix),
|
35 |
'active' => (Mage::app()->getRequest()->getActionName() == 'list' ) ? true : false
|
36 |
));
|
37 |
|
38 |
$this->addTab('email_section', array(
|
39 |
'label' => Mage::helper('sendmachine')->__('Email'),
|
40 |
'title' => Mage::helper('sendmachine')->__('Email'),
|
41 |
+
'url' => $this->getUrl('*/*/email' .$this->suffix),
|
42 |
'active' => (Mage::app()->getRequest()->getActionName() == 'email' ) ? true : false
|
43 |
));
|
44 |
|
app/code/community/Sendmachine/Sendmachine/Block/PopupBlock.php
CHANGED
@@ -9,14 +9,12 @@ Class Sendmachine_Sendmachine_Block_PopupBlock extends Mage_Core_Block_Template
|
|
9 |
$smInstance = Mage::registry('sm_model');
|
10 |
$this->sm = $smInstance ? $smInstance : Mage::getModel('sendmachine/sendmachine');
|
11 |
|
12 |
-
$
|
13 |
-
|
14 |
-
|
15 |
-
if ($this->sm->apiConnected() && $this->sm->get('plugin_enabled') && $this->sm->get('enable_subscribe_popup') && (!$store || $store == $currentStore)) {
|
16 |
-
|
17 |
$cookie = Mage::getSingleton('core/cookie');
|
18 |
-
|
19 |
-
|
|
|
20 |
$count = 0;
|
21 |
}
|
22 |
|
@@ -24,7 +22,7 @@ Class Sendmachine_Sendmachine_Block_PopupBlock extends Mage_Core_Block_Template
|
|
24 |
|
25 |
if ($configCount > $count) {
|
26 |
$count++;
|
27 |
-
$cookie->set(
|
28 |
|
29 |
if ($configCount == $count) {
|
30 |
return true;
|
9 |
$smInstance = Mage::registry('sm_model');
|
10 |
$this->sm = $smInstance ? $smInstance : Mage::getModel('sendmachine/sendmachine');
|
11 |
|
12 |
+
if ($this->sm->apiConnected() && $this->sm->get('plugin_enabled') && $this->sm->get('enable_subscribe_popup')) {
|
13 |
+
|
|
|
|
|
|
|
14 |
$cookie = Mage::getSingleton('core/cookie');
|
15 |
+
$cookie_key = 'sendmachine_popup_count_'.Mage::app()->getStore()->getStoreId();
|
16 |
+
if (!$count = $cookie->get($cookie_key)) {
|
17 |
+
$cookie->set($cookie_key, 1, 3600 * 24 * 365, '/');
|
18 |
$count = 0;
|
19 |
}
|
20 |
|
22 |
|
23 |
if ($configCount > $count) {
|
24 |
$count++;
|
25 |
+
$cookie->set($cookie_key, $count, 3600 * 24 * 365, '/');
|
26 |
|
27 |
if ($configCount == $count) {
|
28 |
return true;
|
app/code/community/Sendmachine/Sendmachine/Helper/Data.php
CHANGED
@@ -6,11 +6,11 @@ class Sendmachine_Sendmachine_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
6 |
|
7 |
if ($smtp_settings) {
|
8 |
|
9 |
-
$config =
|
10 |
"host" => $smtp_settings['hostname'],
|
11 |
"username" => $smtp_settings["username"],
|
12 |
"password" => $smtp_settings['password'],
|
13 |
-
|
14 |
|
15 |
switch ($smtpEncryptionType) {
|
16 |
case "SSL":
|
@@ -87,7 +87,7 @@ class Sendmachine_Sendmachine_Helper_Data extends Mage_Core_Helper_Abstract {
|
|
87 |
if (!$fields || !count($fields))
|
88 |
return NULL;
|
89 |
|
90 |
-
$_fields =
|
91 |
foreach ($fields as $v) {
|
92 |
|
93 |
if (!isset($v['form_name']))
|
6 |
|
7 |
if ($smtp_settings) {
|
8 |
|
9 |
+
$config = array(
|
10 |
"host" => $smtp_settings['hostname'],
|
11 |
"username" => $smtp_settings["username"],
|
12 |
"password" => $smtp_settings['password'],
|
13 |
+
);
|
14 |
|
15 |
switch ($smtpEncryptionType) {
|
16 |
case "SSL":
|
87 |
if (!$fields || !count($fields))
|
88 |
return NULL;
|
89 |
|
90 |
+
$_fields = array();
|
91 |
foreach ($fields as $v) {
|
92 |
|
93 |
if (!isset($v['form_name']))
|
app/code/community/Sendmachine/Sendmachine/Model/...Observer.php
DELETED
@@ -1,20 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
class Septi_Sendmachine_Model_Observer {
|
4 |
-
|
5 |
-
public function __construct() {
|
6 |
-
|
7 |
-
$this->sm = Mage::getModel('sendmachine/sm4magento');
|
8 |
-
}
|
9 |
-
|
10 |
-
public function sendmachineObserver() {
|
11 |
-
|
12 |
-
$credentials = $this->sm->getCredentials();
|
13 |
-
$this->sm->connectApi($credentials);
|
14 |
-
|
15 |
-
if (Mage::getStoreConfigFlag('system/smtp/disable')) {
|
16 |
-
$this->sm->setData('system/smtp/disable', 0);
|
17 |
-
}
|
18 |
-
}
|
19 |
-
|
20 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app/code/community/Sendmachine/Sendmachine/Model/Cronjobs.php
CHANGED
@@ -14,6 +14,7 @@ class Sendmachine_Sendmachine_Model_Cronjobs {
|
|
14 |
|
15 |
public function importToNewsletter($store, $logId, $listId) {
|
16 |
|
|
|
17 |
$this->sm->importMode = true;
|
18 |
|
19 |
$_limit = $this->sm->get('import_subscribers_limit');
|
@@ -34,8 +35,6 @@ class Sendmachine_Sendmachine_Model_Cronjobs {
|
|
34 |
}
|
35 |
}
|
36 |
|
37 |
-
Mage::app()->setCurrentStore((int) $store);
|
38 |
-
|
39 |
if ($sm_subscribers && count($sm_subscribers)) {
|
40 |
|
41 |
$subscribe_model = Mage::getModel('newsletter/subscriber');
|
14 |
|
15 |
public function importToNewsletter($store, $logId, $listId) {
|
16 |
|
17 |
+
$this->sm->setStore($store);
|
18 |
$this->sm->importMode = true;
|
19 |
|
20 |
$_limit = $this->sm->get('import_subscribers_limit');
|
35 |
}
|
36 |
}
|
37 |
|
|
|
|
|
38 |
if ($sm_subscribers && count($sm_subscribers)) {
|
39 |
|
40 |
$subscribe_model = Mage::getModel('newsletter/subscriber');
|
app/code/community/Sendmachine/Sendmachine/Model/Email/Template.php
CHANGED
@@ -93,17 +93,21 @@ class Sendmachine_Sendmachine_Model_Email_Template extends Mage_Core_Model_Email
|
|
93 |
|
94 |
$mail->setSubject('=?utf-8?B?' . base64_encode($subject) . '?=');
|
95 |
|
|
|
96 |
$_fromEmail = $sm->get('from_email');
|
97 |
$_fromName = $sm->get('from_name');
|
98 |
|
99 |
$fromEmail = $_fromEmail ? $_fromEmail : $this->getSenderEmail();
|
100 |
$fromName = $_fromName ? $_fromName : $this->getSenderName();
|
|
|
101 |
|
102 |
$mail->setFrom($fromEmail, $fromName);
|
103 |
|
|
|
104 |
if ($trCmp = $sm->createTransactionalCampaign($this->getId())) {
|
105 |
$mail->addHeader($trCmp['header_name'], $trCmp['header_value']);
|
106 |
}
|
|
|
107 |
|
108 |
try {
|
109 |
$mail->send();
|
93 |
|
94 |
$mail->setSubject('=?utf-8?B?' . base64_encode($subject) . '?=');
|
95 |
|
96 |
+
/* take a look at this chunk of code */
|
97 |
$_fromEmail = $sm->get('from_email');
|
98 |
$_fromName = $sm->get('from_name');
|
99 |
|
100 |
$fromEmail = $_fromEmail ? $_fromEmail : $this->getSenderEmail();
|
101 |
$fromName = $_fromName ? $_fromName : $this->getSenderName();
|
102 |
+
/* take a look at this chunk of code */
|
103 |
|
104 |
$mail->setFrom($fromEmail, $fromName);
|
105 |
|
106 |
+
/* take a look at this chunk of code */
|
107 |
if ($trCmp = $sm->createTransactionalCampaign($this->getId())) {
|
108 |
$mail->addHeader($trCmp['header_name'], $trCmp['header_value']);
|
109 |
}
|
110 |
+
/* take a look at this chunk of code */
|
111 |
|
112 |
try {
|
113 |
$mail->send();
|
app/code/community/Sendmachine/Sendmachine/Model/Observer.php
CHANGED
@@ -9,8 +9,6 @@ class Sendmachine_Sendmachine_Model_Observer {
|
|
9 |
|
10 |
if ($sm->get('api_connected') && $sm->get('keep_users_synced') && !$sm->importMode) {
|
11 |
|
12 |
-
file_put_contents('/home/septi/work/logs/log', PHP_EOL . "Observer hit!!", FILE_APPEND);
|
13 |
-
|
14 |
$event = $observer->getEvent();
|
15 |
$subscriber = $event->getDataObject();
|
16 |
$data = $subscriber->getData();
|
@@ -18,7 +16,7 @@ class Sendmachine_Sendmachine_Model_Observer {
|
|
18 |
if ($data['subscriber_status'] == Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED) {
|
19 |
|
20 |
$listId = $sm->get('selected_contact_list');
|
21 |
-
$sm->subscribeToList(
|
22 |
}
|
23 |
}
|
24 |
|
9 |
|
10 |
if ($sm->get('api_connected') && $sm->get('keep_users_synced') && !$sm->importMode) {
|
11 |
|
|
|
|
|
12 |
$event = $observer->getEvent();
|
13 |
$subscriber = $event->getDataObject();
|
14 |
$data = $subscriber->getData();
|
16 |
if ($data['subscriber_status'] == Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED) {
|
17 |
|
18 |
$listId = $sm->get('selected_contact_list');
|
19 |
+
$sm->subscribeToList(array($data['subscriber_email']), $listId);
|
20 |
}
|
21 |
}
|
22 |
|
app/code/community/Sendmachine/Sendmachine/Model/Sendmachine.php
CHANGED
@@ -6,18 +6,43 @@ class Sendmachine_Sendmachine_Model_Sendmachine extends Mage_Core_Model_Abstract
|
|
6 |
|
7 |
protected $api = NULL;
|
8 |
protected $appData = NULL;
|
|
|
|
|
|
|
9 |
|
10 |
protected function _construct() {
|
11 |
|
12 |
parent::_construct();
|
13 |
$this->_init('sendmachine/sendmachine');
|
14 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
|
16 |
public function get($key = NULL, $forceFetch = false) {
|
17 |
|
18 |
if ($this->appData === NULL || $forceFetch) {
|
19 |
|
20 |
-
$
|
|
|
|
|
|
|
|
|
|
|
21 |
$this->appData = json_decode($tmpData, true);
|
22 |
}
|
23 |
|
@@ -76,12 +101,33 @@ class Sendmachine_Sendmachine_Model_Sendmachine extends Mage_Core_Model_Abstract
|
|
76 |
}
|
77 |
|
78 |
public function commit($path = self::SM_APP, $value = NULL) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
79 |
|
80 |
if (is_null($value)) {
|
81 |
$value = json_encode($this->appData);
|
82 |
}
|
83 |
|
84 |
-
Mage::getModel('core/config')->saveConfig($path, $value);
|
85 |
|
86 |
Mage::app()->getCacheInstance()->cleanType('config');
|
87 |
}
|
@@ -134,10 +180,10 @@ class Sendmachine_Sendmachine_Model_Sendmachine extends Mage_Core_Model_Abstract
|
|
134 |
|
135 |
$savedQueueData = $this->get('sm_cronjob');
|
136 |
if (!is_array($savedQueueData)) {
|
137 |
-
$savedQueueData =
|
138 |
}
|
139 |
|
140 |
-
array_push($savedQueueData,
|
141 |
|
142 |
$this->set('sm_cronjob', $savedQueueData, true);
|
143 |
}
|
@@ -152,7 +198,7 @@ class Sendmachine_Sendmachine_Model_Sendmachine extends Mage_Core_Model_Abstract
|
|
152 |
if ($sqd && is_array($sqd) && count($sqd)) {
|
153 |
|
154 |
foreach ($sqd as $v) {
|
155 |
-
call_user_func_array(
|
156 |
}
|
157 |
}
|
158 |
}
|
@@ -241,7 +287,7 @@ class Sendmachine_Sendmachine_Model_Sendmachine extends Mage_Core_Model_Abstract
|
|
241 |
}
|
242 |
}
|
243 |
|
244 |
-
public function subscribeToList($subscribers =
|
245 |
|
246 |
try {
|
247 |
$this->initApiClass();
|
@@ -290,10 +336,10 @@ class Sendmachine_Sendmachine_Model_Sendmachine extends Mage_Core_Model_Abstract
|
|
290 |
$template_list = Mage::getModel('core/email_template')->getDefaultTemplates();
|
291 |
$template_name = $template_list[trim($template_id)]['label'];
|
292 |
|
293 |
-
return
|
294 |
"header_name" => "X-Sendmachine-Campaign",
|
295 |
"header_value" => $trCmpPrexif . $template_name . $trCmpSuffix
|
296 |
-
|
297 |
}
|
298 |
return false;
|
299 |
}
|
@@ -302,10 +348,10 @@ class Sendmachine_Sendmachine_Model_Sendmachine extends Mage_Core_Model_Abstract
|
|
302 |
|
303 |
public function getCredentials() {
|
304 |
|
305 |
-
return
|
306 |
"username" => $this->get('api_username'),
|
307 |
"password" => $this->get('api_password')
|
308 |
-
|
309 |
}
|
310 |
|
311 |
public function addImportExportLog($action, $state = 'pending', $number = 0, $logId = NULL) {
|
@@ -319,7 +365,10 @@ class Sendmachine_Sendmachine_Model_Sendmachine extends Mage_Core_Model_Abstract
|
|
319 |
$listName = $v['name'];
|
320 |
}
|
321 |
}
|
322 |
-
|
|
|
|
|
|
|
323 |
$this->setData($data);
|
324 |
return $this->save()->getId();
|
325 |
} else {
|
6 |
|
7 |
protected $api = NULL;
|
8 |
protected $appData = NULL;
|
9 |
+
|
10 |
+
private $website = null;
|
11 |
+
private $store = null;
|
12 |
|
13 |
protected function _construct() {
|
14 |
|
15 |
parent::_construct();
|
16 |
$this->_init('sendmachine/sendmachine');
|
17 |
}
|
18 |
+
|
19 |
+
public function setWebsite($website = null) {
|
20 |
+
$this->website = $website;
|
21 |
+
}
|
22 |
+
|
23 |
+
public function getWebsite() {
|
24 |
+
return $this->website;
|
25 |
+
}
|
26 |
+
|
27 |
+
public function setStore($store = null, $setCurrentStore = true) {
|
28 |
+
$this->store = $store;
|
29 |
+
if($this->store AND $setCurrentStore) Mage::app()->setCurrentStore($store);
|
30 |
+
}
|
31 |
+
|
32 |
+
public function getStore() {
|
33 |
+
return $this->store;
|
34 |
+
}
|
35 |
|
36 |
public function get($key = NULL, $forceFetch = false) {
|
37 |
|
38 |
if ($this->appData === NULL || $forceFetch) {
|
39 |
|
40 |
+
if ($this->website AND !$this->store) {
|
41 |
+
$tmpData = Mage::app()->getWebsite($this->website)->getConfig(self::SM_APP);
|
42 |
+
} else {
|
43 |
+
$tmpData = Mage::getStoreConfig(self::SM_APP, $this->store);
|
44 |
+
}
|
45 |
+
|
46 |
$this->appData = json_decode($tmpData, true);
|
47 |
}
|
48 |
|
101 |
}
|
102 |
|
103 |
public function commit($path = self::SM_APP, $value = NULL) {
|
104 |
+
|
105 |
+
$scope = "default";
|
106 |
+
$scope_id = 0;
|
107 |
+
|
108 |
+
if ($this->website AND $this->store) {
|
109 |
+
$scope = "stores";
|
110 |
+
$scope_id = Mage::getModel('core/store')->load($this->store, 'code')->getId();
|
111 |
+
} elseif ($this->website) {
|
112 |
+
$websites = Mage::app()->getWebsites();
|
113 |
+
foreach ($websites as $id => $website) {
|
114 |
+
if($website->getCode() == $this->website) {
|
115 |
+
$website_id = $id;
|
116 |
+
continue;
|
117 |
+
}
|
118 |
+
}
|
119 |
+
|
120 |
+
if(!$website_id) $website_id = 0;
|
121 |
+
|
122 |
+
$scope = "websites";
|
123 |
+
$scope_id = $website_id;
|
124 |
+
}
|
125 |
|
126 |
if (is_null($value)) {
|
127 |
$value = json_encode($this->appData);
|
128 |
}
|
129 |
|
130 |
+
Mage::getModel('core/config')->saveConfig($path, $value, $scope, $scope_id);
|
131 |
|
132 |
Mage::app()->getCacheInstance()->cleanType('config');
|
133 |
}
|
180 |
|
181 |
$savedQueueData = $this->get('sm_cronjob');
|
182 |
if (!is_array($savedQueueData)) {
|
183 |
+
$savedQueueData = array();
|
184 |
}
|
185 |
|
186 |
+
array_push($savedQueueData, array('method' => $method, 'args' => $args));
|
187 |
|
188 |
$this->set('sm_cronjob', $savedQueueData, true);
|
189 |
}
|
198 |
if ($sqd && is_array($sqd) && count($sqd)) {
|
199 |
|
200 |
foreach ($sqd as $v) {
|
201 |
+
call_user_func_array(array(Mage::getModel('sendmachine/cronjobs'), $v['method']), $v['args']);
|
202 |
}
|
203 |
}
|
204 |
}
|
287 |
}
|
288 |
}
|
289 |
|
290 |
+
public function subscribeToList($subscribers = array(), $listId = NULL) {
|
291 |
|
292 |
try {
|
293 |
$this->initApiClass();
|
336 |
$template_list = Mage::getModel('core/email_template')->getDefaultTemplates();
|
337 |
$template_name = $template_list[trim($template_id)]['label'];
|
338 |
|
339 |
+
return array(
|
340 |
"header_name" => "X-Sendmachine-Campaign",
|
341 |
"header_value" => $trCmpPrexif . $template_name . $trCmpSuffix
|
342 |
+
);
|
343 |
}
|
344 |
return false;
|
345 |
}
|
348 |
|
349 |
public function getCredentials() {
|
350 |
|
351 |
+
return array(
|
352 |
"username" => $this->get('api_username'),
|
353 |
"password" => $this->get('api_password')
|
354 |
+
);
|
355 |
}
|
356 |
|
357 |
public function addImportExportLog($action, $state = 'pending', $number = 0, $logId = NULL) {
|
365 |
$listName = $v['name'];
|
366 |
}
|
367 |
}
|
368 |
+
|
369 |
+
$store_id = Mage::getModel('core/store')->load($this->store, 'code')->getId();
|
370 |
+
|
371 |
+
$data = array('store' => $store_id, 'action' => $action, 'state' => $state, 'list_name' => $listName, 'sdate' => date('Y-m-d H:i:s'));
|
372 |
$this->setData($data);
|
373 |
return $this->save()->getId();
|
374 |
} else {
|
app/code/community/Sendmachine/Sendmachine/Model/Source/Contactlist.php
CHANGED
@@ -9,21 +9,19 @@ class Sendmachine_Sendmachine_Model_Source_Contactlist {
|
|
9 |
|
10 |
public function toOptionArray() {
|
11 |
|
12 |
-
$cl =
|
13 |
-
[
|
14 |
'value' => '0',
|
15 |
'label' => ''
|
16 |
-
|
17 |
-
];
|
18 |
if ($this->sm->apiConnected()) {
|
19 |
|
20 |
$data = $this->sm->get('contact_lists');
|
21 |
if (count($data)) {
|
22 |
foreach ($data as $value) {
|
23 |
-
array_push($cl,
|
24 |
'value' => $value['list_id'],
|
25 |
'label' => $value['name']
|
26 |
-
|
27 |
}
|
28 |
}
|
29 |
}
|
9 |
|
10 |
public function toOptionArray() {
|
11 |
|
12 |
+
$cl = array(array(
|
|
|
13 |
'value' => '0',
|
14 |
'label' => ''
|
15 |
+
));
|
|
|
16 |
if ($this->sm->apiConnected()) {
|
17 |
|
18 |
$data = $this->sm->get('contact_lists');
|
19 |
if (count($data)) {
|
20 |
foreach ($data as $value) {
|
21 |
+
array_push($cl, array(
|
22 |
'value' => $value['list_id'],
|
23 |
'label' => $value['name']
|
24 |
+
));
|
25 |
}
|
26 |
}
|
27 |
}
|
app/code/community/Sendmachine/Sendmachine/Model/Source/ImportExportLimit.php
CHANGED
@@ -4,12 +4,12 @@ class Sendmachine_Sendmachine_Model_Source_ImportExportLimit {
|
|
4 |
|
5 |
public function toOptionArray() {
|
6 |
|
7 |
-
$values =
|
8 |
|
9 |
-
$ret =
|
10 |
|
11 |
foreach ($values as $val) {
|
12 |
-
array_push($ret,
|
13 |
}
|
14 |
|
15 |
return $ret;
|
4 |
|
5 |
public function toOptionArray() {
|
6 |
|
7 |
+
$values = array(100, 200, 500, 1000, 5000, 10000);
|
8 |
|
9 |
+
$ret = array();
|
10 |
|
11 |
foreach ($values as $val) {
|
12 |
+
array_push($ret, array('value' => $val, 'label' => $val));
|
13 |
}
|
14 |
|
15 |
return $ret;
|
app/code/community/Sendmachine/Sendmachine/Model/Source/Smtp.php
CHANGED
@@ -4,20 +4,16 @@ class Sendmachine_Sendmachine_Model_Source_Smtp {
|
|
4 |
|
5 |
public function toOptionArray() {
|
6 |
|
7 |
-
return
|
8 |
-
[
|
9 |
'value' => 'OPEN',
|
10 |
'label' => 'No Encryption',
|
11 |
-
|
12 |
-
[
|
13 |
'value' => 'SSL',
|
14 |
'label' => 'SSL',
|
15 |
-
|
16 |
-
[
|
17 |
'value' => 'TLS',
|
18 |
'label' => 'TLS'
|
19 |
-
|
20 |
-
];
|
21 |
}
|
22 |
|
23 |
}
|
4 |
|
5 |
public function toOptionArray() {
|
6 |
|
7 |
+
return array(array(
|
|
|
8 |
'value' => 'OPEN',
|
9 |
'label' => 'No Encryption',
|
10 |
+
), array(
|
|
|
11 |
'value' => 'SSL',
|
12 |
'label' => 'SSL',
|
13 |
+
), array(
|
|
|
14 |
'value' => 'TLS',
|
15 |
'label' => 'TLS'
|
16 |
+
));
|
|
|
17 |
}
|
18 |
|
19 |
}
|
app/code/community/Sendmachine/Sendmachine/Model/Source/TransactionalCampAreas.php
CHANGED
@@ -9,7 +9,7 @@ class Sendmachine_Sendmachine_Model_Source_TransactionalCampAreas {
|
|
9 |
|
10 |
public function toOptionArray() {
|
11 |
|
12 |
-
$cl =
|
13 |
if ($this->sm->get('api_connected')) {
|
14 |
|
15 |
$cl = Mage::getModel('core/email_template')->getDefaultTemplatesAsOptionsArray();
|
9 |
|
10 |
public function toOptionArray() {
|
11 |
|
12 |
+
$cl = array();
|
13 |
if ($this->sm->get('api_connected')) {
|
14 |
|
15 |
$cl = Mage::getModel('core/email_template')->getDefaultTemplatesAsOptionsArray();
|
app/code/community/Sendmachine/Sendmachine/controllers/SendmachineController.php
CHANGED
@@ -4,21 +4,64 @@ class Sendmachine_Sendmachine_SendmachineController extends Mage_Adminhtml_Contr
|
|
4 |
|
5 |
private $sm;
|
6 |
|
7 |
-
public function __construct($request, $response, $invokeArgs =
|
8 |
|
9 |
parent::__construct($request, $response, $invokeArgs);
|
10 |
|
11 |
$smInstance = Mage::registry('sm_model');
|
12 |
$this->sm = $smInstance ? $smInstance : Mage::getModel('sendmachine/sendmachine');
|
13 |
}
|
|
|
|
|
14 |
|
15 |
private function _renderApp($tab = '') {
|
16 |
|
17 |
Mage::register('sm_model', $this->sm);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
18 |
|
19 |
$this->loadLayout();
|
20 |
$this->_setActiveMenu('system/sendmachine');
|
21 |
-
$this->_addContent($this->getLayout()->createBlock('
|
|
|
|
|
|
|
|
|
22 |
$this->_addLeft($this->getLayout()->createBlock('sendmachine/appContainer_tabs'));
|
23 |
$this->getLayout()->getBlock('head')->addJs("sendmachine/admin.js");
|
24 |
$this->renderLayout();
|
@@ -46,12 +89,36 @@ class Sendmachine_Sendmachine_SendmachineController extends Mage_Adminhtml_Contr
|
|
46 |
|
47 |
$params = $this->getRequest()->getParams();
|
48 |
$tab = isset($params['tab']) ? $params['tab'] : "index";
|
49 |
-
|
|
|
|
|
50 |
unset($params['tab']);
|
51 |
unset($params['limit']);
|
52 |
unset($params['page']);
|
53 |
unset($params['key']);
|
54 |
unset($params['form_key']);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
|
56 |
$initial_credentials = $this->sm->getCredentials();
|
57 |
$initial_listid = $this->sm->get('selected_contact_list');
|
@@ -64,13 +131,15 @@ class Sendmachine_Sendmachine_SendmachineController extends Mage_Adminhtml_Contr
|
|
64 |
|
65 |
if ($initial_credentials != $credentials) {
|
66 |
|
67 |
-
if (($connectApi = $this->sm->connectApi()) === true)
|
68 |
$this->_initApp();
|
|
|
69 |
|
70 |
else {
|
71 |
|
72 |
-
if (!$connectApi)
|
73 |
$connectApi = "Unexpected error occurred!";
|
|
|
74 |
|
75 |
$errorHandled = true;
|
76 |
Mage::getSingleton('adminhtml/session')->addError($this->__($connectApi));
|
@@ -93,13 +162,27 @@ class Sendmachine_Sendmachine_SendmachineController extends Mage_Adminhtml_Contr
|
|
93 |
|
94 |
$this->sm->commit();
|
95 |
|
96 |
-
if (!$errorHandled)
|
97 |
Mage::getSingleton('adminhtml/session')->addSuccess($this->__('Successfully saved'));
|
98 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
99 |
}
|
100 |
|
|
|
|
|
|
|
101 |
public function sendtestmailAction() {
|
102 |
-
|
|
|
|
|
|
|
|
|
|
|
103 |
if (!$this->sm->apiConnected()) {
|
104 |
|
105 |
Mage::getSingleton('adminhtml/session')->addError($this->__('Api not connected'));
|
@@ -113,27 +196,27 @@ class Sendmachine_Sendmachine_SendmachineController extends Mage_Adminhtml_Contr
|
|
113 |
|
114 |
$mailer = Mage::getModel('core/email_template');
|
115 |
|
116 |
-
$recipientEmail = $
|
117 |
|
118 |
$sender['name'] = Mage::getStoreConfig('trans_email/ident_general/name');
|
119 |
$sender['email'] = Mage::getStoreConfig('trans_email/ident_general/email');
|
120 |
|
121 |
-
$result = $mailer->sendTransactional("smSendTestEmail", $sender, $recipientEmail);
|
122 |
|
123 |
-
if ($result->sent_success)
|
124 |
Mage::getSingleton('adminhtml/session')->addSuccess(sprintf($this->__("Test message to '%s' sent successfully"), $recipientEmail));
|
125 |
-
else
|
126 |
Mage::getSingleton('adminhtml/session')->addError($this->__('Something went wrong, message not sent'));
|
|
|
127 |
}
|
128 |
|
129 |
public function importToNewsletterAction() {
|
130 |
|
|
|
|
|
|
|
131 |
if ($this->sm->apiConnected()) {
|
132 |
|
133 |
-
$store = $this->getRequest()->getParam('store');
|
134 |
-
if (!$store) {
|
135 |
-
$store = Mage::app()->getWebsite(true)->getDefaultGroup()->getDefaultStoreId();
|
136 |
-
}
|
137 |
$logId = $this->sm->addImportExportLog('import');
|
138 |
$listId = $this->sm->get('selected_contact_list');
|
139 |
|
@@ -147,17 +230,19 @@ class Sendmachine_Sendmachine_SendmachineController extends Mage_Adminhtml_Contr
|
|
147 |
}
|
148 |
|
149 |
public function exportToSendmachineAction() {
|
|
|
|
|
|
|
150 |
|
151 |
if ($this->sm->apiConnected()) {
|
152 |
|
153 |
-
$subscribe_status =
|
154 |
|
155 |
$logId = $this->sm->addImportExportLog('export');
|
156 |
|
157 |
-
$store = $this->getRequest()->getParam('sm_import_export_store');
|
158 |
$limit = $this->sm->get('export_subscribers_limit');
|
159 |
$subscribers = Mage::getModel('newsletter/subscriber')->getCollection()->setPageSize((int) $limit);
|
160 |
-
$_subscribers =
|
161 |
|
162 |
if ($subscribers && count($subscribers)) {
|
163 |
|
4 |
|
5 |
private $sm;
|
6 |
|
7 |
+
public function __construct($request, $response, $invokeArgs = array()) {
|
8 |
|
9 |
parent::__construct($request, $response, $invokeArgs);
|
10 |
|
11 |
$smInstance = Mage::registry('sm_model');
|
12 |
$this->sm = $smInstance ? $smInstance : Mage::getModel('sendmachine/sendmachine');
|
13 |
}
|
14 |
+
|
15 |
+
/* MAGENTO PLUGIN CONFIGURATION ACTIONS */
|
16 |
|
17 |
private function _renderApp($tab = '') {
|
18 |
|
19 |
Mage::register('sm_model', $this->sm);
|
20 |
+
|
21 |
+
$request = Mage::app()->getRequest();
|
22 |
+
$website = $request->getParam('website');
|
23 |
+
$store = $request->getParam('store');
|
24 |
+
$button_data = null;
|
25 |
+
|
26 |
+
$this->sm->setWebsite($website);
|
27 |
+
$this->sm->setStore($store, false);
|
28 |
+
|
29 |
+
$conflicts = array();
|
30 |
+
$rewrites = Mage::getConfig()->getNode()->xpath('//global//rewrite');
|
31 |
+
if (is_array($rewrites) && !empty($rewrites)) {
|
32 |
+
foreach ($rewrites as $v) {
|
33 |
+
if (array_key_exists('email', $v)) {
|
34 |
+
array_push($conflicts, (string)$v->email);
|
35 |
+
}
|
36 |
+
}
|
37 |
+
}
|
38 |
+
|
39 |
+
if($conflicts) {
|
40 |
+
$conflicts = implode("</li><li>", $conflicts);
|
41 |
+
Mage::getSingleton('core/session')->addError("<span>Detected overwrite conflict:</span><ul style='list-style-type: disc;margin-top: 5px;'><li>$conflicts</li></ul>");
|
42 |
+
}
|
43 |
+
|
44 |
+
if ($website AND $store) {
|
45 |
+
$button_data = array(
|
46 |
+
'label' => $this->__('Reset values to website'),
|
47 |
+
'class' => 'reset_to_parent',
|
48 |
+
'onclick' => "resetToParent('" . Mage::helper('adminhtml')->getUrl('adminhtml/sendmachine/resetoparent') . "', '$website', '$store', 'website')"
|
49 |
+
);
|
50 |
+
} elseif ($website) {
|
51 |
+
$button_data = array(
|
52 |
+
'label' => $this->__('Reset values to default'),
|
53 |
+
'class' => 'reset_to_parent',
|
54 |
+
'onclick' => "resetToParent('" . Mage::helper('adminhtml')->getUrl('adminhtml/sendmachine/resetoparent') . "', '$website', '$store', 'default')"
|
55 |
+
);
|
56 |
+
}
|
57 |
|
58 |
$this->loadLayout();
|
59 |
$this->_setActiveMenu('system/sendmachine');
|
60 |
+
$this->_addContent($this->getLayout()->createBlock('adminhtml/system_config_switcher'));
|
61 |
+
if($button_data) {
|
62 |
+
$this->_addContent($this->getLayout()->createBlock('sendmachine/appContainer_main', 'smMainFormContainer', array('tab' => $tab))->addButton('reset_to_parent', $button_data, -1, 1));
|
63 |
+
}
|
64 |
+
else $this->_addContent($this->getLayout()->createBlock('sendmachine/appContainer_main', 'smMainFormContainer', array('tab' => $tab)));
|
65 |
$this->_addLeft($this->getLayout()->createBlock('sendmachine/appContainer_tabs'));
|
66 |
$this->getLayout()->getBlock('head')->addJs("sendmachine/admin.js");
|
67 |
$this->renderLayout();
|
89 |
|
90 |
$params = $this->getRequest()->getParams();
|
91 |
$tab = isset($params['tab']) ? $params['tab'] : "index";
|
92 |
+
$website = $params['website'];
|
93 |
+
$store = $params['store'];
|
94 |
+
|
95 |
unset($params['tab']);
|
96 |
unset($params['limit']);
|
97 |
unset($params['page']);
|
98 |
unset($params['key']);
|
99 |
unset($params['form_key']);
|
100 |
+
unset($params['website']);
|
101 |
+
unset($params['store']);
|
102 |
+
|
103 |
+
if(isset($params['reset_to_parent']) AND $params['reset_to_parent'] AND ($website OR $store)) {
|
104 |
+
|
105 |
+
if($store AND $website) {
|
106 |
+
$this->sm->setWebsite($website);
|
107 |
+
$this->sm->setStore(null, false);
|
108 |
+
}
|
109 |
+
else {
|
110 |
+
$this->sm->setWebsite(null);
|
111 |
+
$this->sm->setStore(null, false);
|
112 |
+
}
|
113 |
+
|
114 |
+
$_params = $this->sm->get();
|
115 |
+
foreach($params as $k => &$v) {
|
116 |
+
$v = isset($_params[$k]) ? $_params[$k] : "";
|
117 |
+
}
|
118 |
+
}
|
119 |
+
|
120 |
+
$this->sm->setWebsite($website);
|
121 |
+
$this->sm->setStore($store);
|
122 |
|
123 |
$initial_credentials = $this->sm->getCredentials();
|
124 |
$initial_listid = $this->sm->get('selected_contact_list');
|
131 |
|
132 |
if ($initial_credentials != $credentials) {
|
133 |
|
134 |
+
if (($connectApi = $this->sm->connectApi()) === true) {
|
135 |
$this->_initApp();
|
136 |
+
}
|
137 |
|
138 |
else {
|
139 |
|
140 |
+
if (!$connectApi) {
|
141 |
$connectApi = "Unexpected error occurred!";
|
142 |
+
}
|
143 |
|
144 |
$errorHandled = true;
|
145 |
Mage::getSingleton('adminhtml/session')->addError($this->__($connectApi));
|
162 |
|
163 |
$this->sm->commit();
|
164 |
|
165 |
+
if (!$errorHandled) {
|
166 |
Mage::getSingleton('adminhtml/session')->addSuccess($this->__('Successfully saved'));
|
167 |
+
}
|
168 |
+
|
169 |
+
$suffix = "";
|
170 |
+
if($website) $suffix .= "/website/$website";
|
171 |
+
if($store) $suffix .= "/store/$store";
|
172 |
+
|
173 |
+
$this->getResponse()->setRedirect($this->getUrl("*/*/" . $tab . $suffix));
|
174 |
}
|
175 |
|
176 |
+
|
177 |
+
/* MAGENTO ADMIN ACTIONS */
|
178 |
+
|
179 |
public function sendtestmailAction() {
|
180 |
+
|
181 |
+
$request = Mage::app()->getRequest();
|
182 |
+
|
183 |
+
$this->sm->setWebsite($request->getParam('website'));
|
184 |
+
$this->sm->setStore($request->getParam('store'));
|
185 |
+
|
186 |
if (!$this->sm->apiConnected()) {
|
187 |
|
188 |
Mage::getSingleton('adminhtml/session')->addError($this->__('Api not connected'));
|
196 |
|
197 |
$mailer = Mage::getModel('core/email_template');
|
198 |
|
199 |
+
$recipientEmail = $request->getParam('emailAddress');
|
200 |
|
201 |
$sender['name'] = Mage::getStoreConfig('trans_email/ident_general/name');
|
202 |
$sender['email'] = Mage::getStoreConfig('trans_email/ident_general/email');
|
203 |
|
204 |
+
$result = $mailer->sendTransactional("smSendTestEmail", $sender, $recipientEmail, null, array(), $this->sm->getStore());
|
205 |
|
206 |
+
if ($result->sent_success) {
|
207 |
Mage::getSingleton('adminhtml/session')->addSuccess(sprintf($this->__("Test message to '%s' sent successfully"), $recipientEmail));
|
208 |
+
} else {
|
209 |
Mage::getSingleton('adminhtml/session')->addError($this->__('Something went wrong, message not sent'));
|
210 |
+
}
|
211 |
}
|
212 |
|
213 |
public function importToNewsletterAction() {
|
214 |
|
215 |
+
$store = $this->getRequest()->getParam('store');
|
216 |
+
$this->sm->setStore($store);
|
217 |
+
|
218 |
if ($this->sm->apiConnected()) {
|
219 |
|
|
|
|
|
|
|
|
|
220 |
$logId = $this->sm->addImportExportLog('import');
|
221 |
$listId = $this->sm->get('selected_contact_list');
|
222 |
|
230 |
}
|
231 |
|
232 |
public function exportToSendmachineAction() {
|
233 |
+
|
234 |
+
$store = $this->getRequest()->getParam('store');
|
235 |
+
$this->sm->setStore($store);
|
236 |
|
237 |
if ($this->sm->apiConnected()) {
|
238 |
|
239 |
+
$subscribe_status = array(Mage_Newsletter_Model_Subscriber::STATUS_SUBSCRIBED);
|
240 |
|
241 |
$logId = $this->sm->addImportExportLog('export');
|
242 |
|
|
|
243 |
$limit = $this->sm->get('export_subscribers_limit');
|
244 |
$subscribers = Mage::getModel('newsletter/subscriber')->getCollection()->setPageSize((int) $limit);
|
245 |
+
$_subscribers = array();
|
246 |
|
247 |
if ($subscribers && count($subscribers)) {
|
248 |
|
app/code/community/Sendmachine/Sendmachine/controllers/SubscribeController.php
CHANGED
@@ -12,14 +12,14 @@ class Sendmachine_Sendmachine_SubscribeController extends Mage_Core_Controller_F
|
|
12 |
$fields = $sm->get('list_custom_fields');
|
13 |
$response = NULL;
|
14 |
if (!$fields || !count($fields)) {
|
15 |
-
$response =
|
16 |
} else {
|
17 |
|
18 |
-
$arr =
|
19 |
foreach ($fields as $k => $v) {
|
20 |
|
21 |
if ($v['required'] && empty($params[$k])) {
|
22 |
-
$response =
|
23 |
break;
|
24 |
}
|
25 |
|
@@ -31,14 +31,13 @@ class Sendmachine_Sendmachine_SubscribeController extends Mage_Core_Controller_F
|
|
31 |
|
32 |
$listId = $sm->get('selected_contact_list');
|
33 |
if ($sm->subscribeToList([$arr], $listId))
|
34 |
-
$response =
|
35 |
else
|
36 |
-
$response =
|
37 |
}
|
38 |
}
|
39 |
|
40 |
$this->getResponse()->clearHeaders()->setHeader('Content-type', 'application/json', true);
|
41 |
$this->getResponse()->setBody(json_encode($response));
|
42 |
}
|
43 |
-
|
44 |
}
|
12 |
$fields = $sm->get('list_custom_fields');
|
13 |
$response = NULL;
|
14 |
if (!$fields || !count($fields)) {
|
15 |
+
$response = array('code' => 0, 'message' => $this->__('Something went wrong.You were not subscribed'));
|
16 |
} else {
|
17 |
|
18 |
+
$arr = array();
|
19 |
foreach ($fields as $k => $v) {
|
20 |
|
21 |
if ($v['required'] && empty($params[$k])) {
|
22 |
+
$response = array('code' => 0, 'message' => $this->__('Required data was not filled'));
|
23 |
break;
|
24 |
}
|
25 |
|
31 |
|
32 |
$listId = $sm->get('selected_contact_list');
|
33 |
if ($sm->subscribeToList([$arr], $listId))
|
34 |
+
$response = array('code' => 1, 'message' => $this->__('You have been successfully subscribed'));
|
35 |
else
|
36 |
+
$response = array('code' => 0, 'message' => $this->__('Something went wrong.You were not subscribed'));
|
37 |
}
|
38 |
}
|
39 |
|
40 |
$this->getResponse()->clearHeaders()->setHeader('Content-type', 'application/json', true);
|
41 |
$this->getResponse()->setBody(json_encode($response));
|
42 |
}
|
|
|
43 |
}
|
app/code/community/Sendmachine/Sendmachine/etc/config.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Sendmachine_Sendmachine>
|
5 |
-
<version>1.0.
|
6 |
</Sendmachine_Sendmachine>
|
7 |
</modules>
|
8 |
<global>
|
@@ -72,7 +72,7 @@
|
|
72 |
<email>
|
73 |
<smSendTestEmail translate="label" module="sendmachine">
|
74 |
<label>Sendmachine Test Email</label>
|
75 |
-
<file>sendmachine/
|
76 |
<type>html</type>
|
77 |
</smSendTestEmail>
|
78 |
</email>
|
@@ -130,4 +130,4 @@
|
|
130 |
</modules>
|
131 |
</translate>
|
132 |
</adminhtml>
|
133 |
-
</config>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Sendmachine_Sendmachine>
|
5 |
+
<version>1.0.3</version>
|
6 |
</Sendmachine_Sendmachine>
|
7 |
</modules>
|
8 |
<global>
|
72 |
<email>
|
73 |
<smSendTestEmail translate="label" module="sendmachine">
|
74 |
<label>Sendmachine Test Email</label>
|
75 |
+
<file>sendmachine/sm_send_test_email.html</file>
|
76 |
<type>html</type>
|
77 |
</smSendTestEmail>
|
78 |
</email>
|
130 |
</modules>
|
131 |
</translate>
|
132 |
</adminhtml>
|
133 |
+
</config>
|
app/code/community/Sendmachine/Sendmachine/sql/sendmachine_setup/mysql4-install-1.0.0.php
CHANGED
@@ -5,8 +5,8 @@ $installer = $this;
|
|
5 |
$installer->startSetup();
|
6 |
|
7 |
$installer->run("
|
8 |
-
|
9 |
-
CREATE TABLE {$this->getTable('sm_import_export_log')} (
|
10 |
`id` int(11) unsigned NOT NULL auto_increment,
|
11 |
`action` ENUM('import','export') NOT NULL,
|
12 |
`state` ENUM('pending','completed','failed') NOT NULL,
|
5 |
$installer->startSetup();
|
6 |
|
7 |
$installer->run("
|
8 |
+
|
9 |
+
CREATE TABLE IF NOT EXISTS `{$this->getTable('sm_import_export_log')}` (
|
10 |
`id` int(11) unsigned NOT NULL auto_increment,
|
11 |
`action` ENUM('import','export') NOT NULL,
|
12 |
`state` ENUM('pending','completed','failed') NOT NULL,
|
app/code/community/Sendmachine/Sendmachine/sql/sendmachine_setup/mysql4-upgrade-1.0.0-1.0.1.php
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$installer = $this;
|
4 |
+
|
5 |
+
$installer->startSetup();
|
6 |
+
|
7 |
+
$installer->run("ALTER TABLE `{$this->getTable('sm_import_export_log')}` ADD COLUMN `store` SMALLINT(5) UNSIGNED NOT NULL DEFAULT 0 AFTER `id`;");
|
8 |
+
|
9 |
+
$installer->endSetup();
|
app/locale/en_US/template/email/sendmachine/sm_send_test_email.html
ADDED
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!--@subject Test email @-->
|
2 |
+
|
3 |
+
<!--@styles
|
4 |
+
@-->
|
5 |
+
|
6 |
+
{{template config_path="design/email/header"}}
|
7 |
+
{{inlinecss file="email-inline.css"}}
|
8 |
+
|
9 |
+
<table cellpadding="0" cellspacing="0" border="0">
|
10 |
+
<tr>
|
11 |
+
<td class="action-content">
|
12 |
+
<h1>Test message</h1>
|
13 |
+
<p>This message was sent for testing purposes. It was triggered from the <a href="https://www.magentocommerce.com/magento-connect/sendmachine.html">Sendmachine</a> plugin.</p>
|
14 |
+
<p>If you see this message it means that everything is ok, configuration went smoothly.</p>
|
15 |
+
</td>
|
16 |
+
</tr>
|
17 |
+
</table>
|
18 |
+
|
19 |
+
{{template config_path="design/email/footer"}}
|
js/sendmachine/admin.js
CHANGED
@@ -29,8 +29,7 @@ function smToggleCredentialsVisibility(id, state) {
|
|
29 |
if (state === 'hide') {
|
30 |
style = 'color:transparent;text-shadow:0 0 5px rgba(0,0,0,0.5)';
|
31 |
text = 'show';
|
32 |
-
}
|
33 |
-
else if (state === 'show') {
|
34 |
style = '';
|
35 |
text = 'hide';
|
36 |
}
|
@@ -43,9 +42,17 @@ function smToggleCredentialsVisibility(id, state) {
|
|
43 |
function smSendTestEmail(url) {
|
44 |
|
45 |
var emailAddress = document.getElementById('smMageTestEmail');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
new Ajax.Request(url, {
|
47 |
method: 'post',
|
48 |
-
parameters:
|
49 |
onSuccess: function () {
|
50 |
location.reload();
|
51 |
}
|
@@ -54,7 +61,7 @@ function smSendTestEmail(url) {
|
|
54 |
|
55 |
function smImport(url) {
|
56 |
|
57 |
-
var store = document.getElementById('
|
58 |
new Ajax.Request(url, {
|
59 |
method: 'post',
|
60 |
parameters: {
|
@@ -68,10 +75,10 @@ function smImport(url) {
|
|
68 |
|
69 |
function smExport(url) {
|
70 |
|
71 |
-
var store = document.getElementById('
|
72 |
new Ajax.Request(url, {
|
73 |
method: 'post',
|
74 |
-
parameters: {
|
75 |
onSuccess: function () {
|
76 |
location.reload();
|
77 |
}
|
@@ -86,4 +93,16 @@ function smRefreshCachedLists(url) {
|
|
86 |
location.reload();
|
87 |
}
|
88 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
}
|
29 |
if (state === 'hide') {
|
30 |
style = 'color:transparent;text-shadow:0 0 5px rgba(0,0,0,0.5)';
|
31 |
text = 'show';
|
32 |
+
} else if (state === 'show') {
|
|
|
33 |
style = '';
|
34 |
text = 'hide';
|
35 |
}
|
42 |
function smSendTestEmail(url) {
|
43 |
|
44 |
var emailAddress = document.getElementById('smMageTestEmail');
|
45 |
+
var website = document.getElementById('website_email');
|
46 |
+
var store = document.getElementById('store_email');
|
47 |
+
|
48 |
+
var data = {
|
49 |
+
emailAddress: emailAddress.value,
|
50 |
+
website: website.value,
|
51 |
+
store: store.value
|
52 |
+
};
|
53 |
new Ajax.Request(url, {
|
54 |
method: 'post',
|
55 |
+
parameters: data,
|
56 |
onSuccess: function () {
|
57 |
location.reload();
|
58 |
}
|
61 |
|
62 |
function smImport(url) {
|
63 |
|
64 |
+
var store = document.getElementById('store_lists').value;
|
65 |
new Ajax.Request(url, {
|
66 |
method: 'post',
|
67 |
parameters: {
|
75 |
|
76 |
function smExport(url) {
|
77 |
|
78 |
+
var store = document.getElementById('store_lists').value;
|
79 |
new Ajax.Request(url, {
|
80 |
method: 'post',
|
81 |
+
parameters: {store: store},
|
82 |
onSuccess: function () {
|
83 |
location.reload();
|
84 |
}
|
93 |
location.reload();
|
94 |
}
|
95 |
});
|
96 |
+
}
|
97 |
+
|
98 |
+
function resetToParent() {
|
99 |
+
|
100 |
+
var input = document.createElement("input");
|
101 |
+
|
102 |
+
input.setAttribute("type", "hidden");
|
103 |
+
input.setAttribute("name", "reset_to_parent");
|
104 |
+
input.setAttribute("value", "1");
|
105 |
+
|
106 |
+
document.getElementById("edit_form").appendChild(input);
|
107 |
+
editForm.submit();
|
108 |
}
|
package.xml
CHANGED
@@ -1,33 +1,42 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>sendmachine</name>
|
4 |
-
<version>1.0.
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://www.opensource.org/licenses/osl-3.0.php">OSL</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
-
<summary>
|
10 |
-
<description
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
Send
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
<compatible/>
|
32 |
<dependencies><required><php><min>5.0.0</min><max>5.6.13</max></php><extension><name>curl</name><min/><max/></extension></required></dependencies>
|
33 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>sendmachine</name>
|
4 |
+
<version>1.0.3</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://www.opensource.org/licenses/osl-3.0.php">OSL</license>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
+
<summary>Sendmachine extension featuring subscribe popup, user import/export, email sending and transactional campaigns</summary>
|
10 |
+
<description><div>
|
11 |
+
<p>Sendmachine's official extension will enable you to:</p>
|
12 |
+
<ul>
|
13 |
+
<li>
|
14 |
+
<b>Set up subscribe popup</b>
|
15 |
+
<br>
|
16 |
+
<span>After you've successfully connected to the extension (using your sendmachine API <a target="_blank" href="https://www.sendmachine.com/admin/#/myaccount/smtp_settings">credentials</a>) you can configure a subscribe popup modal to allow your customers to easily subscribe to one of your contact lists.</span>
|
17 |
+
</li>
|
18 |
+
<li>
|
19 |
+
<b>Import/Export subscribers</b>
|
20 |
+
<br>
|
21 |
+
<span>You want to send emails to all your users but don't know how? Well, don't worry, we can help you with that. After you've successfully selected a contact list, you can use the "Export to sendmachine" button, to export all your subscribers to your sendmachine account in the selected contact list. If you want to send a campaign from your magento store, there's an "Import to newsletter" button that imports all your sendmachine subscribers (from the selected list) to your magento newsletter subscribers tab. If you have multiple stores you can import/export subscribers to a specific store instead of all.</span>
|
22 |
+
</li>
|
23 |
+
<li>
|
24 |
+
<b>Send emails through our services</b>
|
25 |
+
<br>
|
26 |
+
<span>No need for nasty, geeky configurations. Just insert your API credentials and you are good to go. Also, make sure that "enable email sending" is set to on. If you set a from email that doesn't already exist in your sendmachine account as a sender address, a confirmation email will be generated and sent to that address. Not quite sure if you've done everything right? You can test if everything is ok by sending a test email. If you got the mail, you can sit back and relax: you've done it, otherwise something went wrong.</span>
|
27 |
+
</li>
|
28 |
+
<li>
|
29 |
+
<b>Send transactional emails</b>
|
30 |
+
<br>
|
31 |
+
<span>Using our services you can now monitor an email's activity (opens, clicks, geolocations, user agents). In order to enable this option, after you install our extension, go to "email" tab, set "Use transactional emails" to "yes" and mark the email areas that you want you want to be transactional and that's it.</span>
|
32 |
+
</li>
|
33 |
+
</ul>
|
34 |
+
</div></description>
|
35 |
+
<notes>Stable release. Included multistore support. List minor fix</notes>
|
36 |
+
<authors><author><name>Sendmachine</name><user>sendmachine</user><email>support@sendmachine.com</email></author></authors>
|
37 |
+
<date>2016-07-13</date>
|
38 |
+
<time>06:07:57</time>
|
39 |
+
<contents><target name="magecommunity"><dir name="Sendmachine"><dir name="Sendmachine"><dir name="Block"><dir name="AppContainer"><file name="Grid.php" hash="93132a7ae131d9a446cd6897aeface90"/><file name="Main.php" hash="72bfae321e391f0f6c9534b2c2cf5bdb"/><dir name="Tab"><file name="Email.php" hash="cb60345586e0aa2e7047dbe8bbd517f0"/><file name="General.php" hash="43131871f9862e88d5bbf2aea388cda6"/><file name="Lists.php" hash="b4422f9c2f7043bb280bf789f2955a14"/></dir><file name="Tabs.php" hash="35a2ee900e946b65dbbe9f025b45a7d2"/></dir><file name="PopupBlock.php" hash="4cd81d501ad55345a8d9af28bd5271af"/></dir><dir name="Helper"><file name="Data.php" hash="0a4cb51951417c0c30f2c4489af55cf3"/></dir><dir name="Model"><file name="Cronjobs.php" hash="c9189af524b66278b60a272382777313"/><dir name="Email"><file name="Queue.php" hash="565cf2bee7c364027bd853ccac13a0c8"/><file name="Template.php" hash="e34560b42fad5c838a58655fb2d1e7c4"/></dir><dir name="Mysql4"><dir name="Sendmachine"><file name="Collection.php" hash="9308e4f5e4cc12f76028b3401ed76c58"/></dir><file name="Sendmachine.php" hash="70d59dd115baa6d9e6d7f398508eeb95"/></dir><file name="Observer.php" hash="5cd573bc8bc33e94ad145dc385f8d8ef"/><file name="Sendmachine.php" hash="70e93e9b9d272f6fa98427a2e3e4977a"/><dir name="Source"><file name="Contactlist.php" hash="399c3de2d3616e98bb97310a34c8ae16"/><file name="ImportExportLimit.php" hash="3bde4faece90495bef39e6c862f09350"/><file name="Smtp.php" hash="a99f6c2795a1a2c479bfcef9e8b4d9de"/><file name="TransactionalCampAreas.php" hash="94ec1556a650739051c5d3d3da38be60"/></dir></dir><dir name="controllers"><file name="SendmachineController.php" hash="8cfc211398fa222a049807c9b89e9e78"/><file name="SubscribeController.php" hash="e672a2c10dc2d480ad07ddaa4294a100"/></dir><dir name="etc"><file name="adminhtml.xml" hash="2b9bc07f400202cbf4a92e4256319d28"/><file name="config.xml" hash="fb88759ddb8581a62bbe4a6b106ba66b"/></dir><dir name="sql"><dir name="sendmachine_setup"><file name="mysql4-install-1.0.0.php" hash="c7fb051da24f17f073dd0c3fc76a79c1"/><file name="mysql4-upgrade-1.0.0-1.0.1.php" hash="062cab72ea965e951acd43c3f3abc2bb"/></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Sendmachine_Sendmachine.xml" hash="8378d3fff65502b2677cb5439af9a091"/></dir></target><target name="magedesign"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="sendmachine.xml" hash="111176ded682edb4732351af44f2fa66"/></dir><dir name="template"><dir name="sendmachine"><file name="popup.phtml" hash="456a82301ee6d038a4964ab857645d6b"/></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><file name="Sendmachine_Sendmachine.csv" hash="bdfdd5fda92cf52a1e9c07801f7b2a64"/><dir name="template"><dir name="email"><dir name="sendmachine"><file name="sm_send_test_email.html" hash="572e49104e369c140ea691b83e4888c0"/></dir></dir></dir></dir></target><target name="magelib"><dir name="SendmachineApi"><file name="README.md" hash="4f3be41975112c7b0e2d1b420362ca88"/><file name="SendmachineApiClient.php" hash="9990716a4159b2f57c91637126a0993e"/><file name="composer.json" hash="14472d29d81169ec0865135d75ceda44"/><dir name="library"><file name="Account.php" hash="d385b9bf2c6ab2cfe59224376b6e5ddd"/><file name="Campaigns.php" hash="675639e847d88e22d5ecfc23d9b931ed"/><file name="Lists.php" hash="be9f6d9dbb9be2948cc1c562063c2b28"/><file name="Sender.php" hash="c776b61c527ceadb1779c95c66e5cdb9"/><file name="Templates.php" hash="44b181d899bdf444a9ea66b95f648557"/></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="sendmachine"><file name="logo.png" hash="3ded087eb9efd7c6bdcaade0fec6f9e5"/></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="sendmachine"><file name="frontend.css" hash="d02fbf9fe0d145c7a9e8d59a91b7055d"/><file name="frontend.js" hash="ca7ca5de929041908f263f68ade035bf"/><file name="loading.gif" hash="3fce1e41ae8b01675553928349770faa"/></dir></dir></dir></dir></target><target name="mage"><dir name="js"><dir name="sendmachine"><file name="admin.js" hash="d8c93bf08f8fb4831787aa53fb5aef11"/></dir></dir></target></contents>
|
40 |
<compatible/>
|
41 |
<dependencies><required><php><min>5.0.0</min><max>5.6.13</max></php><extension><name>curl</name><min/><max/></extension></required></dependencies>
|
42 |
</package>
|
skin/adminhtml/default/default/sendmachine/logo2.png
DELETED
Binary file
|
skin/adminhtml/default/default/sendmachine/logo3.png
DELETED
Binary file
|