Thursday, August 29, 2013

Re: Link with inline CSS styles

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: cake...@googlegroups.com [mailto:cake...@googlegroups.com] On Behalf Of euromark
Sent: Wednesday, August 28, 2013 9:06 PM
To: cake...@googlegroups.com
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: cake...@googlegroups.com [mailto:cake...@googlegroups.com] On Behalf Of euromark
Sent: Tuesday, August 27, 2013 8:23 PM
To: cake...@googlegroups.com
Subject: Re: Link with inline CSS styles

 

See https://github.com/dereuromark/tools/blob/master/Lib/InlineCssLib.php for 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: cake...@googlegroups.com [mailto:cake...@googlegroups.com] On Behalf Of euromark
Sent: Tuesday, August 27, 2013 6:54 PM
To: cake...@googlegroups.com
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 cake-php+u...@googlegroups.com.
To post to this group, send email to cake...@googlegroups.com.
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 cake-php+u...@googlegroups.com.
To post to this group, send email to cake...@googlegroups.com.
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 cake-php+u...@googlegroups.com.
To post to this group, send email to cake...@googlegroups.com.
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 cake-php+unsubscribe@googlegroups.com.
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/groups/opt_out.

No comments: