drmonkeyninja/cakephp-inline-css

CakePHP 内联CSS插件

3.0.0 2016-11-30 13:09 UTC

This package is auto-updated.

Last update: 2024-09-07 15:12:51 UTC


README

License Build Status

此插件提供了一个 CakePHP 辅助工具,使用 CssToInlineStyles 将视图模板中的 HTML 样式块转换为内联 CSS。它的预期用途是与生成电子邮件模板一起使用,因为许多电子邮件客户端通常要求直接应用于元素的样式。

要求

  • CakePHP 3.x

安装

应使用 Composer 安装此插件:

composer require drmonkeyninja/cakephp-inline-css:3.0.*

然后,将以下行添加到您的 bootstrap.php 中以加载插件。

Plugin::load('InlineCss');

用法

要使用此插件,您需要加载 InlineCss 辅助工具,并在您的电子邮件 HTML 模板中使用它:

$email = new Email();
$email->template('welcome', 'fancy')
    ->emailFormat('html')
    ->helpers(['InlineCss.InlineCss'])
    ->to('bob@example.com')
    ->from('app@domain.com')
    ->send();

当渲染您的电子邮件模板时,插件将然后将模板中定义的任何内联 <style> 块的 CSS 转换为内联 CSS。因此,如果您的电子邮件视图模板如下所示:

<style type="text/css">
	.link {color: red;}
</style>
<p><a href="http://andy-carter.com" class="link">Link</a></p>

它将被渲染为:

<p><a href="http://andy-carter.com" class="link" style="color: red;">Link</a></p>

这使得生成 HTML 电子邮件变得更容易,因为您可以在更 DRY 的方法中编写您的 CSS。

我建议您考虑使用像出色的 Queue 插件 这样的东西来延迟发送电子邮件,以提高使用此插件时用户的应用响应时间。