Зміст
  1. Структура вкладеності листів Stripo
  2. Процес адаптації листа
  3. Підсумки
23 October 2017

Частина 2. Продвинутий варіант адаптації листів

Автор
Роман Бурдига
Роман Бурдига Product designer і design team lead у Stripo
Підсумувати
Advanced-option-of-the-email-templates-adaptation-in-Stripo-builder
Зміст
1.
Структура вкладеності листів Stripo

У попередній статті ми розглянули як адаптувати кастомний HTML емейл шаблону для роботи в редакторі Stripo, щоб можна було редагувати зображення, посилання і текст через CKEditor без «заглядання під капот» (у HTML код листа).

У сьогоднішній статті хочу розкрити складнішу тему — як зробити так, щоб емейл-лист, що був зверстаний на стороні (по суті — кастомна верстка), став повністю адаптованим в Stripo для можливості редагування будь-якого елементу (контейнера/структури/полоси) і базових блоків в drag’n’drop режимі, максимально використовуючи налаштування і функціонал Stripo редактора.

Для прикладу будемо використовувати той самий шаблон hotwire, узятий з reallygoodemails.com (завантажити HTML листа можна тут).

Структура вкладеності листів Stripo

Спершу розберемо як виглядає вкладеність елементів в листах Stripo, що містить смуги, структури, контейнери і блоки.

Розглянемо приклад смуги, в якій знаходиться структура з двома контейнерами і блоками «Зображення» і «Текст».

01-Stripo-nesting-of-elements-of-editor

Як видно з схеми, усі елементи — це осередки таблиць з певними класами.

  1. Смуга з класом esd-stripe;
  2. Структура з класом esd-structure;
  3. Контейнер з класом esd-container-frame;
  4. Блок з класами, в даному випадку esd-block-imageesd-block-text.

Якщо ваше верстання побудоване за схожим принципом, це дозволить максимально просто адаптувати лист в Stripo.

Смуга → Структура × n → Контейнер × n ≤ 8 → Блок × n

  • в смузі може бути скільки завгодно структур;
  • в Структурі можуть бути Контейнери, зараз не більше 8, але скоро ми надамо можливість збільшувати кількість контейнерів до 9 і зробимо їх динамічними;
  • в Контейнері може бути будь-яка кількість Блоків.

Практично завжди є куди додати клас для смуг, структур і / або контейнерів. Не завжди вдається додати клас для блоків так, щоб вони коректно адаптувалися, тому що їх верстка буває дуже специфічною. Тому ми рекомендуємо додавати клас esd-block-html в обгортку такого блоку, тоді Stripo буде давати можливість редагувати такий блок через HTML, з активними елементами управління блоком (збереження, переміщення, копіювання, видалення). Або створити такий же контент листа на основі наших блоків, просто перетягуючи їх в контейнери, але це ми зробимо в третій частині статті.

Список доступних класів Блоків

esd-block-image — клас для визначення блоку «Зображення»;
esd-block-text — клас для визначення блоку «Текст»;
esd-block-button — клас для визначення блоку «Кнопка»;
esd-block-spacer — клас для визначення блоку «Роздільник»;
esd-block-social — клас для визначення блоку «Соц.мережі»;
esd-block-html — клас для визначення блоку «HTML»;
esd-block-menu — клас для визначення блоку «Меню».

Приступимо до адаптації нашого листа.

Процес адаптації листа

Адаптація смуги

Почнемо з пошуку елементу таблиці, куди можна вставити клас для смуги. Така таблиця знайшлася — це шапка листа цілком. Встановлюємо комірці клас esd-stripe.

02-Stripo-Header-adaptation

І відразу можна перевірити результат — наведіть мишею або клікніть по цій області, ви побачите рамку з елементами управління.

03-Stripo-Header

Спробуємо скопіювати поточну смугу з шапкою і створити нову смугу вже з версткою Stripo.

04-Stripo-Copy-of-Stripes

Адаптація Структури

Тепер додамо клас для структури esd-structure.

05-Stripo-Menu-Adaptation

Аналогічно смузі, у структури з’явилася рамка і елементи управління.

Адаптація базових блоків

Тепер адаптуємо існуючий контент у хедері.

В HTML хедера листа відсутня одна вкладеність, яка дозволила б нам організувати Контейнер. Але по суті можна обійтися без неї, так як ми знаємо, що Контейнери нам потрібні для об’єднання безлічі Блоків. В даному випадку у нас один блок «Зображення» і набір посилань меню.

Перетворимо прехедер, логотип і меню в блоки.

06-Stripo-Preheader-adaptation

07-Stripo-Logo-adaptation

08-Stripo-Menu-Adaptation2

Тепер приступимо до більш складного блоку — картки товару. Тут нам не вистачає однієї вкладеності — Контейнера, щоб була можливість перетягувати блоки з панелі блоків.

Спочатку додамо класи для смуги і структури — тут все просто:

09-Stripo-Cards-adaptation

Далі знаходимо елемент таблиці, в якій розташований текст «3-Star Hotels TORONTO», і вказуємо йому клас esd-container-frame — це буде наш Контейнер.

10-Stripo-Cards-adaptation2

Потім все, що знаходиться ① ② в комірці esd-container-frame, обгортаємо в таблицю — це будуть наші блоки. Весь контент цієї області — це звичайний текст і зображення з зірками, значить у нас виходять блоки «Текст» і «Зображення». Вказуємо комірці першого рядка клас esd-block-image, а комірці другого рядка блок esd-block-text.

11-Stripo-Cards-Adaptation3

Вирізаємо відповідні блокам шматки коду і вставляємо всередину комірок нової таблиці.

Stripo перетворив цей контент в рідні блоки з елементами управління. Крім того, в область контейнера тепер можна «кидати» блоки з панелі блоків.

12-Stripo-Cards-adaptation4

Перетворимо секції з ціною і кнопкою в блоки:

13-Stripo-Cards-adaptation5

Вихідний код верстки ціни дозволив додати класи до існуючих комірок. А код кнопки — ні. Потрібно обернути її в таблицю і застосувати клас esd-block-html, а не esd-block-button, що було б логічно. Чому так? Тому що в даному випадку, поточна кнопка не розпізнається як кнопка Stripo через занадто велику різницю в верстці.

14-Stripo-Cards-adaptation6

У таких випадках зручно застосовувати клас esd-block-html для того, щоб залишити вихідний код, але мати можливість керувати блоком.

Точно таким же чином ми адаптуємо код HTML в блоки Stripo. Не потрібно все робити кожен раз вручну для всіх картках. Досить зробити дві картки в одній структурі, а потім цю структуру дублювати за допомогою кнопки, яка знаходиться в елементах управління, а потім просто замінити текст і зображення.

15-Stripo-Copy-of-card

Підсумки

Нам вдалося з’ясувати, як перетворити довільний HTML в блоки Stripo, що в підсумку дало можливість більш комфортно маніпулювати контентом листа (крім прямого редагування тексту і зображень ми можемо копіювати, переміщати, видаляти і зберегти блоки, контейнери, структури і смуги).

Проте залишаються деякі обмеження, які не дозволяють Stripo максимально показати свої можливості. У наступній статті, я розповім і покажу як задіяти Stripo на повну і зробити такий же шаблон з нуля, прямо в редакторі!

А поки, не соромтеся самостійно пробувати адаптувати ваші шаблони листів для роботи в нашому редакторі. Якщо в процесі у вас виникнуть будь-які питання, складності, пов’язані з адаптацією, будь ласка, пишіть нам на contact@stripo.emailі ми з радістю вам допоможемо!

Чи була ця стаття корисна?
Tell us your thoughts
Дякуємо за ваш відгук!
9 коментарів
Carey Brown
Carey Brown 3 days ago
Hello! Are there CSS elements added to the esd classes? I don't want to add these classes to my email modules and templates if it's adding CSS that I cannot control. I'm also concerned about the code weight these classes add to my emails when our system doesn't need them. Can you clarify? Thanks!
Roman Burdyga
Roman Burdyga 2 days ago
Hello Carey, This set of classes is needed only when you are working in our editor and for marks for recognising your email structure. After export from Stripo editor, those classes will be removed from HTML.
Carey Brown
Carey Brown 2 days ago
Thanks for your reply, Roman. If my client is using Stripo to store their modules, and build emails within the tool, the esd classes are required in the code base, correct? Otherwise the template and modules will not render.
Roman Burdyga
Roman Burdyga 1 day ago
You're welcome. If the template or module doesn't have Stripo classes, it will render anyway, but the custom HTML but user won't be able to use drag-and-drop functionality.
David Kim
David Kim 4 years ago
When's part 3 gonna come out?
Ганна Кузнєцова
Ганна Кузнєцова 4 years ago
Hello, David. Thank you for your question. The third part came out. We shot a video instead of a blog post. Here's the link to it. https://www.youtube.com/watch?v=Khzpz-hSJFc&t=1s But it is in Russian. Please, turn on the English subtitles. https://prnt.sc/1qt51ml If you have any questions, please let us know.
Rusbel Leon
Rusbel Leon 5 years ago
nice
Jardel Amorim Suporte
Jardel Amorim Suporte 5 years ago
why
Moreno Matta
Moreno Matta 5 years ago
ok