Skip to content

Commit f9d0258

Browse files
committed
#2 Make Backend for Email
- Override Mail and configure if it can be send
1 parent 3dd3bd7 commit f9d0258

File tree

6 files changed

+131
-9
lines changed

6 files changed

+131
-9
lines changed

app/code/community/LeMike/DevMode/Helper/Config.php

+7-1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ class LeMike_DevMode_Helper_Config extends LeMike_DevMode_Helper_Abstract
3030
{
3131
public function isMailAllowed()
3232
{
33-
return $this->_getStoreConfig('default/lemike_devmode/mail/active');
33+
return Mage::getStoreConfig('lemike_devmode_core/email/active');
34+
}
35+
36+
37+
public function getCoreEmailRecipient()
38+
{
39+
return Mage::getStoreConfig('lemike_devmode_core/email/recipient');
3440
}
3541
}

app/code/community/LeMike/DevMode/Model/Core/Email.php

+6-7
Original file line numberDiff line numberDiff line change
@@ -44,20 +44,19 @@ public function send()
4444
{
4545
$recipient = Mage::getStoreConfig('lemike_devmode_core/email/recipient');
4646

47+
if (Mage::helper('lemike_devmode/config')->isMailAllowed())
48+
{ // no receipient set: show content
49+
die($this->getBody());
50+
}
51+
4752
if ($recipient)
4853
{ // recipient is set: send mail to him
4954
LeMike_DevMode_Model_Log::info(
5055
'Reroute mail from "' . $this->getToMail() . '" to "' . $recipient . '".'
5156
);
5257
$this->setToEmail($recipient);
53-
54-
return parent::send();
55-
}
56-
else
57-
{ // no receipient set: show content
58-
var_dump($this->getBody());
5958
}
6059

61-
return $this;
60+
return parent::send();
6261
}
6362
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
<?php
2+
/**
3+
* Contains class.
4+
*
5+
* PHP version 5
6+
*
7+
* Copyright (c) 2013, Mike Pretzlaw
8+
* All rights reserved.
9+
*
10+
* @category mage_devMail
11+
* @package Template.php
12+
* @author Mike Pretzlaw <[email protected]>
13+
* @copyright 2013 Mike Pretzlaw
14+
* @license http://github.com/sourcerer-mike/mage_devMail/blob/master/License.md BSD 3-Clause ("BSD New")
15+
* @link http://github.com/sourcerer-mike/mage_devMail
16+
* @since $VERSION$
17+
*/
18+
19+
/**
20+
* Class Template.
21+
*
22+
* @category mage_devMail
23+
* @author Mike Pretzlaw <[email protected]>
24+
* @copyright 2013 Mike Pretzlaw
25+
* @license http://github.com/sourcerer-mike/mage_devMail/blob/master/License.md BSD 3-Clause ("BSD New")
26+
* @link http://github.com/sourcerer-mike/mage_devMail
27+
* @since $VERSION$
28+
*/
29+
class LeMike_DevMode_Model_Core_Email_Template extends Mage_Core_Model_Email_Template
30+
{
31+
public function send($email, $name = null, array $variables = array())
32+
{
33+
$recipient = Mage::getStoreConfig('lemike_devmode_core/email/recipient');
34+
35+
if ($recipient)
36+
{ // recipient is set: send mail to him
37+
LeMike_DevMode_Model_Log::info(
38+
'Reroute mail from "' . $this->getToMail() . '" to "' . $recipient . '".'
39+
);
40+
$this->setToEmail($recipient);
41+
}
42+
43+
if (Mage::helper('lemike_devmode/config')->isMailAllowed())
44+
{ // no recipient set: show content
45+
die($this->getProcessedTemplate($variables, true));
46+
}
47+
48+
return parent::send($email, $name, $variables);
49+
}
50+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
<?php
2+
/**
3+
* Contains class.
4+
*
5+
* PHP version 5
6+
*
7+
* Copyright (c) 2013, Mike Pretzlaw
8+
* All rights reserved.
9+
*
10+
* @category mage_devMail
11+
* @package Transport.php
12+
* @author Mike Pretzlaw <[email protected]>
13+
* @copyright 2013 Mike Pretzlaw
14+
* @license http://github.com/sourcerer-mike/mage_devMail/blob/master/License.md BSD 3-Clause ("BSD New")
15+
* @link http://github.com/sourcerer-mike/mage_devMail
16+
* @since $VERSION$
17+
*/
18+
19+
/**
20+
* Class Transport.
21+
*
22+
* @category mage_devMail
23+
* @author Mike Pretzlaw <[email protected]>
24+
* @copyright 2013 Mike Pretzlaw
25+
* @license http://github.com/sourcerer-mike/mage_devMail/blob/master/License.md BSD 3-Clause ("BSD New")
26+
* @link http://github.com/sourcerer-mike/mage_devMail
27+
* @since $VERSION$
28+
*/
29+
class LeMike_DevMode_Model_Core_Email_Transport extends Mage_Core_Model_Email_Transport
30+
{
31+
public function send(Zend_Mail $mail)
32+
{
33+
$recipient = Mage::getStoreConfig('lemike_devmode_core/email/recipient');
34+
35+
if ($recipient)
36+
{ // recipient is set: send mail to him
37+
LeMike_DevMode_Model_Log::info(
38+
'Reroute mail from "' . $this->getToMail() . '" to "' . $recipient . '".'
39+
);
40+
$mail->setToEmail($recipient);
41+
}
42+
else
43+
{ // no receipient set: show content
44+
$bodyHtml = $mail->getBodyHtml();
45+
$reflectBodyMail = new ReflectionObject($bodyHtml);
46+
$reflectContent = $reflectBodyMail->getProperty('_content');
47+
$reflectContent->setAccessible(true);
48+
die($reflectContent->getValue($bodyHtml));
49+
}
50+
51+
parent::send($mail);
52+
}
53+
}

app/code/community/LeMike/DevMode/etc/config.xml

+2
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@
3232
<core>
3333
<rewrite>
3434
<email>LeMike_DevMode_Model_Core_Email</email>
35+
<email_template>LeMike_DevMode_Model_Core_Email_Template</email_template>
36+
<email_transport>LeMike_DevMode_Model_Core_Email_Transport</email_transport>
3537
</rewrite>
3638
</core>
3739
</models>

app/code/community/LeMike/DevMode/etc/system.xml

+13-1
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,26 @@
2424
<show_in_website>1</show_in_website>
2525
<show_in_store>1</show_in_store>
2626
<fields>
27+
<active>
28+
<label>Send mails</label>
29+
<comment>
30+
Turn sending mails on/off. If Off then it will output mails to browser.
31+
</comment>
32+
<frontend_type>select</frontend_type>
33+
<source_model>adminhtml/system_config_source_yesno</source_model>
34+
<sort_order>100</sort_order>
35+
<show_in_default>1</show_in_default>
36+
<show_in_website>1</show_in_website>
37+
<show_in_store>1</show_in_store>
38+
</active>
2739
<recipient>
2840
<label>Recipient of all mail</label>
2941
<comment>
3042
This will override all mail recipients and deliver the mail
3143
to the given address.
3244
</comment>
3345
<frontend_type>text</frontend_type>
34-
<sort_order>1</sort_order>
46+
<sort_order>200</sort_order>
3547
<show_in_default>1</show_in_default>
3648
<show_in_website>1</show_in_website>
3749
<show_in_store>1</show_in_store>

0 commit comments

Comments
 (0)