Skip to content
This repository has been archived by the owner on Sep 20, 2023. It is now read-only.
/ ZurbInkBundle Public archive
forked from thampe/ZurbInkBundle

Creating email templates is hard. This Symfony Bundle provides help.

License

Notifications You must be signed in to change notification settings

gremo/ZurbInkBundle

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GremoZurbInkBundle

Latest stable Downloads total GitHub issues

Warning ⛔ this project is now archived. It's ok to use it for legacy Symfony 2/3 projects, it should work fine. New Symfony project should use twig/cssinliner-extra and twig/inky-extra (see inlining CSS and use inky).

Creating email templates is hard. This Symfony Bundle provides help.

The original bundle thampe/ZurbInkBundle is abandoned. This fork aims to provide a maintained version of the original project. I use this bundle at work, on daily basis, and I respect semantic versioning.

Do you have a good idea and want to contribute? Let's do it! Feel free to open an issue.

Upgrade

  • Last tag supporting Symfony 2 and 3 is 4.0.1. After that, this project only support Symfony 4 and 5.
  • Latest tag of the original project is 2.2.6. You can use this release only changing your Composer requirements.
  • Latest 2.x tag of my fork is 2.3.0 and contains some bug fixes. You can use this release changing your Composer requirements and bundle name in the kernel.

Installation

Install the bundle via Composer:

composer require gremo/zurb-ink-bundle

Then enable the bundle in the config/bundles.php:

<?php
// config/bundles.php

return [
    // ...
    Gremo\ZurbInkBundle\GremoZurbInkBundle::class => ['all' => true],
    // ...
];

Usage

First we need to create a template for our HTML email. You can use Foundation for Emails and Inky or write it from scratch.

Working with Foundation for Emails and Inky

Foundation for Emails is a framework for building HTML responsive emails while Inky is a templating language that converts simple HTML tags into the complex table HTML required for emails.

Extend the base Foundation for Emails layout and override the content block:

{% extends '@GremoZurbInk/foundation-emails/base.html.twig' %}

{% block content %}
    {# Inky markup and plain HTML #}
{% endblock %}

The base layout includes Foundation for Emails CSS (inlined only). Custom styles can be added overriding the stylesheets block (see Adding styles).

From scratch

Not using Foundation for Emails or Inky markup? Extend the base layout and override the body block:

{% extends '@GremoZurbInk/base.html.twig' %}

{% block body %}
    {# Plain HTML #}
{% endblock %}

Custom styles can be added overriding the stylesheets block (see Adding styles).

Adding styles

Email clients typically support only a subset of valid HTML, and don’t have strong support for CSS (especially CSS in the <head> of the HTML email). Yahoo, Outlook, and even Gmail strip CSS that’s included in the <head> of your HTML, so in most cases CSS inlining is necessary.

Stylesheets can be added calling the zurb_ink_add_stylesheet Twig function inside the stylesheets block:

{# ... #}

{% block stylesheets %}
    {{ parent() }}

    {# Custom CSS (inlined only) #}
    {{ zurb_ink_add_stylesheet('css/style.css') }}
{% endblock %}

{# ... #}

By default this will only inline the CSS. Pass a truthy value as second argument to both inline and output the CSS into the <style> tag:

{# ... #}

{% block stylesheets %}
    {{ parent() }}

    <style type="text/css">
        {# Custom CSS (both inlined and outputted) #}
        {{ zurb_ink_add_stylesheet('@AppBundle/Resources/public/css/style.css', true) }}
    </style>
{% endblock %}

{# ... #}

About

Creating email templates is hard. This Symfony Bundle provides help.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 87.2%
  • Twig 12.8%