From: edward Date: Mon, 26 Mar 2018 05:38:48 +0000 (+0800) Subject: Mailer.php X-Git-Url: http://git.roojs.org/?p=Pman.Core;a=commitdiff_plain;h=371941da637b24a928a555cd16dd73a535c8beb2 Mailer.php --- 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)