Version Notes
Troubleshooting is upgraded to automatically turn off after 10 minutes.
Required database fields are checked each time you visit the Configuration Page.
Database Fields that are missing may be fixed manually or through the extension.
Download this release
Release Info
Developer | Magento Core Team |
Extension | EmailDirect_Integration |
Version | 1.5.8 |
Comparing to | |
See all releases |
Code changes from version 1.5.7 to 1.5.8
- app/code/local/EmailDirect/Integration/Block/Adminhtml/System/Config/Fieldset/Hint.php +22 -17
- app/code/local/EmailDirect/Integration/Block/Adminhtml/System/Config/Form/Field/Info.php +0 -7
- app/code/local/EmailDirect/Integration/Block/Adminhtml/System/Config/Form/Field/Troubleshooting.php +0 -2
- app/code/local/EmailDirect/Integration/Helper/Data.php +78 -7
- app/code/local/EmailDirect/Integration/Model/Observer.php +1 -1
- app/code/local/EmailDirect/Integration/controllers/AbandonedController.php +112 -114
- app/code/local/EmailDirect/Integration/controllers/Admin/TroubleshootingController.php +108 -68
- app/code/local/EmailDirect/Integration/etc/config.xml +2 -1
- app/design/adminhtml/default/default/layout/emaildirect.xml +1 -4
- app/design/adminhtml/default/default/template/emaildirect/system/config/fieldset/hint.phtml +26 -0
- app/design/adminhtml/default/default/template/emaildirect/system/config/form/field/trouble.phtml +2 -2
- app/design/adminhtml/default/default/template/emaildirect/system/config/setup_check.phtml +1 -1
- package.xml +9 -5
- skin/adminhtml/default/default/emaildirect/emaildirect.css +8 -2
app/code/local/EmailDirect/Integration/Block/Adminhtml/System/Config/Fieldset/Hint.php
CHANGED
@@ -1,26 +1,31 @@
|
|
1 |
<?php
|
2 |
|
3 |
class EmailDirect_Integration_Block_Adminhtml_System_Config_Fieldset_Hint
|
4 |
-
|
5 |
-
|
6 |
{
|
7 |
-
|
8 |
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
|
|
|
|
|
|
|
|
|
|
19 |
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
|
25 |
public function getAbandonedLastRunHtml()
|
26 |
{
|
1 |
<?php
|
2 |
|
3 |
class EmailDirect_Integration_Block_Adminhtml_System_Config_Fieldset_Hint
|
4 |
+
extends Mage_Adminhtml_Block_Abstract
|
5 |
+
implements Varien_Data_Form_Element_Renderer_Interface
|
6 |
{
|
7 |
+
protected $_template = 'emaildirect/system/config/fieldset/hint.phtml';
|
8 |
|
9 |
+
/**
|
10 |
+
* Render fieldsetset html
|
11 |
+
*
|
12 |
+
* @param Varien_Data_Form_Element_Abstract $element
|
13 |
+
* @return string
|
14 |
+
*/
|
15 |
+
public function render(Varien_Data_Form_Element_Abstract $element)
|
16 |
+
{
|
17 |
+
return $this->toHtml();
|
18 |
+
}
|
19 |
+
|
20 |
+
public function checkDatabaseColumns()
|
21 |
+
{
|
22 |
+
return Mage::helper('emaildirect')->checkDatabaseColumns();
|
23 |
+
}
|
24 |
|
25 |
+
public function getEmaildirectVersion()
|
26 |
+
{
|
27 |
+
return (string) Mage::getConfig()->getNode('modules/EmailDirect_Integration/version');
|
28 |
+
}
|
29 |
|
30 |
public function getAbandonedLastRunHtml()
|
31 |
{
|
app/code/local/EmailDirect/Integration/Block/Adminhtml/System/Config/Form/Field/Info.php
CHANGED
@@ -10,13 +10,6 @@ class EmailDirect_Integration_Block_Adminhtml_System_Config_Form_Field_Info exte
|
|
10 |
$this->setTemplate('emaildirect/system/config/form/field/info.phtml');
|
11 |
$this->_helper = Mage::helper('emaildirect');
|
12 |
}
|
13 |
-
|
14 |
-
protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
|
15 |
-
{
|
16 |
-
$this->setElement($element);
|
17 |
-
$html = $this->_toHtml();
|
18 |
-
return $html;
|
19 |
-
}
|
20 |
|
21 |
public function render(Varien_Data_Form_Element_Abstract $element)
|
22 |
{
|
10 |
$this->setTemplate('emaildirect/system/config/form/field/info.phtml');
|
11 |
$this->_helper = Mage::helper('emaildirect');
|
12 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
|
14 |
public function render(Varien_Data_Form_Element_Abstract $element)
|
15 |
{
|
app/code/local/EmailDirect/Integration/Block/Adminhtml/System/Config/Form/Field/Troubleshooting.php
CHANGED
@@ -25,8 +25,6 @@ class EmailDirect_Integration_Block_Adminhtml_System_Config_Form_Field_Troublesh
|
|
25 |
{
|
26 |
$date = $this->_helper->troubleConfig('start_date');
|
27 |
|
28 |
-
$minutes = round(abs(time() - strtotime($date)) / 60,0);
|
29 |
-
|
30 |
$date = Mage::helper('core')->formatTime($date, 'long', true);
|
31 |
|
32 |
$minutes = "<br />(" . $this->_helper->timeElapsed2string(strtotime($date)) . " ago)";
|
25 |
{
|
26 |
$date = $this->_helper->troubleConfig('start_date');
|
27 |
|
|
|
|
|
28 |
$date = Mage::helper('core')->formatTime($date, 'long', true);
|
29 |
|
30 |
$minutes = "<br />(" . $this->_helper->timeElapsed2string(strtotime($date)) . " ago)";
|
app/code/local/EmailDirect/Integration/Helper/Data.php
CHANGED
@@ -110,7 +110,7 @@ class EmailDirect_Integration_Helper_Data extends Mage_Core_Helper_Abstract
|
|
110 |
}
|
111 |
}
|
112 |
|
113 |
-
function timeElapsed2string($time)
|
114 |
{
|
115 |
if ($time == "")
|
116 |
return "";
|
@@ -121,7 +121,7 @@ class EmailDirect_Integration_Helper_Data extends Mage_Core_Helper_Abstract
|
|
121 |
|
122 |
$ret = "";
|
123 |
|
124 |
-
foreach($periods
|
125 |
{
|
126 |
$num = floor($timeline / $seconds);
|
127 |
$timeline -= ($num * $seconds);
|
@@ -156,9 +156,9 @@ class EmailDirect_Integration_Helper_Data extends Mage_Core_Helper_Abstract
|
|
156 |
if ($store == 0)
|
157 |
$scope = "default";
|
158 |
|
159 |
-
$config =
|
160 |
$config->saveConfig("emaildirect/{$base_path}/{$path}",$value,$scope,$store);
|
161 |
-
|
162 |
}
|
163 |
|
164 |
public function getCurrentStore()
|
@@ -742,22 +742,28 @@ class EmailDirect_Integration_Helper_Data extends Mage_Core_Helper_Abstract
|
|
742 |
$this->updateConfig("start_date",$date,$store,"troubleshooting");
|
743 |
}
|
744 |
|
745 |
-
public function turnOffTroubleshooting($store = null)
|
746 |
{
|
747 |
$this->updateConfig("start_date","",$store,"troubleshooting");
|
|
|
748 |
|
749 |
$log_file = $this->getLogFileName();
|
750 |
|
|
|
|
|
|
|
751 |
if (!file_exists($log_file))
|
752 |
return; // Ignore
|
753 |
|
|
|
|
|
754 |
$date = date(Mage::getModel('core/date')->gmtTimestamp());
|
755 |
$date = date(" Y_m_d_H_i_s", $date);
|
756 |
|
757 |
$new_log_file = str_replace(self::LOG_FILE_EXT, $date . self::LOG_FILE_EXT, $log_file);
|
758 |
|
759 |
sleep(1); // Sleep or it won't rename the file.
|
760 |
-
if (!rename($log_file,$new_log_file))
|
761 |
Mage::throwException("Failed to Rename Log File");
|
762 |
}
|
763 |
|
@@ -884,13 +890,78 @@ class EmailDirect_Integration_Helper_Data extends Mage_Core_Helper_Abstract
|
|
884 |
return $xml_string;
|
885 |
}
|
886 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
887 |
|
888 |
// LOGGING
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
889 |
public function log($data, $prefix = "", $area = "")
|
890 |
{
|
891 |
$store = $this->getCurrentStore();
|
892 |
|
893 |
-
if ($this->
|
894 |
{
|
895 |
if ($area == "")
|
896 |
$area = $this->_log_area;
|
110 |
}
|
111 |
}
|
112 |
|
113 |
+
public function timeElapsed2string($time)
|
114 |
{
|
115 |
if ($time == "")
|
116 |
return "";
|
121 |
|
122 |
$ret = "";
|
123 |
|
124 |
+
foreach($periods as $name => $seconds)
|
125 |
{
|
126 |
$num = floor($timeline / $seconds);
|
127 |
$timeline -= ($num * $seconds);
|
156 |
if ($store == 0)
|
157 |
$scope = "default";
|
158 |
|
159 |
+
$config = Mage::getConfig();
|
160 |
$config->saveConfig("emaildirect/{$base_path}/{$path}",$value,$scope,$store);
|
161 |
+
$config->cleanCache();
|
162 |
}
|
163 |
|
164 |
public function getCurrentStore()
|
742 |
$this->updateConfig("start_date",$date,$store,"troubleshooting");
|
743 |
}
|
744 |
|
745 |
+
public function turnOffTroubleshooting($store = null, $quiet = true)
|
746 |
{
|
747 |
$this->updateConfig("start_date","",$store,"troubleshooting");
|
748 |
+
$this->updateConfig("enabled","0",$store,"troubleshooting");
|
749 |
|
750 |
$log_file = $this->getLogFileName();
|
751 |
|
752 |
+
return;
|
753 |
+
|
754 |
+
// Need to add path and give options to send/view specific files before enabling
|
755 |
if (!file_exists($log_file))
|
756 |
return; // Ignore
|
757 |
|
758 |
+
Mage::log("Rename Log File: [$log_file]", null,'test.log');
|
759 |
+
|
760 |
$date = date(Mage::getModel('core/date')->gmtTimestamp());
|
761 |
$date = date(" Y_m_d_H_i_s", $date);
|
762 |
|
763 |
$new_log_file = str_replace(self::LOG_FILE_EXT, $date . self::LOG_FILE_EXT, $log_file);
|
764 |
|
765 |
sleep(1); // Sleep or it won't rename the file.
|
766 |
+
if (!rename($log_file,$new_log_file) && !$quiet)
|
767 |
Mage::throwException("Failed to Rename Log File");
|
768 |
}
|
769 |
|
890 |
return $xml_string;
|
891 |
}
|
892 |
}
|
893 |
+
|
894 |
+
public function checkDatabaseColumns()
|
895 |
+
{
|
896 |
+
$resource = Mage::getSingleton('core/resource');
|
897 |
+
$database_columns = array('sales_flat_quote' =>
|
898 |
+
array(
|
899 |
+
array('column' => 'emaildirect_abandoned_date', 'type' => 'TIMESTAMP NULL'),
|
900 |
+
array('column' => 'emaildirect_abandoned_url', 'type' => 'Text NULL')
|
901 |
+
),
|
902 |
+
'sales_flat_order' =>
|
903 |
+
array(
|
904 |
+
array('column' => 'sent_to_emaildirect', 'type' => 'BOOLEAN NULL DEFAULT 0')
|
905 |
+
)
|
906 |
+
);
|
907 |
+
$failed = array();
|
908 |
+
|
909 |
+
foreach ($database_columns as $table => $columns)
|
910 |
+
{
|
911 |
+
$table = $resource->getTableName($table);
|
912 |
+
|
913 |
+
foreach ($columns as $column)
|
914 |
+
{
|
915 |
+
try
|
916 |
+
{
|
917 |
+
$sql = "SELECT {$column['column']} FROM {$table} LIMIT 1";
|
918 |
+
|
919 |
+
|
920 |
+
$resource->getConnection('core_read')
|
921 |
+
->query($sql);
|
922 |
+
}
|
923 |
+
catch (Exception $e)
|
924 |
+
{
|
925 |
+
$sql = "ALTER TABLE `{$table}` ADD COLUMN `{$column['column']}` {$column['type']}";
|
926 |
+
$failed[] = array('table' => $table, 'column' => $column['column'], 'type' => $column['type'], 'sql' => $sql);
|
927 |
+
}
|
928 |
+
}
|
929 |
+
}
|
930 |
+
|
931 |
+
return $failed;
|
932 |
+
}
|
933 |
|
934 |
// LOGGING
|
935 |
+
|
936 |
+
public function isLoggingEnabled($store = null)
|
937 |
+
{
|
938 |
+
if (!$this->troubleConfig('enabled', $store))
|
939 |
+
return false;
|
940 |
+
|
941 |
+
$date = $this->troubleConfig('start_date');
|
942 |
+
|
943 |
+
if ($date == "")
|
944 |
+
return false;
|
945 |
+
|
946 |
+
$minutes = round(abs(time() - strtotime($date)) / 60,0);
|
947 |
+
|
948 |
+
$duration = (int)$this->troubleConfig('duration', $store);
|
949 |
+
|
950 |
+
if ($minutes > $duration)
|
951 |
+
{
|
952 |
+
$this->turnOffTroubleshooting($store);
|
953 |
+
Mage::app()->reinitStores();
|
954 |
+
return false;
|
955 |
+
}
|
956 |
+
|
957 |
+
return true;
|
958 |
+
}
|
959 |
+
|
960 |
public function log($data, $prefix = "", $area = "")
|
961 |
{
|
962 |
$store = $this->getCurrentStore();
|
963 |
|
964 |
+
if ($this->isLoggingEnabled($store))
|
965 |
{
|
966 |
if ($area == "")
|
967 |
$area = $this->_log_area;
|
app/code/local/EmailDirect/Integration/Model/Observer.php
CHANGED
@@ -1050,7 +1050,7 @@ class EmailDirect_Integration_Model_Observer
|
|
1050 |
}
|
1051 |
catch (Exception $e)
|
1052 |
{
|
1053 |
-
$this->_helper->
|
1054 |
Mage::logException($e);
|
1055 |
}
|
1056 |
}
|
1050 |
}
|
1051 |
catch (Exception $e)
|
1052 |
{
|
1053 |
+
$this->_helper->logException($e);
|
1054 |
Mage::logException($e);
|
1055 |
}
|
1056 |
}
|
app/code/local/EmailDirect/Integration/controllers/AbandonedController.php
CHANGED
@@ -1,123 +1,121 @@
|
|
1 |
<?php
|
2 |
class EmailDirect_Integration_AbandonedController extends Mage_Core_Controller_Front_Action
|
3 |
{
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
$cart_data = unserialize(base64_decode($coded_cart));
|
9 |
-
|
10 |
-
$this->clearCart($cart_data['quote']);
|
11 |
-
$this->restoreCartItems($cart_data);
|
12 |
-
|
13 |
-
$this->_redirect("checkout/cart");
|
14 |
-
}
|
15 |
-
|
16 |
-
private function restoreCartItems($cart_data)
|
17 |
-
{
|
18 |
-
$id_list = explode(",",$cart_data['id']);
|
19 |
-
$qty_list = explode(",",$cart_data['qty']);
|
20 |
-
|
21 |
-
$quote = $this->getQuote();
|
22 |
-
|
23 |
-
foreach ($id_list as $key => $item_id)
|
24 |
-
{
|
25 |
-
$qty = $qty_list[$key];
|
26 |
-
|
27 |
-
$this->addItemToCart($item_id, $qty);
|
28 |
-
}
|
29 |
-
|
30 |
-
// update our totals, save.
|
31 |
-
$quote->getBillingAddress();
|
32 |
-
$quote->collectTotals();
|
33 |
-
$quote->save();
|
34 |
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
41 |
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
// add the product to our quote
|
58 |
-
$quote->addProductAdvanced($product , new Varien_Object($data));
|
59 |
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
}
|
1 |
<?php
|
2 |
class EmailDirect_Integration_AbandonedController extends Mage_Core_Controller_Front_Action
|
3 |
{
|
4 |
+
public function restoreAction()
|
5 |
+
{
|
6 |
+
$coded_cart = Mage::app()->getRequest()->getParam('cart');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
|
8 |
+
$cart_data = unserialize(base64_decode($coded_cart));
|
9 |
+
|
10 |
+
$this->clearCart($cart_data['quote']);
|
11 |
+
$this->restoreCartItems($cart_data);
|
12 |
+
|
13 |
+
$this->_redirect("checkout/cart");
|
14 |
+
}
|
15 |
+
|
16 |
+
private function restoreCartItems($cart_data)
|
17 |
+
{
|
18 |
+
$id_list = explode(",",$cart_data['id']);
|
19 |
+
$qty_list = explode(",",$cart_data['qty']);
|
20 |
+
|
21 |
+
$quote = $this->getQuote();
|
22 |
+
|
23 |
+
foreach ($id_list as $key => $item_id)
|
24 |
+
{
|
25 |
+
$qty = $qty_list[$key];
|
26 |
+
|
27 |
+
$this->addItemToCart($item_id, $qty);
|
28 |
+
}
|
29 |
+
|
30 |
+
// update our totals, save.
|
31 |
+
$quote->getBillingAddress();
|
32 |
+
$quote->collectTotals();
|
33 |
+
$quote->save();
|
34 |
+
|
35 |
+
$this->getCheckout()->setQuoteId($quote->getId());
|
36 |
+
}
|
37 |
+
|
38 |
+
private function addItemToCart($id, $qty)
|
39 |
+
{
|
40 |
+
$product = Mage::getModel('catalog/product')->load($id);
|
41 |
|
42 |
+
if (!$product->getId())
|
43 |
+
return false;
|
44 |
+
|
45 |
+
|
46 |
+
$data = array(
|
47 |
+
'qty' => $qty,
|
48 |
+
'options' => array()
|
49 |
+
);
|
50 |
+
|
51 |
+
$quote = $this->getQuote();
|
52 |
+
|
53 |
+
try
|
54 |
+
{
|
55 |
+
// add the product to our quote
|
56 |
+
$quote->addProductAdvanced($product , new Varien_Object($data));
|
|
|
|
|
57 |
|
58 |
+
return true;
|
59 |
+
}
|
60 |
+
catch (Exception $e)
|
61 |
+
{
|
62 |
+
//Zend_Debug::dump($e->getMessage());
|
63 |
+
Mage::logException($e);
|
64 |
+
return false;
|
65 |
+
}
|
66 |
+
}
|
67 |
+
|
68 |
+
private function removeOldQuote($original_quote_id)
|
69 |
+
{
|
70 |
+
$quote = Mage::getModel('sales/quote')->load($original_quote_id);
|
71 |
+
|
72 |
+
if ($quote->getId() == $original_quote_id)
|
73 |
+
{
|
74 |
+
$quote->delete();
|
75 |
+
}
|
76 |
+
}
|
77 |
+
|
78 |
+
private function clearCart($original_quote_id)
|
79 |
+
{
|
80 |
+
$customer_session = Mage::getSingleton('customer/session');
|
81 |
+
|
82 |
+
$checkout = $this->getCheckout();
|
83 |
+
|
84 |
+
$checkout->clear(); // clear donations
|
85 |
|
86 |
+
$quote = $this->getQuote();
|
87 |
+
|
88 |
+
// Check to see if we need to remove the quote
|
89 |
+
// if they aren't logged in then we will need to otherwise when they login the items won't match
|
90 |
+
if ($quote->getId() != $original_quote_id)
|
91 |
+
{
|
92 |
+
$this->removeOldQuote($original_quote_id);
|
93 |
+
}
|
94 |
|
95 |
+
foreach ($quote->getItemsCollection() as $item)
|
96 |
+
{
|
97 |
+
$item->isDeleted(true);
|
98 |
+
}
|
99 |
+
|
100 |
+
$quote->getBillingAddress();
|
101 |
+
$quote->getShippingAddress();
|
102 |
+
$quote->getPayment();
|
103 |
+
$quote->setEmailDirectAbandonedDate(null);
|
104 |
+
|
105 |
+
$customer = $customer_session->getCustomer();
|
106 |
+
if ($customer)
|
107 |
+
$quote->assignCustomer($customer);
|
108 |
+
|
109 |
+
$quote->save();
|
110 |
+
}
|
111 |
+
|
112 |
+
private function getQuote()
|
113 |
+
{
|
114 |
+
return Mage::getSingleton('checkout/session')->getQuote();
|
115 |
+
}
|
116 |
+
|
117 |
+
private function getCheckout()
|
118 |
+
{
|
119 |
+
return Mage::getSingleton('checkout/session');
|
120 |
+
}
|
121 |
}
|
app/code/local/EmailDirect/Integration/controllers/Admin/TroubleshootingController.php
CHANGED
@@ -4,11 +4,11 @@ class EmailDirect_Integration_Admin_TroubleshootingController extends Mage_Admin
|
|
4 |
{
|
5 |
public function indexAction()
|
6 |
{
|
7 |
-
|
8 |
-
|
9 |
$this->getLayout()->getBlock('head')->setTitle($this->__('EmailDirect Troubleshooting'));
|
10 |
-
|
11 |
-
|
12 |
}
|
13 |
|
14 |
public function sendAction()
|
@@ -32,8 +32,8 @@ class EmailDirect_Integration_Admin_TroubleshootingController extends Mage_Admin
|
|
32 |
$headers = "From: {$from}\r\n";
|
33 |
$headers .= "Content-type: text/html\r\n";
|
34 |
|
35 |
-
|
36 |
-
|
37 |
|
38 |
if ($sent)
|
39 |
{
|
@@ -57,75 +57,115 @@ class EmailDirect_Integration_Admin_TroubleshootingController extends Mage_Admin
|
|
57 |
$output = Mage::helper('emaildirect')->getReport();
|
58 |
|
59 |
$this->_prepareDownloadResponse(Mage::helper('emaildirect')->troubleConfig('report_file'), $output);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
60 |
|
61 |
-
|
|
|
|
|
|
|
62 |
}
|
63 |
|
64 |
/**
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
|
|
85 |
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
|
|
|
|
|
|
98 |
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
|
|
|
|
113 |
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
|
|
|
|
124 |
$this->getResponse()->setBody($file_content);
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
|
|
|
|
131 |
}
|
4 |
{
|
5 |
public function indexAction()
|
6 |
{
|
7 |
+
$this->loadLayout();
|
8 |
+
|
9 |
$this->getLayout()->getBlock('head')->setTitle($this->__('EmailDirect Troubleshooting'));
|
10 |
+
$this->_setActiveMenu('system');
|
11 |
+
$this->renderLayout();
|
12 |
}
|
13 |
|
14 |
public function sendAction()
|
32 |
$headers = "From: {$from}\r\n";
|
33 |
$headers .= "Content-type: text/html\r\n";
|
34 |
|
35 |
+
// now lets send the email.
|
36 |
+
$sent = mail($to, $subject, $message, $headers);
|
37 |
|
38 |
if ($sent)
|
39 |
{
|
57 |
$output = Mage::helper('emaildirect')->getReport();
|
58 |
|
59 |
$this->_prepareDownloadResponse(Mage::helper('emaildirect')->troubleConfig('report_file'), $output);
|
60 |
+
}
|
61 |
+
|
62 |
+
public function columnsAction()
|
63 |
+
{
|
64 |
+
$failed_columns = Mage::helper('emaildirect')->checkDatabaseColumns();
|
65 |
+
$error = false;
|
66 |
+
|
67 |
+
if (count($failed_columns) > 0)
|
68 |
+
{
|
69 |
+
$resource = Mage::getSingleton('core/resource');
|
70 |
+
|
71 |
+
foreach ($failed_columns as $column)
|
72 |
+
{
|
73 |
+
$sql = $column['sql'];
|
74 |
+
|
75 |
+
try
|
76 |
+
{
|
77 |
+
$resource->getConnection('core_write')
|
78 |
+
->query($sql);
|
79 |
+
}
|
80 |
+
catch (Exception $e)
|
81 |
+
{
|
82 |
+
$error = true;
|
83 |
+
Mage::getSingleton('adminhtml/session')->addError(Mage::helper('emaildirect')->__('Failed to create column: %s - %s',$column['table'],$column['column']));
|
84 |
+
}
|
85 |
+
}
|
86 |
+
}
|
87 |
|
88 |
+
if (!$error)
|
89 |
+
Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('emaildirect')->__('Database Columns have been restored'));
|
90 |
+
|
91 |
+
$this->_redirect('adminhtml/system_config/edit/',array('section' => 'emaildirect'));
|
92 |
}
|
93 |
|
94 |
/**
|
95 |
+
* Declare headers and content file in responce for file download
|
96 |
+
*
|
97 |
+
* @param string $fileName
|
98 |
+
* @param string|array $content set to null to avoid starting output, $contentLength should be set explicitly in
|
99 |
+
* that case
|
100 |
+
* @param string $contentType
|
101 |
+
* @param int $contentLength explicit content length, if strlen($content) isn't applicable
|
102 |
+
* @return Mage_Core_Controller_Varien_Action
|
103 |
+
*/
|
104 |
+
protected function _prepareDownloadResponse(
|
105 |
+
$fileName,
|
106 |
+
$content,
|
107 |
+
$contentType = 'application/octet-stream',
|
108 |
+
$contentLength = null)
|
109 |
+
{
|
110 |
+
$session = Mage::getSingleton('admin/session');
|
111 |
+
if ($session->isFirstPageAfterLogin())
|
112 |
+
{
|
113 |
+
$this->_redirect($session->getUser()->getStartupPageUrl());
|
114 |
+
return $this;
|
115 |
+
}
|
116 |
|
117 |
+
$isFile = false;
|
118 |
+
$file = null;
|
119 |
+
if (is_array($content))
|
120 |
+
{
|
121 |
+
if (!isset($content['type']) || !isset($content['value']))
|
122 |
+
{
|
123 |
+
return $this;
|
124 |
+
}
|
125 |
+
if ($content['type'] == 'filename')
|
126 |
+
{
|
127 |
+
$isFile = true;
|
128 |
+
$file = $content['value'];
|
129 |
+
$contentLength = filesize($file);
|
130 |
+
}
|
131 |
+
}
|
132 |
|
133 |
+
$this->getResponse()
|
134 |
+
->setHttpResponseCode(200)
|
135 |
+
->setHeader('Pragma', 'public', true)
|
136 |
+
->setHeader('Cache-Control', 'must-revalidate, post-check=0, pre-check=0', true)
|
137 |
+
->setHeader('Content-type', $contentType, true)
|
138 |
+
->setHeader('Content-Length', is_null($contentLength) ? strlen($content) : $contentLength)
|
139 |
+
->setHeader('Content-Disposition', 'attachment; filename="'.$fileName.'"')
|
140 |
+
->setHeader('Last-Modified', date('r'));
|
141 |
|
142 |
+
if (!is_null($content))
|
143 |
+
{
|
144 |
+
if ($isFile)
|
145 |
+
{
|
146 |
+
$file_content = "";
|
147 |
+
//$this->getResponse()->clearBody();
|
148 |
+
//$this->getResponse()->sendHeaders();
|
149 |
|
150 |
+
$ioAdapter = new Varien_Io_File();
|
151 |
+
$ioAdapter->open(array('path' => $ioAdapter->dirname($file)));
|
152 |
+
$ioAdapter->streamOpen($file, 'r');
|
153 |
+
while ($buffer = $ioAdapter->streamRead())
|
154 |
+
{
|
155 |
+
$file_content .= $buffer;
|
156 |
+
}
|
157 |
+
$ioAdapter->streamClose();
|
158 |
+
if (!empty($content['rm']))
|
159 |
+
{
|
160 |
+
$ioAdapter->rm($file);
|
161 |
+
}
|
162 |
$this->getResponse()->setBody($file_content);
|
163 |
+
}
|
164 |
+
else
|
165 |
+
{
|
166 |
+
$this->getResponse()->setBody($content);
|
167 |
+
}
|
168 |
+
}
|
169 |
+
return $this;
|
170 |
+
}
|
171 |
}
|
app/code/local/EmailDirect/Integration/etc/config.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<EmailDirect_Integration>
|
5 |
-
<version>1.5.
|
6 |
</EmailDirect_Integration>
|
7 |
</modules>
|
8 |
<global>
|
@@ -277,6 +277,7 @@ C]]></abandonedsequence_options>
|
|
277 |
<subject>EmailDirect Magento Module Troubleshooting Report</subject>
|
278 |
<report_file>troubleshootingreport.html</report_file>
|
279 |
<max_file_size>1048576</max_file_size>
|
|
|
280 |
</troubleshooting>
|
281 |
</emaildirect>
|
282 |
</default>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<EmailDirect_Integration>
|
5 |
+
<version>1.5.8</version>
|
6 |
</EmailDirect_Integration>
|
7 |
</modules>
|
8 |
<global>
|
277 |
<subject>EmailDirect Magento Module Troubleshooting Report</subject>
|
278 |
<report_file>troubleshootingreport.html</report_file>
|
279 |
<max_file_size>1048576</max_file_size>
|
280 |
+
<duration>10</duration>
|
281 |
</troubleshooting>
|
282 |
</emaildirect>
|
283 |
</default>
|
app/design/adminhtml/default/default/layout/emaildirect.xml
CHANGED
@@ -4,14 +4,11 @@
|
|
4 |
<reference name="head">
|
5 |
<action method="addCss"><stylesheet>emaildirect/emaildirect.css</stylesheet></action>
|
6 |
</reference>
|
7 |
-
</adminhtml_system_config_edit>
|
8 |
-
|
9 |
-
<adminhtml_system_config_edit>
|
10 |
<reference name="content">
|
11 |
<block type="core/template" name="emaildirect_setup_check" before="-" template="emaildirect/system/config/setup_check.phtml" />
|
12 |
</reference>
|
13 |
</adminhtml_system_config_edit>
|
14 |
-
|
15 |
<emaildirect_admin_export_products>
|
16 |
<remove name="root"/>
|
17 |
<block type="adminhtml/page" name="convert_root" output="toHtml" template="page.phtml">
|
4 |
<reference name="head">
|
5 |
<action method="addCss"><stylesheet>emaildirect/emaildirect.css</stylesheet></action>
|
6 |
</reference>
|
|
|
|
|
|
|
7 |
<reference name="content">
|
8 |
<block type="core/template" name="emaildirect_setup_check" before="-" template="emaildirect/system/config/setup_check.phtml" />
|
9 |
</reference>
|
10 |
</adminhtml_system_config_edit>
|
11 |
+
|
12 |
<emaildirect_admin_export_products>
|
13 |
<remove name="root"/>
|
14 |
<block type="adminhtml/page" name="convert_root" output="toHtml" template="page.phtml">
|
app/design/adminhtml/default/default/template/emaildirect/system/config/fieldset/hint.phtml
CHANGED
@@ -1,9 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
<div class="emaildirect-notice">
|
2 |
<h4>
|
3 |
<div class='abandoned'>Abandoned Cart Processing:
|
4 |
<?php if ($this->getAbandonedEnabled()) : ?><span class='ab_ok'>Enabled</span> - Last Run: <?php echo $this->getAbandonedLastRunHtml() ?> - <button onclick="window.location='<?php echo $this->getUrl('emaildirect/admin_abandoned/index'); ?>'; return false;" id="emaildirect_details">Details</button><?php else: ?><span class='ab_ng'>Disabled</span><?php endif; ?></div>
|
5 |
<strong>EmailDirect Integration v<?php echo $this->getEmaildirectVersion() ?></strong>
|
6 |
</h4>
|
|
|
7 |
</div>
|
8 |
<script type='text/javascript'>
|
9 |
var setup = <?php echo Mage::helper('emaildirect')->config('setup') == 1 ? 'true' : 'false'; ?>;
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$failed_columns = $this->checkDatabaseColumns();
|
4 |
+
|
5 |
+
?>
|
6 |
+
<?php if (count($failed_columns) > 0): ?>
|
7 |
+
<div id="messages">
|
8 |
+
<ul class="messages">
|
9 |
+
<li class="error-msg">
|
10 |
+
<ul>
|
11 |
+
<li>
|
12 |
+
<span>Required Database columns are missing! <button onclick="window.location='<?php echo $this->getUrl('emaildirect/admin_troubleshooting/columns'); ?>'; return false;" id="emaildirect_column_fix">Fix this problem</button></span>
|
13 |
+
<table class='missing_columns'>
|
14 |
+
<tr><th>Table</th><th>Column</th><th>SQL to Restore Column Manually</th></tr>
|
15 |
+
<?php foreach ($failed_columns as $column): ?>
|
16 |
+
<tr><td><?php echo $column['table']; ?></td><td><?php echo $column['column']; ?></td><td><?php echo $column['sql'] ?></td></tr>
|
17 |
+
<?php endforeach; ?>
|
18 |
+
</table>
|
19 |
+
</li>
|
20 |
+
</ul>
|
21 |
+
</li>
|
22 |
+
</ul>
|
23 |
+
</div>
|
24 |
+
<?php endif; ?>
|
25 |
+
|
26 |
<div class="emaildirect-notice">
|
27 |
<h4>
|
28 |
<div class='abandoned'>Abandoned Cart Processing:
|
29 |
<?php if ($this->getAbandonedEnabled()) : ?><span class='ab_ok'>Enabled</span> - Last Run: <?php echo $this->getAbandonedLastRunHtml() ?> - <button onclick="window.location='<?php echo $this->getUrl('emaildirect/admin_abandoned/index'); ?>'; return false;" id="emaildirect_details">Details</button><?php else: ?><span class='ab_ng'>Disabled</span><?php endif; ?></div>
|
30 |
<strong>EmailDirect Integration v<?php echo $this->getEmaildirectVersion() ?></strong>
|
31 |
</h4>
|
32 |
+
|
33 |
</div>
|
34 |
<script type='text/javascript'>
|
35 |
var setup = <?php echo Mage::helper('emaildirect')->config('setup') == 1 ? 'true' : 'false'; ?>;
|
app/design/adminhtml/default/default/template/emaildirect/system/config/form/field/trouble.phtml
CHANGED
@@ -2,12 +2,12 @@
|
|
2 |
<?php
|
3 |
$element = $this->getElement();
|
4 |
|
5 |
-
$enabled =
|
6 |
?>
|
7 |
<div id="<?php echo $this->getElement()->getHtmlId(); ?>" style='display:none'></div>
|
8 |
<span class='trouble_status'>Status: <strong><?php if ($enabled) echo "Enabled"; else echo "Disabled" ?></strong></span>
|
9 |
<button id='emaildirect_trouble' onClick="toggle_trouble();"><?php if ($enabled) echo "Disable"; else echo "Enable" ?></button>
|
10 |
-
<input type='hidden' name='<?php echo $this->getElement()->getName() ?>' value='<?php echo $
|
11 |
|
12 |
<?php if ($enabled): ?>
|
13 |
<div id='emaildirect_trouble_details'>
|
2 |
<?php
|
3 |
$element = $this->getElement();
|
4 |
|
5 |
+
$enabled = Mage::helper('emaildirect')->isLoggingEnabled();
|
6 |
?>
|
7 |
<div id="<?php echo $this->getElement()->getHtmlId(); ?>" style='display:none'></div>
|
8 |
<span class='trouble_status'>Status: <strong><?php if ($enabled) echo "Enabled"; else echo "Disabled" ?></strong></span>
|
9 |
<button id='emaildirect_trouble' onClick="toggle_trouble();"><?php if ($enabled) echo "Disable"; else echo "Enable" ?></button>
|
10 |
+
<input type='hidden' name='<?php echo $this->getElement()->getName() ?>' value='<?php echo $enabled == true ? 1 : 0 ?>'/>
|
11 |
|
12 |
<?php if ($enabled): ?>
|
13 |
<div id='emaildirect_trouble_details'>
|
app/design/adminhtml/default/default/template/emaildirect/system/config/setup_check.phtml
CHANGED
@@ -24,6 +24,6 @@
|
|
24 |
</ul>
|
25 |
</li>
|
26 |
</ul>
|
27 |
-
</div>
|
28 |
<?php endif;
|
29 |
endif; ?>
|
24 |
</ul>
|
25 |
</li>
|
26 |
</ul>
|
27 |
+
</div>
|
28 |
<?php endif;
|
29 |
endif; ?>
|
package.xml
CHANGED
@@ -1,18 +1,22 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>EmailDirect_Integration</name>
|
4 |
-
<version>1.5.
|
5 |
<stability>stable</stability>
|
6 |
<license/>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
<summary>EmailDirect integration for magento</summary>
|
10 |
<description>EmailDirect integration for magento</description>
|
11 |
-
<notes>
|
|
|
|
|
|
|
|
|
12 |
<authors><author><name>Kevin Linden</name><user>auto-converted</user><email>Kevin@EmailDirect.com</email></author></authors>
|
13 |
-
<date>2013-
|
14 |
-
<time>
|
15 |
-
<contents><target name="magelocal"><dir name="EmailDirect"><dir name="Integration"><dir name="Block"><dir name="Adminhtml"><dir name="Abandoned"><file name="Grid.php" hash="5534349906e67bfd67547ccd3753f184"/></dir><dir name="System"><dir name="Config"><dir name="Fieldset"><file name="Hint.php" hash="
|
16 |
<compatible/>
|
17 |
<dependencies/>
|
18 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>EmailDirect_Integration</name>
|
4 |
+
<version>1.5.8</version>
|
5 |
<stability>stable</stability>
|
6 |
<license/>
|
7 |
<channel>community</channel>
|
8 |
<extends/>
|
9 |
<summary>EmailDirect integration for magento</summary>
|
10 |
<description>EmailDirect integration for magento</description>
|
11 |
+
<notes>Troubleshooting is upgraded to automatically turn off after 10 minutes.
|
12 |
+

|
13 |
+
Required database fields are checked each time you visit the Configuration Page.
|
14 |
+

|
15 |
+
Database Fields that are missing may be fixed manually or through the extension.</notes>
|
16 |
<authors><author><name>Kevin Linden</name><user>auto-converted</user><email>Kevin@EmailDirect.com</email></author></authors>
|
17 |
+
<date>2013-11-25</date>
|
18 |
+
<time>18:27:46</time>
|
19 |
+
<contents><target name="magelocal"><dir name="EmailDirect"><dir name="Integration"><dir name="Block"><dir name="Adminhtml"><dir name="Abandoned"><file name="Grid.php" hash="5534349906e67bfd67547ccd3753f184"/></dir><dir name="System"><dir name="Config"><dir name="Fieldset"><file name="Hint.php" hash="6b1801b68da53b77a205e4b2e1900119"/></dir><dir name="Form"><dir name="Field"><dir name="Export"><file name="Orders.php" hash="ddcfc1c3c579421bc5c8af9173d1cbf2"/><file name="Products.php" hash="0c6a9936ccc806b9e3ddf573d1df1e53"/><file name="Range.php" hash="b29f2227412e1f4fe9ba4c2e6e3b615d"/></dir><file name="Addressmapfields.php" hash="97b75c8340d561e863a3985ad73ce228"/><file name="Common.php" hash="e597ff375c4b46b92d6aa35646e3d8c9"/><file name="Info.php" hash="0fa5f6e12e48708ac1ce6022db1ad2d5"/><file name="Mapfields.php" hash="677ebfd526fba11a1c177c00ae085526"/><file name="Note.php" hash="ef99a474bbc3a828c7a618132a80fe66"/><file name="Shippingmapfields.php" hash="589a74260f394a5eae1b57ca89a74a8b"/><file name="Troubleshooting.php" hash="0b0b0fffd3251a13e0550740df784cb3"/></dir></dir><file name="Account.php" hash="60fa8e43a87e1f2ff71c319c979556b2"/></dir><dir name="Convert"><dir name="Profile"><dir name="Export"><file name="Orders.php" hash="eb9be61e0accdfaf3a2f315eb5eaae5b"/><file name="Products.php" hash="a58d1d192ef82fd6ce032db7455b11b8"/></dir><file name="Export.php" hash="0ac2fa1fefcd4c4a238417175350ad6c"/></dir></dir></dir><dir name="Troubleshooting"><dir name="View"><dir name="Tab"><file name="Download.php" hash="9315a364a46f9e39972bbd0a47152e90"/><file name="Info.php" hash="6714b756a3fa7a5812356e544fe48f1b"/><file name="Log.php" hash="7c3661722d1197cd8a564f76275353c7"/><file name="Submit.php" hash="8831d886858fde08a4323eea66ec76d2"/></dir><file name="Form.php" hash="e527a3a2335b109c48a69f06c1b0d01f"/></dir><file name="Tabs.php" hash="ab1fdbe561e8572c2c50cdbec9573f82"/><file name="View.php" hash="b85696126e6874b0f5a19d0af6183add"/></dir><file name="Abandoned.php" hash="f3be80231c0ed811acd1d63d269394c5"/></dir><dir name="Checkout"><file name="Subscribe.php" hash="ae325e815a54bde93507562cf0d86b8a"/></dir><dir name="Customer"><dir name="Account"><dir name="Dashboard"><file name="Info.php" hash="20e74d9c2b2c02611c8f69b254d81ef5"/></dir><file name="Lists.php" hash="3c3bdb9482ecf4a71740a80395bd5465"/></dir></dir><dir name="Widget"><dir name="Grid"><dir name="Column"><dir name="Renderer"><file name="AbandonedMinutes.php" hash="22e33be85dc8348fce9b49637ead919d"/><file name="Action.php" hash="b85ef0454ab5c65ef0c43c7ef057ecc2"/></dir></dir></dir></dir></dir><dir name="Helper"><file name="Data.php" hash="7d7a6dc9571c653d6031110fb399927b"/><file name="Fields.php" hash="1275a766d979e1ac3efabbf168ac92f5"/></dir><dir name="Model"><dir name="System"><dir name="Config"><dir name="Source"><dir name="Export"><file name="Batch.php" hash="96c51fc5c0b947750be4e612e32c83ab"/></dir><file name="Abandonedlist.php" hash="66386003113d8589c9f3de4f03f538a8"/><file name="Additionallist.php" hash="254081820d07a8754a71743ea58a7af4"/><file name="Checkoutsubscribe.php" hash="fd90252a1f19649a420dae136ad2a2ba"/><file name="List.php" hash="d76e36c0198e509a63c663e827cc7940"/><file name="Publication.php" hash="635fae1c20981c0ca7b90007a00e99a7"/><file name="Sequence.php" hash="ec9718c2b5dc35c559e5c09e345eff88"/><file name="Source.php" hash="f3c246959c74f6d378f3e2d7b8148d7f"/><file name="States.php" hash="82682b97d671eb616649dfc52e202100"/><file name="Time.php" hash="8acbb5cb33e66de1e408cf55d17a9398"/></dir></dir></dir><dir name="Wrapper"><file name="Abandoned.php" hash="ef81d36a7276737f2d0aa1a5d783a83b"/><file name="Abstract.php" hash="9e97ce6a12e0d074921bb3a1391f3648"/><file name="Database.php" hash="3cceb467358d13584baff58c043762ec"/><file name="Execute.php" hash="5a339e0a5407cf05b161102fc65595bb"/><file name="Ftp.php" hash="d5335cfb68f99761d6902dd390a3d7a8"/><file name="Lists.php" hash="dff74c445f6a9582b35bb24560582c2b"/><file name="Orders.php" hash="81dbf1045688e932fa6175784c2bf0cb"/><file name="Publications.php" hash="815715549df345ccb5b69ed65589aa53"/><file name="Sources.php" hash="c6caf0274f7d0c50114324bc47a490c4"/><file name="Subscribers.php" hash="064e07d8f2015cf56f7e82844f5df54c"/></dir><file name="Observer.php" hash="0dbb2f0c5bad28b039eb3435425b242f"/></dir><dir name="controllers"><dir name="Admin"><file name="AbandonedController.php" hash="d7cb59c88fcf80737be0ccdad7f4b7d7"/><file name="ExportController.php" hash="f9ceaa6b2fd25c5c283b01dbf182c27e"/><file name="OrderExportController.php" hash="d41d8cd98f00b204e9800998ecf8427e"/><file name="TroubleshootingController.php" hash="806f96d4bd8a70eca4c218ed0ff48fd6"/></dir><dir name="Customer"><file name="AccountController.php" hash="16bfdb6de4804a5d71cb972afbff4537"/></dir><file name="AbandonedController.php" hash="86cb0979c6ea5322bccc33f8600a6f4b"/><file name="ExportController.php" hash="7ca147debc5c1436b3bf2d9501592f33"/></dir><dir name="etc"><file name="adminhtml.xml" hash="896c10d8a3f932346e7d301052b1b6a6"/><file name="config.xml" hash="fdfc45d04ff2e193bf86fb81d480f5c3"/><file name="system.xml" hash="be553328cfdffa5bea0a5d3c5516f4a8"/></dir><dir name="sql"><dir name="emaildirect_setup"><file name="mysql4-install-1.0.0.php" hash="9dc51edb346e9676735e15d3e78fa3eb"/><file name="mysql4-upgrade-1.0.13-1.0.14.php" hash="c42e2677b3960a049d7137b622552084"/><file name="mysql4-upgrade-1.0.19-1.2.0.php" hash="742be042b7f56e7ff2002b0606270ca6"/><file name="mysql4-upgrade-1.5.4-1.5.5.php" hash="560244d63a037f88201a61d7f7482d2c"/></dir></dir></dir></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="emaildirect"><file name="emaildirect-tab.png" hash="9ddb077b74a7078ac509d79b024631a1"/><file name="emaildirect.css" hash="2dab687df0c54506ecddc6a34082f2bf"/><file name="emaildirect.js" hash="ce03dd6f51ea529fc4acdc5116f4e030"/><file name="logo.png" hash="2e7e39ced387c798ef27b77dd69f073e"/></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="emaildirect"><dir name="images"><file name="bkg_block-title.gif" hash="f8c1f130ad69464fe7aff2f589b2ec75"/><file name="dotted_divider.gif" hash="260ebae91ffb1b7c663906b29a069925"/><file name="emaildirect-tile.png" hash="86a0ed36169ab9691480fc995ab674a8"/><file name="i_block-subscribe.gif" hash="9e5fee06a543742045118a95f2debcb8"/></dir><file name="integration.js" hash="d8c8d5bf0ddb4f6ead23bec8a2814475"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="emaildirect.xml" hash="79a7de2366bfcef2df54ffb104de176f"/></dir><dir name="template"><dir name="emaildirect"><dir name="system"><dir name="config"><dir name="fieldset"><file name="hint.phtml" hash="d1cf4d176a7adf4dcb1b3186b70b19d3"/></dir><dir name="form"><dir name="field"><dir name="export"><file name="date_range.phtml" hash="0061fbfbfdba23ce3c4d98e66184c3a2"/><file name="orders.phtml" hash="e8006492a9048c117f2a0a95ed3bf717"/><file name="products.phtml" hash="99b88859146f490f87690cd44cabc999"/></dir><file name="array.phtml" hash="5415eeff311735624354468c886d39b5"/><file name="info.phtml" hash="a11383dd825b695f2fcba0b86f88f94f"/><file name="note.phtml" hash="6625a3771ba10daba5ded5570574716f"/><file name="trouble.phtml" hash="86d486f6c53e8ffae2016a88225223fb"/></dir></dir><file name="setup_check.phtml" hash="1814302f58a15fb1629446e074a7e1e0"/></dir><dir name="convert"><dir name="profile"><file name="export.phtml" hash="9be5cdbc2e46b9fa65950b5d6558dca5"/></dir></dir></dir><dir name="troubleshooting"><dir name="view"><dir name="tab"><file name="download.phtml" hash="78ec34fd9c3c8b660b19f9e799d8e76e"/><file name="info.phtml" hash="bd19bb1072ce1d60a4fb7bda660a0ce7"/><file name="log.phtml" hash="c9e2c9493a2dad579bba4ed53795cf5e"/><file name="submit.phtml" hash="c2269f4a6a52d66bff5eac660d0831bd"/></dir><file name="form.phtml" hash="d2338bfe3598e9315ca8f5ac8d9b5516"/></dir><file name="view.phtml" hash="ee6af3fe79d916af764f41e7e8c5cc37"/></dir></dir></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="emaildirect.xml" hash="9803fe9024b7eb6415713d81fe27c629"/></dir><dir name="template"><dir name="emaildirect"><dir name="checkout"><file name="subscribe.phtml" hash="351ea790305f0a3ec99c34180bbee235"/></dir><dir name="customer"><dir name="account"><dir name="dashboard"><file name="info.phtml" hash="4256a03d67ec2a6f97867a87564cff92"/></dir><file name="lists.phtml" hash="4c697dcfa63ece1db7885cadb02982d1"/></dir></dir><dir name="email"><dir name="order"><dir name="items"><dir name="order"><file name="default.phtml" hash="2d65f3d02b9baa08969d68f2a2cca348"/></dir></dir><file name="items.phtml" hash="e6b15e6460010c5acae66017d177bfb9"/></dir></dir></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><dir name="template"><dir name="email"><file name="newsletter_subscr_success_emaildirect.html" hash="f6afb69d207bbc3f8920e7a72ac9dd07"/><file name="newsletter_unsub_success_emaildirect.html" hash="bd9f97e8f5485180d4420097b5200ef4"/></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="EmailDirect_Integration.xml" hash="2d2666e6d9cd8d40a4974d5e242721d6"/></dir></target></contents>
|
20 |
<compatible/>
|
21 |
<dependencies/>
|
22 |
</package>
|
skin/adminhtml/default/default/emaildirect/emaildirect.css
CHANGED
@@ -37,7 +37,6 @@ div.emaildirect-notice h4 div.abandoned
|
|
37 |
#emaildirect_trouble_details ul { list-style: disc outside none; margin-left: 14px;}
|
38 |
|
39 |
#log_file_contents { width: 796px; height: 396px; overflow:scroll; border:solid 1px; padding: 2px;}
|
40 |
-
#config_details { }
|
41 |
#config_details table { width: 100%; border-collapse: collapse;}
|
42 |
.ed-config-table tr td:first-child { width: 180px; }
|
43 |
|
@@ -54,4 +53,11 @@ div.emaildirect-notice h4 div.abandoned
|
|
54 |
|
55 |
.head-adminhtml-troubleshooting {
|
56 |
background-image: url("../images/fam_package_go.gif");
|
57 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
#emaildirect_trouble_details ul { list-style: disc outside none; margin-left: 14px;}
|
38 |
|
39 |
#log_file_contents { width: 796px; height: 396px; overflow:scroll; border:solid 1px; padding: 2px;}
|
|
|
40 |
#config_details table { width: 100%; border-collapse: collapse;}
|
41 |
.ed-config-table tr td:first-child { width: 180px; }
|
42 |
|
53 |
|
54 |
.head-adminhtml-troubleshooting {
|
55 |
background-image: url("../images/fam_package_go.gif");
|
56 |
+
}
|
57 |
+
|
58 |
+
table.missing_columns { background-color: white; color: black; margin: 10px; border: solid 1px black; border-collapse: collapse;}
|
59 |
+
|
60 |
+
table.missing_columns tr td, table.missing_columns tr th { border: solid 1px black; border-collapse: collapse; padding: 4px 10px;}
|
61 |
+
table.missing_columns tr th { font-weight: bold; color: red; }
|
62 |
+
|
63 |
+
#emaildirect_column_fix { margin-left: 15px; }
|