drmonkeyninja / cakephp-inline-css
CakePHP inline CSS plugin
Installs: 123 948
Dependents: 0
Suggesters: 0
Security: 0
Stars: 8
Watchers: 2
Forks: 3
Open Issues: 1
Type:cakephp-plugin
Requires
- cakephp/cakephp: ~3.0
- tijsverkoyen/css-to-inline-styles: ^1.5
This package is auto-updated.
Last update: 2024-11-07 15:32:04 UTC
README
This plugin provides a CakePHP helper that uses CssToInlineStyles to convert HTML style blocks to inline CSS on a View template. Its intended use is with generating email templates where many email clients often require styles applied directly to the elements.
Requirements
- CakePHP 3.x
Installation
This plugin should be installed using Composer:-
composer require drmonkeyninja/cakephp-inline-css:3.0.*
Then add the following line to your bootstrap.php to load the plugin.
Plugin::load('InlineCss');
Usage
To use this plugin you want to load the InlineCss
helper to use with your email's HTML template:-
$email = new Email(); $email->template('welcome', 'fancy') ->emailFormat('html') ->helpers(['InlineCss.InlineCss']) ->to('bob@example.com') ->from('app@domain.com') ->send();
When rendering your email template the plugin will then convert any CSS defined in an inline <style>
block in your template to inline CSS. So, if your email view template looks like this:-
<style type="text/css"> .link {color: red;} </style> <p><a href="http://andy-carter.com" class="link">Link</a></p>
It will be rendered as:-
<p><a href="http://andy-carter.com" class="link" style="color: red;">Link</a></p>
This makes generating HTML emails a lot simpler as you can write your CSS in a more DRY approach.
I recommend you look consider deferring the sending of emails using something like the excellent Queue plugin to improve your app's response time for users when using this plugin.