浏览代码

Merge pull request #3050 from occitech/3.0

Themed CakeEmail should load view helpers with the theme set
José Lorenzo Rodríguez 12 年之前
父节点
当前提交
e5db38e3fe

+ 6 - 3
src/Network/Email/Email.php

@@ -1702,6 +1702,11 @@ class Email {
 		$View = new $viewClass(null);
 		$View->viewVars = $this->_viewVars;
 		$View->helpers = $this->_helpers;
+
+		if ($this->_theme) {
+			$View->theme = $this->_theme;
+		}
+
 		$View->loadHelpers();
 
 		list($templatePlugin, $template) = pluginSplit($this->_template);
@@ -1711,9 +1716,7 @@ class Email {
 		} elseif ($layoutPlugin) {
 			$View->plugin = $layoutPlugin;
 		}
-		if ($this->_theme) {
-			$View->theme = $this->_theme;
-		}
+
 		// Convert null to false, as View needs false to disable
 		// the layout.
 		if ($layout === null) {

+ 1 - 0
tests/TestCase/Network/Email/EmailTest.php

@@ -1389,6 +1389,7 @@ class EmailTest extends TestCase {
 		$result = $this->CakeEmail->send();
 
 		$this->assertContains('In TestTheme', $result['message']);
+		$this->assertContains('/theme/TestTheme/img/test.jpg', $result['message']);
 		$this->assertContains('Message-ID: ', $result['headers']);
 		$this->assertContains('To: ', $result['headers']);
 	}

+ 1 - 0
tests/test_app/TestApp/Template/Themed/TestTheme/Email/text/themed.ctp

@@ -1 +1,2 @@
 In TestTheme
+<?php echo $this->Html->image('test.jpg') ?>