SlideShare a Scribd company logo
Paragraphs
are more powerful
than you can expect
abzats.com/kiev17.pdf
Vasily Yaremchuk
Senior Drupal Developer, Drupal Practice Lead
vasilyyaremchuk
https://www.drupal.org/u/yaremchuk
http://abzats.com
https://speedandfunction.com
The main challenge of my presentation is
to inspire you to use Paragraphs in your
Drupal sites and enjoy the Paragraphs
Presentation Plan
1. Quick DEMO to attract the audience.
2. Architecture of Paragraphs.
3. Paragraphs vs Fields vs Panels vs Embedded Entities vs Panalizer vs ECK
vs WYSIWYG vs Bricks etc.
4. Strong Points of Paragraphs
5. Several Contributed modules that improve Paragraphs approach. DEMO
6. My contribution (Paragraphs LandingPage Framework), roadmap, ideas and
cooperation request. DEMO
7. Future of Paragraphs: Quick discussion.
8. Questions.
Demo
Basic Paragraph Functionality
What is Paragraphs?
Paragraphs is an Entity Reference field
type with Revision support
There is a basic demo on
http://paragraphs.site-showcase.com
Project page: https://www.drupal.org/project/paragraphs
The key dependency is Entity Reference Revisions
(https://www.drupal.org/project/entity_reference_revisions)
See also “Introduction to the Paragraphs Module in Drupal
8” video by Ivan Zugec:
https://www.youtube.com/watch?v=Fy9s01T30uo
https://vimeo.com/197252633
We can get everything that we have in Drupal
inside a paragraph!
All stuff that we can display with Drupal fields we can have inside the paragraph.
Take a look for example on
Contact Formatter module
https://www.drupal.org/project/contact_formatter
Also it can be views, maps, blocks, etc.
Paragraphs Template Suggestions
https://www.drupal.org/node/2444893 (D8)
The default paragraphs template is paragraph.html.twig.
It uses theme suggestions for overwriting the template:
● paragraph--[VIEW-MODE].html.twig
● paragraph--[BUNDLE-NAME].html.twig
● paragraph--[BUNDLE-NAME]--[VIEW-MODE].html.twig
e.g.:
● paragraph--default.html.twig
● paragraph--image.html.twig
● paragraph--image--default.html.twig
We have extremely high
customisation flexibility on
template level!
● We can use different
markup for different
paragraph types
● We can use different
markup for the paragraphs
of one type with different
view modes
"As a site admin, I want to be able to add
different types of content chunks on any page
with customisable backgrounds, so that we have
control over the style and layout of our website"
- Mark Conroy
https://www.annertech.com/blog/drupal-panels-panelizer-paragraphs-fieldable-panel-panes
The main goal
Paragraphs vs Fields
- Paragraphs are reorderable!
We can do the same page with native Drupal fields but for the next page with the
new order of content blocks we have to set new content type or new view mode*.
_________
* https://www.drupal.org/project/entity_view_mode
https://www.drupal.org/project/entity_display_field
https://github.com/vasilyyaremchuk/entity_display_field
https://www.drupal.org/project/ds
More complex approaches: difference in architecture
Entity Reference
Entity Embedded
Paragraphs
Panelizer
See http://www.mediacurrent.com/blog/editorial-workflow-head-head-paragraphs-vs-entity-embed-vs-panelizer
Entity Embedded: widgets in WYSIWYG
By the way, there was a presentation in Lviv DrupalCamp 2016
“CKEditor 4 widget plugins & Drupal8” by Андрій Тюпа
https://www.drupal.org/project/
ckeditor_widgets
http://margotskapacs.com/201
4/05/adding-ckeditor-plugins-m
anually-in-drupal/
http://valuebound.com/resourc
es/blog/how-to-enhance-your-
content-authoring-by-adding-c
ustom-ckeditor-plugin-drupal-8
https://www.drupal.org/project/l
anding_page (there is only dev
Drupal 8 version)
Paragraphs vs Panelizer
Panelizer (Drupal Tutorial): https://www.youtube.com/watch?v=YsLEWuJUZwc
Image was taken from http://www.mediacurrent.com/blog/editorial-workflow-head-head-paragraphs-vs-entity-embed-vs-panelizer
Bricks (nested Entities) https://www.drupal.org/project/bricks
Bricks based on ECK (Entity Construction
Kit) approach, there is good discussion
ECK vs Paragraphs in:
https://www.chapterthree.com/blog/paragr
aphs-vs-eck-drupal-8
The main conclusion:
- Bricks are reusable (strong point)
- Bricks don’t have revisions (weak
point)
References on comparison different approaches
http://www.mediacurrent.com/blog/editorial-workflow-head-head-paragraphs-vs-entity-embed-vs-panelizer
https://www.chapterthree.com/blog/paragraphs-vs-eck-drupal-8
https://www.annertech.com/blog/drupal-panels-panelizer-paragraphs-fieldable-panel-panes
https://nedcamp.org/new-england-drupal-camp/sessions/editorial-process-head-head-paragraphs-vs-entit
y-embed-vs-panelizer
https://gist.github.com/nadavoid/d510440ed59f9878e47d8ff0027df1e5
Strong Points of Paragraphs out of Box
- We can include any existing functionality inside a paragraph
- We use only the paragraphs that require for the current page and avoid empty
fields
- We can cover our needs by minimal number of content types (maybe even 1)
- Paragraphs are reorderable!
- We can include one paragraph into another one, there is no limitation in that
recursion
- We can collapsed single paragraph edit form inside node edit form, to get it a
bit simpler
What features can be improved by contributed modules?
Contributed modules that improve Paragraphs approach
Classy paragraphs (https://www.drupal.org/project/classy_paragraphs)
Paragraphs Previewer (https://www.drupal.org/project/paragraphs_previewer)
Paragraphs Edit (https://www.drupal.org/project/paragraphs_edit)
Geysir (https://www.drupal.org/project/geysir)
Bootstrap Paragraphs (https://www.drupal.org/project/bootstrap_paragraphs)
Parade (https://www.drupal.org/project/parade)
Paragraphs LandingPage Framework (https://www.drupal.org/project/landingpage)
Paragraphs Edit
This module adds contextual links to paragraphs to edit,
delete and clone paragraphs.
Contextual links:
Clone fieldset:
Native edit form can be very long and it is difficult to find the content that
we need to edit:
Paragraphs Edit:
How to make it work?
It doesn’t work in:
{%
set classes = [
...
]
%}
<div{{ attributes.addClass(classes) }}>
{{ content.field_landingpage_image[0] }}
</div>
or in:
{%
set classes = [
...
]
%}
<div{{ attributes.addClass(classes) }}>
{{ title_suffix }}
{{ content.field_landingpage_image[0] }}
</div>
It works in:
{%
set classes = [
...
]
%}
<div{{ attributes.addClass(classes) }}>
{{ content }}
</div>
Paragraphs Previewer
Geysir Module
Bootstrap Paragraphs
Demo page: http://bp.jimbir.ch/
Parade Module
Demo: http://parade.brainsum.com/
The main improvements:
- paragraph add buttons
- Paragraphs Previewer usage
How to play with this module:
- Turn on parade_demo module
- Delete map paragraph on created dummy content or alternatively
check and fix Leaflet module settings
What is the most interesting for the developers?
- parade_demo.install where they created 'classy_paragraphs_style'
entities programmatically
Demo
Functionality of some Contributed Modules: Parade
module together with Paragraphs Previewer,
Paragraphs Edit and Geysir
Paragraphs LandingPage Framework
- Theme field in out of box LandingPage content type (we can use absolutely separate theme for
each Landing Page)
- Each paragraph view mode can have a separate template
- There is an ability to add separate classes and inline styles
- Architecture of the package: each paragraph type is a separate submodule
- LandingPage clone submodule
- LandingPage Export/Import feature (experimental)
- LandingPage Geysir module that extends functionality of Geysir module with Sort, Clone, Add and
Customize functionality.
Demo
Paragraphs LandingPage Framework module 1.x
Paragraphs LandingPage Framework: 3 levels of customization
- You can customize your page in admin area (Theme, View Mode, Inline styles and Classes)
- You can create and use your own LandingPage theme. Use 'landingpage_starterkit' template to
start. Also you can set up predefined classes in [your_theme].info.yml and the will be supported in
LandingPage autocomplete
- You can create your own paragraph types that will be supported by the module
You can find more details in http://cgit.drupalcode.org/landingpage/plain/README.txt
An example of relatively complex LandingPage created with Paragraphs LandingPage Framework:
http://partner.speedandfunction.com
How can you use it?
- You can use it if you need a separate Landing Page solution with different design on the existing
Drupal 8 site.
- You can use it during initial conversation with a new client. You can prepare several drafts of pages
with fake content that meets a client needs on your expectation and during the demo you can
change the order of paragraphs, colors, backgrounds and view mode to reach more close to the
client needs.
- You can create several out of box solutions that cover more simple requests of your clients.
Paragraphs LandingPage Framework: 2.x version
Roadmap:
- Decrease number of paragraphs
- Locate definition of paragraphs that don’t
have external dependencies into root
LandingPage module
- Support Paragraphs Edit module
- Support Paragraphs Previewer module
- Include examples dummy content in
LandingPage themes and remove example
modules
- Improve admin UI and add icons on
paragraph add buttons
- Add and improve module documentation
- Add export to static HTML feature
Paragraphs LandingPage Framework: Cooperation Request
It’s difficult to kick this stuff by one person
so I’m looking for any ideas, help and feature requests
also I’m going to share my progress with the community
Feel free to skype me vasilyyaremchuk
Future of Paragraphs: Discussion
- Why can’t we use Header and
Footer as a separate
paragraphs?
- Can we build our new sites only
with paragraphs?
- How we can resolve paragraph
reusability issue in general?
* Image was taken from:
https://www.slideshare.net/pvhee/building-redno
sedaycom-on-drupal-8
Questions?
Are you going to use Paragraphs?
Thanks!
abzats.com/kiev17.pdf
Appendix:
slides that includes mores specific information for the
references
Is there way to make paragraphs filed more friendly?
Improve user experience with Paragraphs on Drupal 8:
https://www.flocondetoile.fr/blog/improve-user-experience-paragraphs-drupal-8
What is a Landing Page?
https://en.wikipedia.org/wiki/Landing_page
It’s a single web page that appears in response to clicking on a search engine
optimized search result or an online advertisement or we can put URL of this page
on Billboard or to any other offline ad.
The general goal of a landing page is to convert page visitors into sales or leads.
Types of landing pages:
- Reference (It presents information that is relevant to the visitor request: text, images, etc.)
- Transactional (There is a form on the page. Its goal is to convert the visitor into a customer.)

More Related Content

What's hot

Development Workflow Tools for Open-Source PHP Libraries
Development Workflow Tools for Open-Source PHP LibrariesDevelopment Workflow Tools for Open-Source PHP Libraries
Development Workflow Tools for Open-Source PHP Libraries
Pantheon
 
Composer & Drupal
Composer & DrupalComposer & Drupal
Composer & Drupal
drubb
 
The Workflow Methodology to Train Your Team on Drupal 8
The Workflow Methodology to Train Your Team on Drupal 8The Workflow Methodology to Train Your Team on Drupal 8
The Workflow Methodology to Train Your Team on Drupal 8
Acquia
 
Learn How to Use Atomic Design to Make Your Site Manageable and Adaptable
Learn How to Use Atomic Design to Make Your Site Manageable and AdaptableLearn How to Use Atomic Design to Make Your Site Manageable and Adaptable
Learn How to Use Atomic Design to Make Your Site Manageable and Adaptable
Acquia
 
Introduction to Composer for Drupal
Introduction to Composer for DrupalIntroduction to Composer for Drupal
Introduction to Composer for Drupal
Luc Bézier
 
Building mobile applications with DrupalGap
Building mobile applications with DrupalGapBuilding mobile applications with DrupalGap
Building mobile applications with DrupalGap
Alex S
 
Problemen oplossen in Joomla - Joomladagen 2014
Problemen oplossen in Joomla - Joomladagen 2014Problemen oplossen in Joomla - Joomladagen 2014
Problemen oplossen in Joomla - Joomladagen 2014
Peter Martin
 
Views plugins-in-d7-and-d8
Views plugins-in-d7-and-d8Views plugins-in-d7-and-d8
Views plugins-in-d7-and-d8
Frank Holldorff
 
Drupal 8 Configuration Management for you and your team
Drupal 8 Configuration Management for you and your teamDrupal 8 Configuration Management for you and your team
Drupal 8 Configuration Management for you and your team
Luc Bézier
 
Migration from Drupal 7 to Drupal 8 - How Docker can save our lives!
Migration from Drupal 7 to Drupal 8 - How Docker can save our lives!Migration from Drupal 7 to Drupal 8 - How Docker can save our lives!
Migration from Drupal 7 to Drupal 8 - How Docker can save our lives!
DrupalCamp Kyiv
 
Upgrading to Drupal 9
Upgrading to Drupal 9Upgrading to Drupal 9
Upgrading to Drupal 9
DrupalCamp Kyiv
 
Let's Take Drupal Offline!
Let's Take Drupal Offline!Let's Take Drupal Offline!
Let's Take Drupal Offline!
Dick Olsson
 
Drupal Presentation for CapitalCamp 2011: Features Driven Development
Drupal Presentation for CapitalCamp 2011: Features Driven DevelopmentDrupal Presentation for CapitalCamp 2011: Features Driven Development
Drupal Presentation for CapitalCamp 2011: Features Driven Development
Mediacurrent
 
How to outsource the pain of drupal translation to smartling from loparev
How to outsource the pain of drupal translation to smartling from loparevHow to outsource the pain of drupal translation to smartling from loparev
How to outsource the pain of drupal translation to smartling from loparev
Oleksii Bogush
 
[drupalday2017] - Speed-up your Drupal instance!
[drupalday2017] - Speed-up your Drupal instance![drupalday2017] - Speed-up your Drupal instance!
[drupalday2017] - Speed-up your Drupal instance!
DrupalDay
 
Introduction to Module Development (Drupal 7)
Introduction to Module Development (Drupal 7)Introduction to Module Development (Drupal 7)
Introduction to Module Development (Drupal 7)
April Sides
 
Polymer presentation in Google HQ
Polymer presentation in Google HQPolymer presentation in Google HQ
Polymer presentation in Google HQ
Harshit Pandey
 
Managing drupal views in code
Managing drupal views in codeManaging drupal views in code
Managing drupal views in code
Adolfo Nasol
 
Creating Extensible Plugins for WordPress
Creating Extensible Plugins for WordPressCreating Extensible Plugins for WordPress
Creating Extensible Plugins for WordPressHristo Chakarov
 
Drupal 8 HTML5 Initiative
Drupal 8 HTML5 InitiativeDrupal 8 HTML5 Initiative
Drupal 8 HTML5 InitiativeJacine Luisi
 

What's hot (20)

Development Workflow Tools for Open-Source PHP Libraries
Development Workflow Tools for Open-Source PHP LibrariesDevelopment Workflow Tools for Open-Source PHP Libraries
Development Workflow Tools for Open-Source PHP Libraries
 
Composer & Drupal
Composer & DrupalComposer & Drupal
Composer & Drupal
 
The Workflow Methodology to Train Your Team on Drupal 8
The Workflow Methodology to Train Your Team on Drupal 8The Workflow Methodology to Train Your Team on Drupal 8
The Workflow Methodology to Train Your Team on Drupal 8
 
Learn How to Use Atomic Design to Make Your Site Manageable and Adaptable
Learn How to Use Atomic Design to Make Your Site Manageable and AdaptableLearn How to Use Atomic Design to Make Your Site Manageable and Adaptable
Learn How to Use Atomic Design to Make Your Site Manageable and Adaptable
 
Introduction to Composer for Drupal
Introduction to Composer for DrupalIntroduction to Composer for Drupal
Introduction to Composer for Drupal
 
Building mobile applications with DrupalGap
Building mobile applications with DrupalGapBuilding mobile applications with DrupalGap
Building mobile applications with DrupalGap
 
Problemen oplossen in Joomla - Joomladagen 2014
Problemen oplossen in Joomla - Joomladagen 2014Problemen oplossen in Joomla - Joomladagen 2014
Problemen oplossen in Joomla - Joomladagen 2014
 
Views plugins-in-d7-and-d8
Views plugins-in-d7-and-d8Views plugins-in-d7-and-d8
Views plugins-in-d7-and-d8
 
Drupal 8 Configuration Management for you and your team
Drupal 8 Configuration Management for you and your teamDrupal 8 Configuration Management for you and your team
Drupal 8 Configuration Management for you and your team
 
Migration from Drupal 7 to Drupal 8 - How Docker can save our lives!
Migration from Drupal 7 to Drupal 8 - How Docker can save our lives!Migration from Drupal 7 to Drupal 8 - How Docker can save our lives!
Migration from Drupal 7 to Drupal 8 - How Docker can save our lives!
 
Upgrading to Drupal 9
Upgrading to Drupal 9Upgrading to Drupal 9
Upgrading to Drupal 9
 
Let's Take Drupal Offline!
Let's Take Drupal Offline!Let's Take Drupal Offline!
Let's Take Drupal Offline!
 
Drupal Presentation for CapitalCamp 2011: Features Driven Development
Drupal Presentation for CapitalCamp 2011: Features Driven DevelopmentDrupal Presentation for CapitalCamp 2011: Features Driven Development
Drupal Presentation for CapitalCamp 2011: Features Driven Development
 
How to outsource the pain of drupal translation to smartling from loparev
How to outsource the pain of drupal translation to smartling from loparevHow to outsource the pain of drupal translation to smartling from loparev
How to outsource the pain of drupal translation to smartling from loparev
 
[drupalday2017] - Speed-up your Drupal instance!
[drupalday2017] - Speed-up your Drupal instance![drupalday2017] - Speed-up your Drupal instance!
[drupalday2017] - Speed-up your Drupal instance!
 
Introduction to Module Development (Drupal 7)
Introduction to Module Development (Drupal 7)Introduction to Module Development (Drupal 7)
Introduction to Module Development (Drupal 7)
 
Polymer presentation in Google HQ
Polymer presentation in Google HQPolymer presentation in Google HQ
Polymer presentation in Google HQ
 
Managing drupal views in code
Managing drupal views in codeManaging drupal views in code
Managing drupal views in code
 
Creating Extensible Plugins for WordPress
Creating Extensible Plugins for WordPressCreating Extensible Plugins for WordPress
Creating Extensible Plugins for WordPress
 
Drupal 8 HTML5 Initiative
Drupal 8 HTML5 InitiativeDrupal 8 HTML5 Initiative
Drupal 8 HTML5 Initiative
 

Similar to "Paragraphs are more powerful than you can expect" from Vasily Jaremchuk for DrupalCamp Kyiv 2017

Using Features
Using FeaturesUsing Features
Using Features
Alexandru Badiu
 
Drupal training-by-ruchiwebsolutions
Drupal training-by-ruchiwebsolutionsDrupal training-by-ruchiwebsolutions
Drupal training-by-ruchiwebsolutions
php2ranjan
 
Beginner's guide to drupal
Beginner's guide to drupalBeginner's guide to drupal
Beginner's guide to drupal
mayank.grd
 
Intro to Theming Drupal, FOSSLC Summer Camp 2010
Intro to Theming Drupal, FOSSLC Summer Camp 2010Intro to Theming Drupal, FOSSLC Summer Camp 2010
Intro to Theming Drupal, FOSSLC Summer Camp 2010Emma Jane Hogbin Westby
 
ViA Bootstrap 4
ViA Bootstrap 4ViA Bootstrap 4
ViA Bootstrap 4
imdurgesh
 
Paragraphs at drupal 8.
Paragraphs at drupal 8.Paragraphs at drupal 8.
Paragraphs at drupal 8.
Anatoliy Polyakov
 
Drupaldelphia 2013 Presentation- Making Your Site more Friendly to Search Eng...
Drupaldelphia 2013 Presentation- Making Your Site more Friendly to Search Eng...Drupaldelphia 2013 Presentation- Making Your Site more Friendly to Search Eng...
Drupaldelphia 2013 Presentation- Making Your Site more Friendly to Search Eng...
Anson Han
 
How to Webpack your Django!
How to Webpack your Django!How to Webpack your Django!
How to Webpack your Django!
David Gibbons
 
Advanced WordPress Optimization - iGaming Supershow 2012
Advanced WordPress Optimization - iGaming Supershow 2012Advanced WordPress Optimization - iGaming Supershow 2012
Advanced WordPress Optimization - iGaming Supershow 2012
Bastian Grimm
 
Introduction to Drupal, Wayne Eaker, Nov 11, 09
Introduction to Drupal, Wayne Eaker, Nov 11, 09 Introduction to Drupal, Wayne Eaker, Nov 11, 09
Introduction to Drupal, Wayne Eaker, Nov 11, 09
Lunch Ann Arbor Marketing
 
Writing your own WordPress themes and plugins
Writing your own WordPress themes and pluginsWriting your own WordPress themes and plugins
Writing your own WordPress themes and plugins
Stephanie Wells
 
Chennai Drupal Meet
Chennai Drupal MeetChennai Drupal Meet
Chennai Drupal Meet
sivaji2009
 
6 Special Howtos for Drupal
6 Special Howtos for Drupal6 Special Howtos for Drupal
6 Special Howtos for DrupalWingston
 
Panels - Drupal Gov Con 2016
Panels - Drupal Gov Con 2016Panels - Drupal Gov Con 2016
Panels - Drupal Gov Con 2016
Jason Glisson
 
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Mack Hardy
 
WordCamp Greenville 2018 - Beware the Dark Side, or an Intro to Development
WordCamp Greenville 2018 - Beware the Dark Side, or an Intro to DevelopmentWordCamp Greenville 2018 - Beware the Dark Side, or an Intro to Development
WordCamp Greenville 2018 - Beware the Dark Side, or an Intro to Development
Evan Mullins
 
Zend_Layout & Zend_View Enhancements
Zend_Layout & Zend_View EnhancementsZend_Layout & Zend_View Enhancements
Zend_Layout & Zend_View EnhancementsRalph Schindler
 
Introduction To Drupal
Introduction To DrupalIntroduction To Drupal
Introduction To DrupalLauren Roth
 
Drupal Theme Development - DrupalCon Chicago 2011
Drupal Theme Development - DrupalCon Chicago 2011Drupal Theme Development - DrupalCon Chicago 2011
Drupal Theme Development - DrupalCon Chicago 2011
Ryan Price
 

Similar to "Paragraphs are more powerful than you can expect" from Vasily Jaremchuk for DrupalCamp Kyiv 2017 (20)

Using Features
Using FeaturesUsing Features
Using Features
 
Drupal training-by-ruchiwebsolutions
Drupal training-by-ruchiwebsolutionsDrupal training-by-ruchiwebsolutions
Drupal training-by-ruchiwebsolutions
 
Beginner's guide to drupal
Beginner's guide to drupalBeginner's guide to drupal
Beginner's guide to drupal
 
Intro to Theming Drupal, FOSSLC Summer Camp 2010
Intro to Theming Drupal, FOSSLC Summer Camp 2010Intro to Theming Drupal, FOSSLC Summer Camp 2010
Intro to Theming Drupal, FOSSLC Summer Camp 2010
 
ViA Bootstrap 4
ViA Bootstrap 4ViA Bootstrap 4
ViA Bootstrap 4
 
Paragraphs at drupal 8.
Paragraphs at drupal 8.Paragraphs at drupal 8.
Paragraphs at drupal 8.
 
Drupaldelphia 2013 Presentation- Making Your Site more Friendly to Search Eng...
Drupaldelphia 2013 Presentation- Making Your Site more Friendly to Search Eng...Drupaldelphia 2013 Presentation- Making Your Site more Friendly to Search Eng...
Drupaldelphia 2013 Presentation- Making Your Site more Friendly to Search Eng...
 
Design to Theme @ CMSExpo
Design to Theme @ CMSExpoDesign to Theme @ CMSExpo
Design to Theme @ CMSExpo
 
How to Webpack your Django!
How to Webpack your Django!How to Webpack your Django!
How to Webpack your Django!
 
Advanced WordPress Optimization - iGaming Supershow 2012
Advanced WordPress Optimization - iGaming Supershow 2012Advanced WordPress Optimization - iGaming Supershow 2012
Advanced WordPress Optimization - iGaming Supershow 2012
 
Introduction to Drupal, Wayne Eaker, Nov 11, 09
Introduction to Drupal, Wayne Eaker, Nov 11, 09 Introduction to Drupal, Wayne Eaker, Nov 11, 09
Introduction to Drupal, Wayne Eaker, Nov 11, 09
 
Writing your own WordPress themes and plugins
Writing your own WordPress themes and pluginsWriting your own WordPress themes and plugins
Writing your own WordPress themes and plugins
 
Chennai Drupal Meet
Chennai Drupal MeetChennai Drupal Meet
Chennai Drupal Meet
 
6 Special Howtos for Drupal
6 Special Howtos for Drupal6 Special Howtos for Drupal
6 Special Howtos for Drupal
 
Panels - Drupal Gov Con 2016
Panels - Drupal Gov Con 2016Panels - Drupal Gov Con 2016
Panels - Drupal Gov Con 2016
 
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
Strategies and Tips for Building Enterprise Drupal Applications - PNWDS 2013
 
WordCamp Greenville 2018 - Beware the Dark Side, or an Intro to Development
WordCamp Greenville 2018 - Beware the Dark Side, or an Intro to DevelopmentWordCamp Greenville 2018 - Beware the Dark Side, or an Intro to Development
WordCamp Greenville 2018 - Beware the Dark Side, or an Intro to Development
 
Zend_Layout & Zend_View Enhancements
Zend_Layout & Zend_View EnhancementsZend_Layout & Zend_View Enhancements
Zend_Layout & Zend_View Enhancements
 
Introduction To Drupal
Introduction To DrupalIntroduction To Drupal
Introduction To Drupal
 
Drupal Theme Development - DrupalCon Chicago 2011
Drupal Theme Development - DrupalCon Chicago 2011Drupal Theme Development - DrupalCon Chicago 2011
Drupal Theme Development - DrupalCon Chicago 2011
 

More from DrupalCamp Kyiv

Speed up the site building with Drupal's Bootstrap Layout Builder
Speed up the site building with Drupal's Bootstrap Layout BuilderSpeed up the site building with Drupal's Bootstrap Layout Builder
Speed up the site building with Drupal's Bootstrap Layout Builder
DrupalCamp Kyiv
 
Performance Monitoring with Google Lighthouse
Performance Monitoring with Google LighthousePerformance Monitoring with Google Lighthouse
Performance Monitoring with Google Lighthouse
DrupalCamp Kyiv
 
Oleg Bogut - Decoupled Drupal: how to build stable solution with JSON:API, Re...
Oleg Bogut - Decoupled Drupal: how to build stable solution with JSON:API, Re...Oleg Bogut - Decoupled Drupal: how to build stable solution with JSON:API, Re...
Oleg Bogut - Decoupled Drupal: how to build stable solution with JSON:API, Re...
DrupalCamp Kyiv
 
Acquia BLT for the Win, or How to speed up the project setup, development an...
Acquia BLT for the Win, or  How to speed up the project setup, development an...Acquia BLT for the Win, or  How to speed up the project setup, development an...
Acquia BLT for the Win, or How to speed up the project setup, development an...
DrupalCamp Kyiv
 
THE INTERNET OF THINGS IS GETTING REAL
THE INTERNET OF THINGS IS GETTING REALTHE INTERNET OF THINGS IS GETTING REAL
THE INTERNET OF THINGS IS GETTING REAL
DrupalCamp Kyiv
 
FRONT-END COMPONENTS IN DRUPAL THEME. "KAIZEN" - DRUPAL 8 THEME FROM SKILLD
FRONT-END COMPONENTS IN DRUPAL THEME. "KAIZEN" - DRUPAL 8 THEME FROM SKILLDFRONT-END COMPONENTS IN DRUPAL THEME. "KAIZEN" - DRUPAL 8 THEME FROM SKILLD
FRONT-END COMPONENTS IN DRUPAL THEME. "KAIZEN" - DRUPAL 8 THEME FROM SKILLD
DrupalCamp Kyiv
 
DRUPAL AND ELASTICSEARCH
DRUPAL AND ELASTICSEARCHDRUPAL AND ELASTICSEARCH
DRUPAL AND ELASTICSEARCH
DrupalCamp Kyiv
 
WHAT WE LEARNED FROM OPEN SOCIAL IN 3 YEARS, MOVING FROM AN AGENCY TO A PRODU...
WHAT WE LEARNED FROM OPEN SOCIAL IN 3 YEARS, MOVING FROM AN AGENCY TO A PRODU...WHAT WE LEARNED FROM OPEN SOCIAL IN 3 YEARS, MOVING FROM AN AGENCY TO A PRODU...
WHAT WE LEARNED FROM OPEN SOCIAL IN 3 YEARS, MOVING FROM AN AGENCY TO A PRODU...
DrupalCamp Kyiv
 
Blackfire Workshop
Blackfire WorkshopBlackfire Workshop
Blackfire Workshop
DrupalCamp Kyiv
 
DRUPAL 8 STORAGES OVERVIEW
DRUPAL 8 STORAGES OVERVIEWDRUPAL 8 STORAGES OVERVIEW
DRUPAL 8 STORAGES OVERVIEW
DrupalCamp Kyiv
 
ONE MORE TIME ABOUT CODE STANDARDS AND BEST PRACTICES
ONE MORE TIME ABOUT CODE STANDARDS AND BEST PRACTICESONE MORE TIME ABOUT CODE STANDARDS AND BEST PRACTICES
ONE MORE TIME ABOUT CODE STANDARDS AND BEST PRACTICES
DrupalCamp Kyiv
 
1-1 MEETING: STEP-BY-STEP-HOW-TO
1-1 MEETING: STEP-BY-STEP-HOW-TO1-1 MEETING: STEP-BY-STEP-HOW-TO
1-1 MEETING: STEP-BY-STEP-HOW-TO
DrupalCamp Kyiv
 
UX DURING MODULE INSTALLATION AND CONFIGURATION
UX DURING MODULE INSTALLATION AND CONFIGURATIONUX DURING MODULE INSTALLATION AND CONFIGURATION
UX DURING MODULE INSTALLATION AND CONFIGURATION
DrupalCamp Kyiv
 
SWITCHING FROM QA ENGINEER TO PROJECT MANAGER - LEVEL UP OR DOWN?
SWITCHING FROM QA ENGINEER TO PROJECT MANAGER - LEVEL UP OR DOWN?SWITCHING FROM QA ENGINEER TO PROJECT MANAGER - LEVEL UP OR DOWN?
SWITCHING FROM QA ENGINEER TO PROJECT MANAGER - LEVEL UP OR DOWN?
DrupalCamp Kyiv
 
TECHNOLOGIES-POWERED WEB AND THE POST-BROWSER ERA
TECHNOLOGIES-POWERED WEB AND THE POST-BROWSER ERATECHNOLOGIES-POWERED WEB AND THE POST-BROWSER ERA
TECHNOLOGIES-POWERED WEB AND THE POST-BROWSER ERA
DrupalCamp Kyiv
 
PROTECTED CONTENT: END-TO-END PGP ENCRYPTION FOR DRUPAL
PROTECTED CONTENT: END-TO-END PGP ENCRYPTION FOR DRUPALPROTECTED CONTENT: END-TO-END PGP ENCRYPTION FOR DRUPAL
PROTECTED CONTENT: END-TO-END PGP ENCRYPTION FOR DRUPAL
DrupalCamp Kyiv
 
DRUPAL AUDITS MADE FASTR
DRUPAL AUDITS MADE FASTRDRUPAL AUDITS MADE FASTR
DRUPAL AUDITS MADE FASTR
DrupalCamp Kyiv
 
FROM DISTRO TO CUSTOM - HOW WE CREATE GREAT COMMUNITIES FOR EVERY ORGANIZATIO...
FROM DISTRO TO CUSTOM - HOW WE CREATE GREAT COMMUNITIES FOR EVERY ORGANIZATIO...FROM DISTRO TO CUSTOM - HOW WE CREATE GREAT COMMUNITIES FOR EVERY ORGANIZATIO...
FROM DISTRO TO CUSTOM - HOW WE CREATE GREAT COMMUNITIES FOR EVERY ORGANIZATIO...
DrupalCamp Kyiv
 
SEARCH API: TIPS AND TRICKS - FROM BEGINNING TO CUSTOM SOLUTIONS
SEARCH API: TIPS AND TRICKS - FROM BEGINNING TO CUSTOM SOLUTIONSSEARCH API: TIPS AND TRICKS - FROM BEGINNING TO CUSTOM SOLUTIONS
SEARCH API: TIPS AND TRICKS - FROM BEGINNING TO CUSTOM SOLUTIONS
DrupalCamp Kyiv
 
DEVOPS & THE DEATH AND REBIRTH OF CHILDHOOD INNOCENCE
DEVOPS & THE DEATH AND REBIRTH OF CHILDHOOD INNOCENCEDEVOPS & THE DEATH AND REBIRTH OF CHILDHOOD INNOCENCE
DEVOPS & THE DEATH AND REBIRTH OF CHILDHOOD INNOCENCE
DrupalCamp Kyiv
 

More from DrupalCamp Kyiv (20)

Speed up the site building with Drupal's Bootstrap Layout Builder
Speed up the site building with Drupal's Bootstrap Layout BuilderSpeed up the site building with Drupal's Bootstrap Layout Builder
Speed up the site building with Drupal's Bootstrap Layout Builder
 
Performance Monitoring with Google Lighthouse
Performance Monitoring with Google LighthousePerformance Monitoring with Google Lighthouse
Performance Monitoring with Google Lighthouse
 
Oleg Bogut - Decoupled Drupal: how to build stable solution with JSON:API, Re...
Oleg Bogut - Decoupled Drupal: how to build stable solution with JSON:API, Re...Oleg Bogut - Decoupled Drupal: how to build stable solution with JSON:API, Re...
Oleg Bogut - Decoupled Drupal: how to build stable solution with JSON:API, Re...
 
Acquia BLT for the Win, or How to speed up the project setup, development an...
Acquia BLT for the Win, or  How to speed up the project setup, development an...Acquia BLT for the Win, or  How to speed up the project setup, development an...
Acquia BLT for the Win, or How to speed up the project setup, development an...
 
THE INTERNET OF THINGS IS GETTING REAL
THE INTERNET OF THINGS IS GETTING REALTHE INTERNET OF THINGS IS GETTING REAL
THE INTERNET OF THINGS IS GETTING REAL
 
FRONT-END COMPONENTS IN DRUPAL THEME. "KAIZEN" - DRUPAL 8 THEME FROM SKILLD
FRONT-END COMPONENTS IN DRUPAL THEME. "KAIZEN" - DRUPAL 8 THEME FROM SKILLDFRONT-END COMPONENTS IN DRUPAL THEME. "KAIZEN" - DRUPAL 8 THEME FROM SKILLD
FRONT-END COMPONENTS IN DRUPAL THEME. "KAIZEN" - DRUPAL 8 THEME FROM SKILLD
 
DRUPAL AND ELASTICSEARCH
DRUPAL AND ELASTICSEARCHDRUPAL AND ELASTICSEARCH
DRUPAL AND ELASTICSEARCH
 
WHAT WE LEARNED FROM OPEN SOCIAL IN 3 YEARS, MOVING FROM AN AGENCY TO A PRODU...
WHAT WE LEARNED FROM OPEN SOCIAL IN 3 YEARS, MOVING FROM AN AGENCY TO A PRODU...WHAT WE LEARNED FROM OPEN SOCIAL IN 3 YEARS, MOVING FROM AN AGENCY TO A PRODU...
WHAT WE LEARNED FROM OPEN SOCIAL IN 3 YEARS, MOVING FROM AN AGENCY TO A PRODU...
 
Blackfire Workshop
Blackfire WorkshopBlackfire Workshop
Blackfire Workshop
 
DRUPAL 8 STORAGES OVERVIEW
DRUPAL 8 STORAGES OVERVIEWDRUPAL 8 STORAGES OVERVIEW
DRUPAL 8 STORAGES OVERVIEW
 
ONE MORE TIME ABOUT CODE STANDARDS AND BEST PRACTICES
ONE MORE TIME ABOUT CODE STANDARDS AND BEST PRACTICESONE MORE TIME ABOUT CODE STANDARDS AND BEST PRACTICES
ONE MORE TIME ABOUT CODE STANDARDS AND BEST PRACTICES
 
1-1 MEETING: STEP-BY-STEP-HOW-TO
1-1 MEETING: STEP-BY-STEP-HOW-TO1-1 MEETING: STEP-BY-STEP-HOW-TO
1-1 MEETING: STEP-BY-STEP-HOW-TO
 
UX DURING MODULE INSTALLATION AND CONFIGURATION
UX DURING MODULE INSTALLATION AND CONFIGURATIONUX DURING MODULE INSTALLATION AND CONFIGURATION
UX DURING MODULE INSTALLATION AND CONFIGURATION
 
SWITCHING FROM QA ENGINEER TO PROJECT MANAGER - LEVEL UP OR DOWN?
SWITCHING FROM QA ENGINEER TO PROJECT MANAGER - LEVEL UP OR DOWN?SWITCHING FROM QA ENGINEER TO PROJECT MANAGER - LEVEL UP OR DOWN?
SWITCHING FROM QA ENGINEER TO PROJECT MANAGER - LEVEL UP OR DOWN?
 
TECHNOLOGIES-POWERED WEB AND THE POST-BROWSER ERA
TECHNOLOGIES-POWERED WEB AND THE POST-BROWSER ERATECHNOLOGIES-POWERED WEB AND THE POST-BROWSER ERA
TECHNOLOGIES-POWERED WEB AND THE POST-BROWSER ERA
 
PROTECTED CONTENT: END-TO-END PGP ENCRYPTION FOR DRUPAL
PROTECTED CONTENT: END-TO-END PGP ENCRYPTION FOR DRUPALPROTECTED CONTENT: END-TO-END PGP ENCRYPTION FOR DRUPAL
PROTECTED CONTENT: END-TO-END PGP ENCRYPTION FOR DRUPAL
 
DRUPAL AUDITS MADE FASTR
DRUPAL AUDITS MADE FASTRDRUPAL AUDITS MADE FASTR
DRUPAL AUDITS MADE FASTR
 
FROM DISTRO TO CUSTOM - HOW WE CREATE GREAT COMMUNITIES FOR EVERY ORGANIZATIO...
FROM DISTRO TO CUSTOM - HOW WE CREATE GREAT COMMUNITIES FOR EVERY ORGANIZATIO...FROM DISTRO TO CUSTOM - HOW WE CREATE GREAT COMMUNITIES FOR EVERY ORGANIZATIO...
FROM DISTRO TO CUSTOM - HOW WE CREATE GREAT COMMUNITIES FOR EVERY ORGANIZATIO...
 
SEARCH API: TIPS AND TRICKS - FROM BEGINNING TO CUSTOM SOLUTIONS
SEARCH API: TIPS AND TRICKS - FROM BEGINNING TO CUSTOM SOLUTIONSSEARCH API: TIPS AND TRICKS - FROM BEGINNING TO CUSTOM SOLUTIONS
SEARCH API: TIPS AND TRICKS - FROM BEGINNING TO CUSTOM SOLUTIONS
 
DEVOPS & THE DEATH AND REBIRTH OF CHILDHOOD INNOCENCE
DEVOPS & THE DEATH AND REBIRTH OF CHILDHOOD INNOCENCEDEVOPS & THE DEATH AND REBIRTH OF CHILDHOOD INNOCENCE
DEVOPS & THE DEATH AND REBIRTH OF CHILDHOOD INNOCENCE
 

Recently uploaded

BASIC C++ lecture NOTE C++ lecture 3.pptx
BASIC C++ lecture NOTE C++ lecture 3.pptxBASIC C++ lecture NOTE C++ lecture 3.pptx
BASIC C++ lecture NOTE C++ lecture 3.pptx
natyesu
 
This 7-second Brain Wave Ritual Attracts Money To You.!
This 7-second Brain Wave Ritual Attracts Money To You.!This 7-second Brain Wave Ritual Attracts Money To You.!
This 7-second Brain Wave Ritual Attracts Money To You.!
nirahealhty
 
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
3ipehhoa
 
Output determination SAP S4 HANA SAP SD CC
Output determination SAP S4 HANA SAP SD CCOutput determination SAP S4 HANA SAP SD CC
Output determination SAP S4 HANA SAP SD CC
ShahulHameed54211
 
guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...
Rogerio Filho
 
Latest trends in computer networking.pptx
Latest trends in computer networking.pptxLatest trends in computer networking.pptx
Latest trends in computer networking.pptx
JungkooksNonexistent
 
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shopHistory+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
laozhuseo02
 
The+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptxThe+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptx
laozhuseo02
 
Living-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptx
Living-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptxLiving-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptx
Living-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptx
TristanJasperRamos
 
How to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptxHow to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptx
Gal Baras
 
ER(Entity Relationship) Diagram for online shopping - TAE
ER(Entity Relationship) Diagram for online shopping - TAEER(Entity Relationship) Diagram for online shopping - TAE
ER(Entity Relationship) Diagram for online shopping - TAE
Himani415946
 
1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...
JeyaPerumal1
 
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
3ipehhoa
 
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
3ipehhoa
 
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and GuidelinesMulti-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Sanjeev Rampal
 
test test test test testtest test testtest test testtest test testtest test ...
test test  test test testtest test testtest test testtest test testtest test ...test test  test test testtest test testtest test testtest test testtest test ...
test test test test testtest test testtest test testtest test testtest test ...
Arif0071
 

Recently uploaded (16)

BASIC C++ lecture NOTE C++ lecture 3.pptx
BASIC C++ lecture NOTE C++ lecture 3.pptxBASIC C++ lecture NOTE C++ lecture 3.pptx
BASIC C++ lecture NOTE C++ lecture 3.pptx
 
This 7-second Brain Wave Ritual Attracts Money To You.!
This 7-second Brain Wave Ritual Attracts Money To You.!This 7-second Brain Wave Ritual Attracts Money To You.!
This 7-second Brain Wave Ritual Attracts Money To You.!
 
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
 
Output determination SAP S4 HANA SAP SD CC
Output determination SAP S4 HANA SAP SD CCOutput determination SAP S4 HANA SAP SD CC
Output determination SAP S4 HANA SAP SD CC
 
guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...
 
Latest trends in computer networking.pptx
Latest trends in computer networking.pptxLatest trends in computer networking.pptx
Latest trends in computer networking.pptx
 
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shopHistory+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
 
The+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptxThe+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptx
 
Living-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptx
Living-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptxLiving-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptx
Living-in-IT-era-Module-7-Imaging-and-Design-for-Social-Impact.pptx
 
How to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptxHow to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptx
 
ER(Entity Relationship) Diagram for online shopping - TAE
ER(Entity Relationship) Diagram for online shopping - TAEER(Entity Relationship) Diagram for online shopping - TAE
ER(Entity Relationship) Diagram for online shopping - TAE
 
1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...
 
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
 
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
 
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and GuidelinesMulti-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
 
test test test test testtest test testtest test testtest test testtest test ...
test test  test test testtest test testtest test testtest test testtest test ...test test  test test testtest test testtest test testtest test testtest test ...
test test test test testtest test testtest test testtest test testtest test ...
 

"Paragraphs are more powerful than you can expect" from Vasily Jaremchuk for DrupalCamp Kyiv 2017

  • 1. Paragraphs are more powerful than you can expect abzats.com/kiev17.pdf
  • 2. Vasily Yaremchuk Senior Drupal Developer, Drupal Practice Lead vasilyyaremchuk https://www.drupal.org/u/yaremchuk http://abzats.com https://speedandfunction.com
  • 3. The main challenge of my presentation is to inspire you to use Paragraphs in your Drupal sites and enjoy the Paragraphs
  • 4. Presentation Plan 1. Quick DEMO to attract the audience. 2. Architecture of Paragraphs. 3. Paragraphs vs Fields vs Panels vs Embedded Entities vs Panalizer vs ECK vs WYSIWYG vs Bricks etc. 4. Strong Points of Paragraphs 5. Several Contributed modules that improve Paragraphs approach. DEMO 6. My contribution (Paragraphs LandingPage Framework), roadmap, ideas and cooperation request. DEMO 7. Future of Paragraphs: Quick discussion. 8. Questions.
  • 6. What is Paragraphs? Paragraphs is an Entity Reference field type with Revision support There is a basic demo on http://paragraphs.site-showcase.com Project page: https://www.drupal.org/project/paragraphs The key dependency is Entity Reference Revisions (https://www.drupal.org/project/entity_reference_revisions) See also “Introduction to the Paragraphs Module in Drupal 8” video by Ivan Zugec: https://www.youtube.com/watch?v=Fy9s01T30uo https://vimeo.com/197252633
  • 7. We can get everything that we have in Drupal inside a paragraph! All stuff that we can display with Drupal fields we can have inside the paragraph. Take a look for example on Contact Formatter module https://www.drupal.org/project/contact_formatter Also it can be views, maps, blocks, etc.
  • 8. Paragraphs Template Suggestions https://www.drupal.org/node/2444893 (D8) The default paragraphs template is paragraph.html.twig. It uses theme suggestions for overwriting the template: ● paragraph--[VIEW-MODE].html.twig ● paragraph--[BUNDLE-NAME].html.twig ● paragraph--[BUNDLE-NAME]--[VIEW-MODE].html.twig e.g.: ● paragraph--default.html.twig ● paragraph--image.html.twig ● paragraph--image--default.html.twig We have extremely high customisation flexibility on template level! ● We can use different markup for different paragraph types ● We can use different markup for the paragraphs of one type with different view modes
  • 9. "As a site admin, I want to be able to add different types of content chunks on any page with customisable backgrounds, so that we have control over the style and layout of our website" - Mark Conroy https://www.annertech.com/blog/drupal-panels-panelizer-paragraphs-fieldable-panel-panes The main goal
  • 10. Paragraphs vs Fields - Paragraphs are reorderable! We can do the same page with native Drupal fields but for the next page with the new order of content blocks we have to set new content type or new view mode*. _________ * https://www.drupal.org/project/entity_view_mode https://www.drupal.org/project/entity_display_field https://github.com/vasilyyaremchuk/entity_display_field https://www.drupal.org/project/ds
  • 11. More complex approaches: difference in architecture Entity Reference Entity Embedded Paragraphs Panelizer See http://www.mediacurrent.com/blog/editorial-workflow-head-head-paragraphs-vs-entity-embed-vs-panelizer
  • 12. Entity Embedded: widgets in WYSIWYG By the way, there was a presentation in Lviv DrupalCamp 2016 “CKEditor 4 widget plugins & Drupal8” by Андрій Тюпа https://www.drupal.org/project/ ckeditor_widgets http://margotskapacs.com/201 4/05/adding-ckeditor-plugins-m anually-in-drupal/ http://valuebound.com/resourc es/blog/how-to-enhance-your- content-authoring-by-adding-c ustom-ckeditor-plugin-drupal-8 https://www.drupal.org/project/l anding_page (there is only dev Drupal 8 version)
  • 13. Paragraphs vs Panelizer Panelizer (Drupal Tutorial): https://www.youtube.com/watch?v=YsLEWuJUZwc Image was taken from http://www.mediacurrent.com/blog/editorial-workflow-head-head-paragraphs-vs-entity-embed-vs-panelizer
  • 14. Bricks (nested Entities) https://www.drupal.org/project/bricks Bricks based on ECK (Entity Construction Kit) approach, there is good discussion ECK vs Paragraphs in: https://www.chapterthree.com/blog/paragr aphs-vs-eck-drupal-8 The main conclusion: - Bricks are reusable (strong point) - Bricks don’t have revisions (weak point)
  • 15. References on comparison different approaches http://www.mediacurrent.com/blog/editorial-workflow-head-head-paragraphs-vs-entity-embed-vs-panelizer https://www.chapterthree.com/blog/paragraphs-vs-eck-drupal-8 https://www.annertech.com/blog/drupal-panels-panelizer-paragraphs-fieldable-panel-panes https://nedcamp.org/new-england-drupal-camp/sessions/editorial-process-head-head-paragraphs-vs-entit y-embed-vs-panelizer https://gist.github.com/nadavoid/d510440ed59f9878e47d8ff0027df1e5
  • 16. Strong Points of Paragraphs out of Box - We can include any existing functionality inside a paragraph - We use only the paragraphs that require for the current page and avoid empty fields - We can cover our needs by minimal number of content types (maybe even 1) - Paragraphs are reorderable! - We can include one paragraph into another one, there is no limitation in that recursion - We can collapsed single paragraph edit form inside node edit form, to get it a bit simpler What features can be improved by contributed modules?
  • 17. Contributed modules that improve Paragraphs approach Classy paragraphs (https://www.drupal.org/project/classy_paragraphs) Paragraphs Previewer (https://www.drupal.org/project/paragraphs_previewer) Paragraphs Edit (https://www.drupal.org/project/paragraphs_edit) Geysir (https://www.drupal.org/project/geysir) Bootstrap Paragraphs (https://www.drupal.org/project/bootstrap_paragraphs) Parade (https://www.drupal.org/project/parade) Paragraphs LandingPage Framework (https://www.drupal.org/project/landingpage)
  • 18. Paragraphs Edit This module adds contextual links to paragraphs to edit, delete and clone paragraphs. Contextual links: Clone fieldset: Native edit form can be very long and it is difficult to find the content that we need to edit:
  • 19. Paragraphs Edit: How to make it work? It doesn’t work in: {% set classes = [ ... ] %} <div{{ attributes.addClass(classes) }}> {{ content.field_landingpage_image[0] }} </div> or in: {% set classes = [ ... ] %} <div{{ attributes.addClass(classes) }}> {{ title_suffix }} {{ content.field_landingpage_image[0] }} </div> It works in: {% set classes = [ ... ] %} <div{{ attributes.addClass(classes) }}> {{ content }} </div>
  • 22. Bootstrap Paragraphs Demo page: http://bp.jimbir.ch/
  • 23. Parade Module Demo: http://parade.brainsum.com/ The main improvements: - paragraph add buttons - Paragraphs Previewer usage How to play with this module: - Turn on parade_demo module - Delete map paragraph on created dummy content or alternatively check and fix Leaflet module settings What is the most interesting for the developers? - parade_demo.install where they created 'classy_paragraphs_style' entities programmatically
  • 24. Demo Functionality of some Contributed Modules: Parade module together with Paragraphs Previewer, Paragraphs Edit and Geysir
  • 25. Paragraphs LandingPage Framework - Theme field in out of box LandingPage content type (we can use absolutely separate theme for each Landing Page) - Each paragraph view mode can have a separate template - There is an ability to add separate classes and inline styles - Architecture of the package: each paragraph type is a separate submodule - LandingPage clone submodule - LandingPage Export/Import feature (experimental) - LandingPage Geysir module that extends functionality of Geysir module with Sort, Clone, Add and Customize functionality.
  • 27. Paragraphs LandingPage Framework: 3 levels of customization - You can customize your page in admin area (Theme, View Mode, Inline styles and Classes) - You can create and use your own LandingPage theme. Use 'landingpage_starterkit' template to start. Also you can set up predefined classes in [your_theme].info.yml and the will be supported in LandingPage autocomplete - You can create your own paragraph types that will be supported by the module You can find more details in http://cgit.drupalcode.org/landingpage/plain/README.txt An example of relatively complex LandingPage created with Paragraphs LandingPage Framework: http://partner.speedandfunction.com
  • 28. How can you use it? - You can use it if you need a separate Landing Page solution with different design on the existing Drupal 8 site. - You can use it during initial conversation with a new client. You can prepare several drafts of pages with fake content that meets a client needs on your expectation and during the demo you can change the order of paragraphs, colors, backgrounds and view mode to reach more close to the client needs. - You can create several out of box solutions that cover more simple requests of your clients.
  • 29. Paragraphs LandingPage Framework: 2.x version Roadmap: - Decrease number of paragraphs - Locate definition of paragraphs that don’t have external dependencies into root LandingPage module - Support Paragraphs Edit module - Support Paragraphs Previewer module - Include examples dummy content in LandingPage themes and remove example modules - Improve admin UI and add icons on paragraph add buttons - Add and improve module documentation - Add export to static HTML feature
  • 30. Paragraphs LandingPage Framework: Cooperation Request It’s difficult to kick this stuff by one person so I’m looking for any ideas, help and feature requests also I’m going to share my progress with the community Feel free to skype me vasilyyaremchuk
  • 31. Future of Paragraphs: Discussion - Why can’t we use Header and Footer as a separate paragraphs? - Can we build our new sites only with paragraphs? - How we can resolve paragraph reusability issue in general? * Image was taken from: https://www.slideshare.net/pvhee/building-redno sedaycom-on-drupal-8
  • 33. Are you going to use Paragraphs?
  • 35. Appendix: slides that includes mores specific information for the references
  • 36. Is there way to make paragraphs filed more friendly? Improve user experience with Paragraphs on Drupal 8: https://www.flocondetoile.fr/blog/improve-user-experience-paragraphs-drupal-8
  • 37. What is a Landing Page? https://en.wikipedia.org/wiki/Landing_page It’s a single web page that appears in response to clicking on a search engine optimized search result or an online advertisement or we can put URL of this page on Billboard or to any other offline ad. The general goal of a landing page is to convert page visitors into sales or leads. Types of landing pages: - Reference (It presents information that is relevant to the visitor request: text, images, etc.) - Transactional (There is a form on the page. Its goal is to convert the visitor into a customer.)