From 371941da637b24a928a555cd16dd73a535c8beb2 Mon Sep 17 00:00:00 2001 From: edward Date: Mon, 26 Mar 2018 13:38:48 +0800 Subject: [PATCH] Mailer.php --- Mailer.php | 48 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/Mailer.php b/Mailer.php index a1ab4f80..cad8d356 100644 --- a/Mailer.php +++ b/Mailer.php @@ -181,7 +181,7 @@ class Pman_Core_Mailer { } if ($this->css_inline) { - $htmlbody = $this->htmlbodyinlineCss($htmlbody); + $htmlbody = $this->htmlbodyInlineCss($htmlbody); } } @@ -453,6 +453,52 @@ class Pman_Core_Mailer { } + function htmlbodyInlineCss($html) + { + $ff = HTML_FlexyFramework::get(); + $dom = new DOMDocument(); + + // this may raise parse errors as some html may be a component.. + @$dom->loadHTML('' .$html); + $links = $dom->getElementsByTagName('link'); + $lc = array(); + foreach ($links as $link) { // duplicate as links is dynamic and we change it..! + $lc[] = $link; + } + // + + foreach ($lc as $i=>$link) { + //var_dump($link->getAttribute('href')); + + if ($link->getAttribute('rel') != 'stylesheet') { + continue; + } + $url = $link->getAttribute('href'); + $file = $ff->rootDir . $url; + + if (!preg_match('#^(http|https)://#', $url)) { + $file = $ff->rootDir . $url; + + if (!file_exists($file)) { +// echo $file; + $link->setAttribute('href', 'missing:' . $file); + continue; + } + } else { + $file = $this->mapurl($url); + } + + $par = $link->parentNode; + $par->removeChild($link); + $s = $dom->createElement('style'); + $e = $dom->createTextNode(file_get_contents($file)); + $s->appendChild($e); + $par->appendChild($s); + + } + return $dom->saveHTML(); + } + function fetchImage($url) -- 2.39.2