joshuataylor/to-inline-style-email-bundle

一个用于通过 tijsverkoyen 的 CssToInlineStyles 翻译器进行操作的 Symfony2 扩展包,这是一个定制修补过的仓库。

安装: 8

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 3

分支: 33

类型:symfony-bundle

dev-master / 1.0.0.x-dev 2014-10-13 00:00 UTC

This package is not auto-updated.

Last update: 2024-09-24 08:38:04 UTC


README

ToInlineStyleEmailBundle 是一个用于使用 Tijs Verkoyen 开发的 CssToInlineStyles 翻译器的 Symfony2 扩展包(有关原始仓库,请参阅 https://github.com/tijsverkoyen/CssToInlineStyles

要求

ToInlineStyleEmailBundle 只支持 PHP 5.3.3 及以上版本。

安装

请在您的 Symfony2 应用程序中,使用 Composer 安装此扩展包。

以下行应添加到您的 composer.json

"require": {
    "robertotru/to-inline-style-email-bundle": "dev-master"
},

然后,通过添加以下行在您的 AppKernel 中注册扩展包

new JoshTaylor\ToInlineStyleEmailBundle\JoshTaylorToInlineStyleEmailBundle(),

文档和示例

此扩展包提供了一个名为 css_to_inline_email_converter 的服务。在控制器中使用它,可以快速访问 Tijs Verkoyen 开发的转换器。例如:

public function indexAction() { 
 $converter = $this->get('css_to_inline_email_converter');
 ...
}

获取 HTML 和 CSS 作为字符串,并将这些必需值设置为转换器对象,例如:

$converter = $this->get('css_to_inline_email_converter');
 
$html = ...; // get the HTML here
$css = ....; // get the CSS here
      
$converter->setHTML($html);
$converter->setCSS($css);

从其文件夹中检索 HTML 和 CSS 文件的操作完全取决于您。例如,在您的控制器中检索 CSS 的内容:

file_get_contents($this->container->getParameter('kernel.root_dir').
'/../src/Acme/TestBundle/Resources/css/mystyle.css');

当然,假设 Symfony 用户会使用模板而不是静态 HTML 页面。因此,为了方便,该服务提供了一个可以渲染模板的功能。例如:

$converter->setHTMLByView('AcmeTestBundle:MyController:my_template.html.twig', 
   array('param_1'=>$val_of_param_1, ..., 'param_n'=>$val_of_param_n));

必须使用前面的函数而不是 setHTML() 函数。

您可以直接在 Twig 模板中使用内联 CSS

{% inlinecss '/css/email.css' %}
<div class="foo">
...
</div>
{% endinlinecss }

同样支持相对路径

{% inlinecss '@AcmeBundle:css:email.css' %}
<div class="foo">
...
</div>
{% endinlinecss }

请参阅文件中的文档,以获取有关使用该服务的更多详细信息。

贡献

ToInlineStyleEmailBundle 是一个开源项目。鼓励贡献。请随意为此扩展包做出贡献,以改进它。

关于扩展包作者的简介

ToInlineStyleEmailBundle 由 Roberto Trunfio 原始开发并维护(有关作者的更多信息,请参阅 www.trunfio.it

此非官方分支由 Josh Taylor 维护,直到原始作者将修复推送到上游。