The new way of
managing layouts
and blocks on Sylius
Ivo Lukač @ Sylius Croatia, Zagreb 2017
www.netgenlabs.com
• Ivo Lukač, co-founder of Netgen, Croatia

I am also: developer, site builder, architect, consultant,
project manager, evangelist, speaker, event organiser,
business developer, …
• Edi Modrić, senior eZ/Symfony/PHP developer and tech lead
• Netgen, web agency, Zagreb, Croatia, ~20 employees
• 15 years of experience building complex content-centric
web solutions, using eZ Publish since 2004, Symfony since
2013.
• Clients and partners in Germany, Switzerland, Norway, etc.
About
www.netgenlabs.com
Web Summer
Camp 2017
SOLD OUT!
www.netgenlabs.com
HOW IT ALL STARTED
www.netgenlabs.com
We wanted to improve the
process of building
complex web solutions
and make it more efficient!
www.netgenlabs.com
We wanted to find the
intersection of typical web
project phases and
improve there
www.netgenlabs.com
So what is the common
ground for backend,
frontend, UX design and
content?
www.netgenlabs.com
We figured its about
layouts and blocks :)
www.netgenlabs.com
- backend developers implement features that
need to be placed somewhere on the
interface (layout), reuse when necessary
- frontend developers apply design on HTML
markup which describes the layout
- editors place content in prepared blocks
- UX designer define the interface with set of
layouts and blocks
Layouts and blocks
www.netgenlabs.com
- SaaS solutions like Webflow, Wix, etc
- not on enterprise level
- hard to extend
- prototyping/wireframing tools exporting to HTML/CSS
- what about backend?
- responsiveness still hard
- CMS specific tools
- usually focused on one page, one persona
Many ways to skin a cat
www.netgenlabs.com
NETGEN LAYOUTS!
www.netgenlabs.com
• Symfony full stack application
• uses Symfony routing and Twig extending feature
to inject Layouts
• Can be tightly coupled with any other Symfony full
stack app
• we already doing this with eZ Publish/ eZ Platform
• PoC with Sylius
• Could be loosely coupled with any other systems
• Possible project to do PoC with Contentful
Architecture
www.netgenlabs.com
MAIN CONCEPTS OF OUR
LAYOUT AND BLOCK
MANAGEMENT
www.netgenlabs.com
• Layout - responsible to render the layout of a page
with all Blocks added to it. It is instantiated from a
Layout Type from which it gets the template and list
of Zones in which Blocks can be placed
• Zone - a placeholder for Blocks which are added to a
Layout. There could be more Zones in a Layout.
More Blocks can be added in one Zone, they are
rendered one after other.
• Shared Layout - a special layout that can’t be applied
to any page directly, its purpose is to hold Blocks in
Zones that can be reused in regular Layouts
Defining layouts
www.netgenlabs.com
www.netgenlabs.com
• Block - responsible for handling specific features. It
renders the content using a defined Block View. Certain
blocks have Block Items which are filled from Collections
• Collection - used to fill the list of Block Items. Collection
can be manual or dynamic. In the case of manual collection
the items are picked from a backend system by the editor.
In the case of dynamic collection a Query can be chosen
and given parameters to fetch the data from the backend.
• Container (Column, 2 columns, etc) - is a special kind of
Block which purpose is to hold other Blocks and render
them.
Defining blocks
www.netgenlabs.com
• Layout Resolver - a module that is deciding what Layout will be
used for which request. It traverses Layout mappings and picks
the first one which fits the conditions. It works on top of Symfony
routing
• Layout mappings - a configuration that defines which Layout is
applied to which Targets under what Conditions
• Targets - abstraction which defines one or more URLs in a generic
way or backend specific way
• Conditions - additional conditions which need to match for
Layout to be chosen. Could be anything known in request context
Resolving & mapping
www.netgenlabs.com
- makes web design & development process more agile
- reduces the time needed to design and develop a site
- produces less waste
- makes site maintenance easier
- gives quicker time to market
- provides head to headless
- gives a single collaboration point for UX designers,
developers and editors
Benefits
www.netgenlabs.com
- adding more features (like caching, user
policies, translations etc.)
- finished several projects using Layouts on
eZ, starting few more
- preparing a second release for selected
partners and their pilot projects (Germany,
Italy, Spain)
Currently
www.netgenlabs.com
- open source the core
- make it sustainable with commercial
add-ons
- integrate tightly with other Symfony
based systems
- make loose integrations with everything
else easy via REST/SOAP, …
Future
www.netgenlabs.com
Thank you
ivo@netgen.hr
ilukac.com/twitter
ilukac.com/linkedin

More Related Content

PDF
Domain Driven Design Up And Running
PDF
The shift to the edge
PPTX
Developer skills
PPTX
Week01 jan19
PDF
Gemeinsame View-Models mit XAML Technologien
PDF
Jive the renovation of Aswing
PPTX
Presentation
PDF
ZaloPay Merchant Platform on K8S on-premise
Domain Driven Design Up And Running
The shift to the edge
Developer skills
Week01 jan19
Gemeinsame View-Models mit XAML Technologien
Jive the renovation of Aswing
Presentation
ZaloPay Merchant Platform on K8S on-premise

What's hot (13)

PPTX
Web components, so close!
PDF
Surviving a Plane Crash, a NU.nl case-study
PPTX
Full stack development using javascript what and why - ajay chandravadiya
PPTX
Ruby on Rails from an ASP.NET Perspective
PDF
Case study: The Roman Baths - DrupalCamp Bristol Presentation
PPTX
Web services
PDF
Simple Web Services with PHP
PPTX
Javascript for Wep Apps
PDF
PPTX
Vlad zelinschi optimizing the critical rendering path
PDF
Presentation 1 Web--dev
PDF
Tech talk polymer
PPTX
The Saga of JavaScript and TypeScript: Part 1
Web components, so close!
Surviving a Plane Crash, a NU.nl case-study
Full stack development using javascript what and why - ajay chandravadiya
Ruby on Rails from an ASP.NET Perspective
Case study: The Roman Baths - DrupalCamp Bristol Presentation
Web services
Simple Web Services with PHP
Javascript for Wep Apps
Vlad zelinschi optimizing the critical rendering path
Presentation 1 Web--dev
Tech talk polymer
The Saga of JavaScript and TypeScript: Part 1
Ad

Similar to The new way of managing layouts and blocks (20)

PDF
Contentful with Netgen Layouts workshop
PDF
symfony_from_scratch
PDF
symfony_from_scratch
PDF
symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)
PDF
Ny symfony meetup may 2015
PDF
symfony: An Open-Source Framework for Professionals (PHP Day 2008)
PDF
Merging two big Symfony based applications - PHPCE 2017
PDF
Merging two big Symfony based applications - SymfonyCon 2017
PDF
symfony: Open-Source Enterprise Framework
PDF
Symfony presentation
PDF
Implementing a Symfony Based CMS in a Publishing Company
ODP
Using WordPress for Rapid Prototyping
PDF
Using Oro layouts
PDF
Ez platform meetup, madrid 21 marzo 2018 english
PPTX
Building A Platform From Open Source At Yahoo
PPTX
Content Management Systems and Refactoring - Drupal, WordPress and eZ Publish
PDF
Unleash your Symfony projects with eZ Platform
PDF
Pump up the JAM with Gatsby
PDF
symfony: Simplify your professional web development with PHP (Symfony PHP Que...
PDF
Symfony for non-techies
Contentful with Netgen Layouts workshop
symfony_from_scratch
symfony_from_scratch
symfony: An Open-Source Framework for Professionals (Dutch Php Conference 2008)
Ny symfony meetup may 2015
symfony: An Open-Source Framework for Professionals (PHP Day 2008)
Merging two big Symfony based applications - PHPCE 2017
Merging two big Symfony based applications - SymfonyCon 2017
symfony: Open-Source Enterprise Framework
Symfony presentation
Implementing a Symfony Based CMS in a Publishing Company
Using WordPress for Rapid Prototyping
Using Oro layouts
Ez platform meetup, madrid 21 marzo 2018 english
Building A Platform From Open Source At Yahoo
Content Management Systems and Refactoring - Drupal, WordPress and eZ Publish
Unleash your Symfony projects with eZ Platform
Pump up the JAM with Gatsby
symfony: Simplify your professional web development with PHP (Symfony PHP Que...
Symfony for non-techies
Ad

Recently uploaded (20)

PPTX
Custom Battery Pack Design Considerations for Performance and Safety
PPTX
Configure Apache Mutual Authentication
PDF
Flame analysis and combustion estimation using large language and vision assi...
PPTX
Chapter 5: Probability Theory and Statistics
PDF
UiPath Agentic Automation session 1: RPA to Agents
PDF
Consumable AI The What, Why & How for Small Teams.pdf
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
PDF
Getting started with AI Agents and Multi-Agent Systems
PPTX
2018-HIPAA-Renewal-Training for executives
PDF
STKI Israel Market Study 2025 version august
PPTX
The various Industrial Revolutions .pptx
PDF
sustainability-14-14877-v2.pddhzftheheeeee
PDF
Abstractive summarization using multilingual text-to-text transfer transforme...
PDF
Produktkatalog für HOBO Datenlogger, Wetterstationen, Sensoren, Software und ...
PDF
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
PDF
Two-dimensional Klein-Gordon and Sine-Gordon numerical solutions based on dee...
PDF
Hindi spoken digit analysis for native and non-native speakers
PDF
Enhancing emotion recognition model for a student engagement use case through...
PDF
Five Habits of High-Impact Board Members
Custom Battery Pack Design Considerations for Performance and Safety
Configure Apache Mutual Authentication
Flame analysis and combustion estimation using large language and vision assi...
Chapter 5: Probability Theory and Statistics
UiPath Agentic Automation session 1: RPA to Agents
Consumable AI The What, Why & How for Small Teams.pdf
A comparative study of natural language inference in Swahili using monolingua...
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
Getting started with AI Agents and Multi-Agent Systems
2018-HIPAA-Renewal-Training for executives
STKI Israel Market Study 2025 version august
The various Industrial Revolutions .pptx
sustainability-14-14877-v2.pddhzftheheeeee
Abstractive summarization using multilingual text-to-text transfer transforme...
Produktkatalog für HOBO Datenlogger, Wetterstationen, Sensoren, Software und ...
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
Two-dimensional Klein-Gordon and Sine-Gordon numerical solutions based on dee...
Hindi spoken digit analysis for native and non-native speakers
Enhancing emotion recognition model for a student engagement use case through...
Five Habits of High-Impact Board Members

The new way of managing layouts and blocks

  • 1. The new way of managing layouts and blocks on Sylius Ivo Lukač @ Sylius Croatia, Zagreb 2017
  • 2. www.netgenlabs.com • Ivo Lukač, co-founder of Netgen, Croatia
 I am also: developer, site builder, architect, consultant, project manager, evangelist, speaker, event organiser, business developer, … • Edi Modrić, senior eZ/Symfony/PHP developer and tech lead • Netgen, web agency, Zagreb, Croatia, ~20 employees • 15 years of experience building complex content-centric web solutions, using eZ Publish since 2004, Symfony since 2013. • Clients and partners in Germany, Switzerland, Norway, etc. About
  • 5. www.netgenlabs.com We wanted to improve the process of building complex web solutions and make it more efficient!
  • 6. www.netgenlabs.com We wanted to find the intersection of typical web project phases and improve there
  • 7. www.netgenlabs.com So what is the common ground for backend, frontend, UX design and content?
  • 8. www.netgenlabs.com We figured its about layouts and blocks :)
  • 9. www.netgenlabs.com - backend developers implement features that need to be placed somewhere on the interface (layout), reuse when necessary - frontend developers apply design on HTML markup which describes the layout - editors place content in prepared blocks - UX designer define the interface with set of layouts and blocks Layouts and blocks
  • 10. www.netgenlabs.com - SaaS solutions like Webflow, Wix, etc - not on enterprise level - hard to extend - prototyping/wireframing tools exporting to HTML/CSS - what about backend? - responsiveness still hard - CMS specific tools - usually focused on one page, one persona Many ways to skin a cat
  • 12. www.netgenlabs.com • Symfony full stack application • uses Symfony routing and Twig extending feature to inject Layouts • Can be tightly coupled with any other Symfony full stack app • we already doing this with eZ Publish/ eZ Platform • PoC with Sylius • Could be loosely coupled with any other systems • Possible project to do PoC with Contentful Architecture
  • 13. www.netgenlabs.com MAIN CONCEPTS OF OUR LAYOUT AND BLOCK MANAGEMENT
  • 14. www.netgenlabs.com • Layout - responsible to render the layout of a page with all Blocks added to it. It is instantiated from a Layout Type from which it gets the template and list of Zones in which Blocks can be placed • Zone - a placeholder for Blocks which are added to a Layout. There could be more Zones in a Layout. More Blocks can be added in one Zone, they are rendered one after other. • Shared Layout - a special layout that can’t be applied to any page directly, its purpose is to hold Blocks in Zones that can be reused in regular Layouts Defining layouts
  • 16. www.netgenlabs.com • Block - responsible for handling specific features. It renders the content using a defined Block View. Certain blocks have Block Items which are filled from Collections • Collection - used to fill the list of Block Items. Collection can be manual or dynamic. In the case of manual collection the items are picked from a backend system by the editor. In the case of dynamic collection a Query can be chosen and given parameters to fetch the data from the backend. • Container (Column, 2 columns, etc) - is a special kind of Block which purpose is to hold other Blocks and render them. Defining blocks
  • 17. www.netgenlabs.com • Layout Resolver - a module that is deciding what Layout will be used for which request. It traverses Layout mappings and picks the first one which fits the conditions. It works on top of Symfony routing • Layout mappings - a configuration that defines which Layout is applied to which Targets under what Conditions • Targets - abstraction which defines one or more URLs in a generic way or backend specific way • Conditions - additional conditions which need to match for Layout to be chosen. Could be anything known in request context Resolving & mapping
  • 18. www.netgenlabs.com - makes web design & development process more agile - reduces the time needed to design and develop a site - produces less waste - makes site maintenance easier - gives quicker time to market - provides head to headless - gives a single collaboration point for UX designers, developers and editors Benefits
  • 19. www.netgenlabs.com - adding more features (like caching, user policies, translations etc.) - finished several projects using Layouts on eZ, starting few more - preparing a second release for selected partners and their pilot projects (Germany, Italy, Spain) Currently
  • 20. www.netgenlabs.com - open source the core - make it sustainable with commercial add-ons - integrate tightly with other Symfony based systems - make loose integrations with everything else easy via REST/SOAP, … Future