Ideally, you use a helper and its afterLayout callback to finalize/modify
the rendered html.
Thats how it works for me.
Something like that:
App::uses('InlineCssLib', 'Tools.Lib');
class EmailProcessingHelper extends AppHelper {
/**
* Process Email HTML content after rendering of the email
*
* @param string $layoutFile The layout file that was rendered.
* @return void
*/
public function afterLayout($layoutFile) {
$content = $this->_View->Blocks->get('content');
$content = $Message->prepareHtmlContent($content, array());
if (!isset($this->InlineCss)) {
$this->InlineCss = new InlineCssLib();
}
$content = trim($this->InlineCss->process($content));
$this->_View->Blocks->set('content', $content);
}
}
Am Donnerstag, 29. August 2013 01:43:19 UTC+2 schrieb advantage+:
>
> Very true, my bad.
>
>
>
> I have:
>
> App::uses('InlineCssLib', 'InlineCss');
>
> $body = new InlineCssLib();
>
> $body -> process();
>
>
>
> But what am I processing? I have to force render the template / layout for
> the email, pass that to $body -> process();
>
> Then pass body to the email?
>
>
>
> App::uses('CakeEmail', 'Network/Email');
>
> $email = new CakeEmail($account);
>
> $email -> to($data['User']['email']);
>
> $email -> sender($this->accounts[$account]);
>
> $email -> subject($data['Post']['reply_sublect']);
>
> $email -> setHeaders(array(
>
> 'X-Mailer' => 'PHP ' . phpversion()));
>
> $email -> viewVars(array('data' => $data));
>
> $email -> template('default');
>
> $email -> emailFormat('html');
>
>
>
> if($email -> send()){
>
> $sent = true;
>
> }
>
> return $sent;
>
>
>
> Thanks again for your time,
>
>
>
> Dave
>
>
>
>
>
> *From:* [email protected] <javascript:> [mailto:
> [email protected] <javascript:>] *On Behalf Of *euromark
> *Sent:* Wednesday, August 28, 2013 9:06 PM
> *To:* [email protected] <javascript:>
> *Subject:* Re: Link with inline CSS styles
>
>
>
> They are pretty self-explanatory
>
>
>
> And even if you cant get em running, they at least can show you how it can
> be done.
>
> What more is there one might need? :D
>
>
>
> Am Mittwoch, 28. August 2013 23:28:11 UTC+2 schrieb advantage+:
>
> Are there any docs for either of these Lib's?
>
>
>
> One requires the other but neither seem to have any documentation.
>
> You mention "after rendering pre-process" how? When? where?
>
> Trying it now but lost as you can guess.
>
>
>
> Thanks,
>
> Dave
>
>
>
> *From:* [email protected] [mailto:[email protected]] *On
> Behalf Of *euromark
> *Sent:* Tuesday, August 27, 2013 8:23 PM
> *To:* [email protected]
> *Subject:* Re: Link with inline CSS styles
>
>
>
> See https://github.com/dereuromark/tools/blob/master/Lib/InlineCssLib.phpfor
> details.
>
>
> Am Mittwoch, 28. August 2013 00:46:50 UTC+2 schrieb euromark:
>
> I still declare those styles with <style> blocks in the templates
> and after rendering pre-process the whole layout prior to actually sending
> the email
>
> in this processing step all styles will be made inline using a Lib wrapper
> for https://github.com/tijsverkoyen/CssToInlineStyles
>
>
>
>
> Am Dienstag, 27. August 2013 23:58:26 UTC+2 schrieb advantage+:
>
> This is for an html email and I want the styles inline so it display's
> correct in more clients / email hosts / versions.
>
>
>
> Trying to avoid standard class's as normal:
>
> <STYLE>
>
> body {
>
> ….
>
> }
>
> .some_class{}
>
> .other_class{}
>
> </STYLE>
>
>
>
> *From:* [email protected] [mailto:[email protected]] *On
> Behalf Of *euromark
> *Sent:* Tuesday, August 27, 2013 6:54 PM
> *To:* [email protected]
> *Subject:* Re: Link with inline CSS styles
>
>
>
> You never need to. There is always a wax with CSS
>
>
>
> But applying it as normal options key value pair helps:
>
>
>
> $this->Html->link(LinkTitle, LinkUrl, array('style' => 'here it goes'))
>
>
>
> As documented in the helper section.
>
>
>
> Am Dienstag, 27. August 2013 21:13:52 UTC+2 schrieb advantage+:
>
> Is there a way to add inline CSS styles to a link?
>
> I tried to combine / add in the $this->Html->style(array()); with the link
> but to no avail.
>
> Any insight would be great.
>
>
>
> I know it's not best to use inline styles but in this case I need to.
>
>
>
> Thanks,
>
> Dave
>
> --
> Like Us on FaceBook https://www.facebook.com/CakePHP
> Find us on Twitter http://twitter.com/CakePHP
>
> ---
> You received this message because you are subscribed to the Google Groups
> "CakePHP" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/cake-php.
> For more options, visit https://groups.google.com/groups/opt_out.
>
> --
> Like Us on FaceBook https://www.facebook.com/CakePHP
> Find us on Twitter http://twitter.com/CakePHP
>
> ---
> You received this message because you are subscribed to the Google Groups
> "CakePHP" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/cake-php.
> For more options, visit https://groups.google.com/groups/opt_out.
>
> --
> Like Us on FaceBook https://www.facebook.com/CakePHP
> Find us on Twitter http://twitter.com/CakePHP
>
> ---
> You received this message because you are subscribed to the Google Groups
> "CakePHP" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected] <javascript:>.
> To post to this group, send email to [email protected]<javascript:>
> .
> Visit this group at http://groups.google.com/group/cake-php.
> For more options, visit https://groups.google.com/groups/opt_out.
>
--
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP
---
You received this message because you are subscribed to the Google Groups
"CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/groups/opt_out.