SlideShare ist ein Scribd-Unternehmen logo
1 von 51
Downloaden Sie, um offline zu lesen
Plone 5 Theming 
Unleashed 
Albert Casado 
Víctor Fernández de Alba
Albert 
• Interaction designer – IxD / UI / UX 
• New plone.org 
• Plone 5 default Barceloneta theme 
• new Plone 5 UI elements 
@albertcasado
Víctor 
• Lead web developer and IT architect 
• plone.app.multilingual 
• New plone.org 
• Plone 5 default Barceloneta theme 
• Author of Plone 3 intranets (2010, PacktPub) 
@sneridagh
Relationship 
Genweb (Plone 2.5), Genweb 3 (Plone 4), UPC.edu (Plone 3), UPC.tv (Plone 3) …
Designer-frontend developer 
• Visual designer (PS, Ai) 
• HTML/CSS expert, cross-browsing and accessibility 
• At least basic JS (jquery, integrator of other libs) 
• Knows about Plone internals and structure 
• <Knowing=“Diazo” helps />
Plone backend developer 
• Proficient Plone developer 
• Good CSS & HTML 
• Strong JS 
• Diazo and XSLT 
• Limited design capabilities and doubtful taste ;)
New all-in-one toolbar
Toolbar markup
Friendlier Site setup 
Stay in this room: next talk Resource Registry
Rewritten UI elements
Rewritten UI elements
New markup: less Diazo 
• Updated Header 
• Updated Navigation 
• Updated Breadcrumbs 
• Updated Alerts 
• Updated Portlets 
• Updated Search 
• … 
• Just turn off Diazo adding ?diazo.off=1
Diazo off = Plone naked 
Designer, really, save this: ?diazo.off=1
/test_rendering 
All usual elements in one page
Fontello font 
Updatable with JSON file: you all can update easily to your own glyphs
We all like Bootstrap, but use Plone classes instead 
.context:extend(.btn-primary) { }
So Plone 5 is 
• HTML5 
• ARIA & WCAG 
• Responsive 
• LESS 
• Best JS ever 
• No layout tables 
• DL DT DD with pleasure! 
• Updated .pt files 
• Clever setup
Many things has been updated 
Accessibility Addons Alerts Assignments Autotabs Breadcrumbs Buttons 
Code Control panel Dashboard Document by line Dropzone Error page 
Event Folder listing Forms Fullscreen image Header Image product Login 
Mail reset Maintenance Manage portlets Members Mixins Modal Navigation 
News Pagination Pick a date Portlets Recenty modified Search results 
Sharing Site map Site nav Sortable States Strutcture Tabbing Tables 
Tablesorter Thumbs TOC Toolbar Tree Types User settings Variables Views … 
Check everything on Barceloneta
Just a recap for best practices!
Designer frontend developer 
• Learn basic rules of Diazo 
• Reuse the fine existing Plone markup 
• Understand Plone structure 
• Have in mind Plone default classnames 
• Prototype in static HTML: Prototype, prototype, prototype 
• A “vainilla” Plone site to experiment with
Plone structure 
Header 
Nav 
Breadcrumbs 
Alerts 
<main> 
Portlets 
Left 
Column 
Portlets footer 
Footer 
Portlets 
Right 
Column 
Content
Plone classes and IDs 
• .portlet .portletNews 
• .formHelp, .formControls 
• .context, .standalone, .destructive 
• .documentFirstHeading 
• #portal-column-content 
• #edit-bar
Do not create from scratch 
• Use the default Plone’s HTML before Diazoing 
• Understand Plone structure and distribution of elements, reuse it! 
• Copy/Reuse Barceloneta LESS and adapt it
Ei designer: prototype 
• If you reuse Plone structure… 
• If you reuse Plone classes… 
• If you reuse Plone elements… 
Developers will love you
Transfer prototype 
into a Diazo Theme for Plone
About prototyping 
• Prototype based on the default Plone markup as far as possible 
• Know the limits of prototyping (:after limits sitelive) 
• Start to build the theme using the prototypes as baseline
Use a package generator 
https://github.com/collective/zopeskel.diazotheme/ 
• Works with Plone 5. 
• We’ll have to add some new things, specially new resource 
registries GenericSetup .xml
Diazo 
• Use Diazo to move blocks around 
• Do easy modifications to the default markup 
• Do not forget to make space for the toolbar just 
after the <body> tag with this rule: 
<replace css:theme=“#portal-toolbar" 
css:content-children=“#edit-bar" 
css:if-not-content=“.ajax_load" 
css:if-content=".userrole-authenticated"/>
Only if strictly needed 
• Modify existing templates to match the prototypes ones 
using z3c.jbot for default viewlets, views and **portlets** 
• Only when Diazo rules turn insane or overcomplicated is 
when “jboting” is easier, quicker and hassle free
Backend features 
• Implement the backend features 
using the prototype’s markup for templates
Iterative improvement 
• Over the Diazo theme in the development site 
• Demo it to the customer frequently 
• Iterate over the feedback and bugs found
Do not forget 
• Add custom styling for standard user generated markup 
Not anymore the custom you are thinking about
main_template 
• No longer a portal_skins resource 
• Now it’s a BrowserView 
Products/CMFPlone/browser/templates/main_template.pt 
Products/CMFPlone/browser/main_template.py
New Resource registries 
• Completely updated 
for modern frontend developing 
• Don’t want to reveal too much on them 
Spoilers 
Remember: Do not miss Rob’s and Ramon’s talk in this room after this talk
New Resource registries 
Bundles 
Plone bundle 
Barceloneta bundle 
Legacy bundle 
Resources 
plone.less plone.js 
barceloneta.plone.less 
plone-legacy.less 
plone-legacy.js 
TTW customization and overrides 
Spoiler Alert!
New Resource registries 
Spoiler Alert!
New Resource registries 
Spoiler Alert! 
manifest.cfg
Development mode 
• Compilation on browser of LESS/JS resources 
• Compilation on console via grunt watch task 
Spoiler Alert!
Production mode 
Have we said that you should assist to the 
next talk? 
Spoiler Alert!
Plone 5 
Barceloneta 
Barcelona, Catalonia
Pretty well ordered 
plonetheme > barceloneta > static > less
Why not SASS? 
• LESS is done in JS and can be compiled in browser 
• Because we decided it and we don’t care. 
• Still not convinced? https://github.com/ekryski/less2sass
Plone 5 and Barceloneta
Deductible 
LESS 
structure 
and file naming
Just modify variables
@import "@{sitePath}/++plone++barceloneta/less/variables.plone.less"; 
Reuse Barceloneta LESS
Let’s Plone a bit
Thanks / Gràcies 
@albertcasado 
@sneridagh

Weitere ähnliche Inhalte

Was ist angesagt?

Untangling spring week10
Untangling spring week10Untangling spring week10
Untangling spring week10Derek Jacoby
 
MozTW Jetpack Workshop: Taichung
MozTW Jetpack Workshop: TaichungMozTW Jetpack Workshop: Taichung
MozTW Jetpack Workshop: Taichunglittlebtc
 
Pyramid Lighter/Faster/Better web apps
Pyramid Lighter/Faster/Better web appsPyramid Lighter/Faster/Better web apps
Pyramid Lighter/Faster/Better web appsDylan Jay
 
Untangling spring week11
Untangling spring week11Untangling spring week11
Untangling spring week11Derek Jacoby
 
Untangling the web - fall2017 - class 4
Untangling the web - fall2017 - class 4Untangling the web - fall2017 - class 4
Untangling the web - fall2017 - class 4Derek Jacoby
 
Joomla! Pizza Bugs and Fun 2014 pre-event Seminar
Joomla! Pizza Bugs and Fun 2014 pre-event SeminarJoomla! Pizza Bugs and Fun 2014 pre-event Seminar
Joomla! Pizza Bugs and Fun 2014 pre-event SeminarGunjan Patel
 
Best Practice Site Architecture in Drupal 8
Best Practice Site Architecture in Drupal 8Best Practice Site Architecture in Drupal 8
Best Practice Site Architecture in Drupal 8Pantheon
 
Untangling the web9
Untangling the web9Untangling the web9
Untangling the web9Derek Jacoby
 
Internationalizing The New York Times
Internationalizing The New York TimesInternationalizing The New York Times
Internationalizing The New York TimesScott Taylor
 
Untangling spring week7
Untangling spring week7Untangling spring week7
Untangling spring week7Derek Jacoby
 
New Technologies demoed at the 2011 Plone Conference
New Technologies demoed at the 2011 Plone ConferenceNew Technologies demoed at the 2011 Plone Conference
New Technologies demoed at the 2011 Plone Conferencejcbrand
 
Untangling fall2017 week1
Untangling fall2017 week1Untangling fall2017 week1
Untangling fall2017 week1Derek Jacoby
 
Develop advance joomla! MVC Component for version 3
Develop advance joomla! MVC Component for version 3Develop advance joomla! MVC Component for version 3
Develop advance joomla! MVC Component for version 3Gunjan Patel
 
Blazor - .NET in the Browser!
Blazor - .NET in the Browser!Blazor - .NET in the Browser!
Blazor - .NET in the Browser!David Paquette
 
Drupal Camp LA 2011: Typography modules for Drupal
Drupal Camp LA 2011: Typography modules for DrupalDrupal Camp LA 2011: Typography modules for Drupal
Drupal Camp LA 2011: Typography modules for DrupalAshok Modi
 
Extension developer secrets - How to make money with Joomla
Extension developer secrets - How to make money with JoomlaExtension developer secrets - How to make money with Joomla
Extension developer secrets - How to make money with JoomlaTim Plummer
 
Untangling spring week12
Untangling spring week12Untangling spring week12
Untangling spring week12Derek Jacoby
 
Untangling spring week6
Untangling spring week6Untangling spring week6
Untangling spring week6Derek Jacoby
 
Philipp Von Weitershausen Plone Age Mammoths, Sabers And Caveen Cant The...
Philipp Von Weitershausen   Plone Age  Mammoths, Sabers And Caveen   Cant The...Philipp Von Weitershausen   Plone Age  Mammoths, Sabers And Caveen   Cant The...
Philipp Von Weitershausen Plone Age Mammoths, Sabers And Caveen Cant The...Vincenzo Barone
 

Was ist angesagt? (20)

Untangling spring week10
Untangling spring week10Untangling spring week10
Untangling spring week10
 
MozTW Jetpack Workshop: Taichung
MozTW Jetpack Workshop: TaichungMozTW Jetpack Workshop: Taichung
MozTW Jetpack Workshop: Taichung
 
Pyramid Lighter/Faster/Better web apps
Pyramid Lighter/Faster/Better web appsPyramid Lighter/Faster/Better web apps
Pyramid Lighter/Faster/Better web apps
 
Untangling spring week11
Untangling spring week11Untangling spring week11
Untangling spring week11
 
Untangling the web - fall2017 - class 4
Untangling the web - fall2017 - class 4Untangling the web - fall2017 - class 4
Untangling the web - fall2017 - class 4
 
Joomla! Pizza Bugs and Fun 2014 pre-event Seminar
Joomla! Pizza Bugs and Fun 2014 pre-event SeminarJoomla! Pizza Bugs and Fun 2014 pre-event Seminar
Joomla! Pizza Bugs and Fun 2014 pre-event Seminar
 
Best Practice Site Architecture in Drupal 8
Best Practice Site Architecture in Drupal 8Best Practice Site Architecture in Drupal 8
Best Practice Site Architecture in Drupal 8
 
Untangling the web9
Untangling the web9Untangling the web9
Untangling the web9
 
Internationalizing The New York Times
Internationalizing The New York TimesInternationalizing The New York Times
Internationalizing The New York Times
 
Untangling spring week7
Untangling spring week7Untangling spring week7
Untangling spring week7
 
New Technologies demoed at the 2011 Plone Conference
New Technologies demoed at the 2011 Plone ConferenceNew Technologies demoed at the 2011 Plone Conference
New Technologies demoed at the 2011 Plone Conference
 
Untangling fall2017 week1
Untangling fall2017 week1Untangling fall2017 week1
Untangling fall2017 week1
 
Develop advance joomla! MVC Component for version 3
Develop advance joomla! MVC Component for version 3Develop advance joomla! MVC Component for version 3
Develop advance joomla! MVC Component for version 3
 
Drupal Flyover, CMS Expo
Drupal Flyover, CMS ExpoDrupal Flyover, CMS Expo
Drupal Flyover, CMS Expo
 
Blazor - .NET in the Browser!
Blazor - .NET in the Browser!Blazor - .NET in the Browser!
Blazor - .NET in the Browser!
 
Drupal Camp LA 2011: Typography modules for Drupal
Drupal Camp LA 2011: Typography modules for DrupalDrupal Camp LA 2011: Typography modules for Drupal
Drupal Camp LA 2011: Typography modules for Drupal
 
Extension developer secrets - How to make money with Joomla
Extension developer secrets - How to make money with JoomlaExtension developer secrets - How to make money with Joomla
Extension developer secrets - How to make money with Joomla
 
Untangling spring week12
Untangling spring week12Untangling spring week12
Untangling spring week12
 
Untangling spring week6
Untangling spring week6Untangling spring week6
Untangling spring week6
 
Philipp Von Weitershausen Plone Age Mammoths, Sabers And Caveen Cant The...
Philipp Von Weitershausen   Plone Age  Mammoths, Sabers And Caveen   Cant The...Philipp Von Weitershausen   Plone Age  Mammoths, Sabers And Caveen   Cant The...
Philipp Von Weitershausen Plone Age Mammoths, Sabers And Caveen Cant The...
 

Ähnlich wie Plone 5 theming unleashed

Plone 5 theming
Plone 5 themingPlone 5 theming
Plone 5 themingsneridagh
 
Plone Futures, Plone Conference 2016 Keynote by Eric Steele
Plone Futures, Plone Conference 2016 Keynote by Eric SteelePlone Futures, Plone Conference 2016 Keynote by Eric Steele
Plone Futures, Plone Conference 2016 Keynote by Eric SteeleT. Kim Nguyen
 
Drupal 8 Basic Training - DrupalEurope 2018 - Maarten De Block
Drupal 8 Basic Training - DrupalEurope 2018 - Maarten De BlockDrupal 8 Basic Training - DrupalEurope 2018 - Maarten De Block
Drupal 8 Basic Training - DrupalEurope 2018 - Maarten De BlockMaarten De Block
 
Add-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyAdd-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his Dutyreedmaniac
 
Add-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyAdd-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyLeslie Doherty
 
Modernize Plone's Classic UI
Modernize Plone's Classic UIModernize Plone's Classic UI
Modernize Plone's Classic UIStefan Antonelli
 
Alternative Approach to Plone Theming (PyConWeb 2019)
 Alternative Approach to Plone Theming (PyConWeb 2019) Alternative Approach to Plone Theming (PyConWeb 2019)
Alternative Approach to Plone Theming (PyConWeb 2019)Stefan Antonelli
 
Atlanta Drupal User Group (ADUG)
Atlanta Drupal User Group (ADUG) Atlanta Drupal User Group (ADUG)
Atlanta Drupal User Group (ADUG) Mediacurrent
 
Modernize Plone's Classic UI
Modernize Plone's Classic UIModernize Plone's Classic UI
Modernize Plone's Classic UIPloneFoundation
 
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 DevelopmentMediacurrent
 
Java for XPages Development
Java for XPages DevelopmentJava for XPages Development
Java for XPages DevelopmentTeamstudio
 
Drupal 8 - Build Week Update
Drupal 8 - Build Week UpdateDrupal 8 - Build Week Update
Drupal 8 - Build Week UpdateAngela Byron
 
full-site-editing-theme-presentation.pptx
full-site-editing-theme-presentation.pptxfull-site-editing-theme-presentation.pptx
full-site-editing-theme-presentation.pptxPlasterdog Web Design
 
Pharo 11: A stabilization release
Pharo 11: A stabilization releasePharo 11: A stabilization release
Pharo 11: A stabilization releaseESUG
 
Top 8 Improvements in Drupal 8
Top 8 Improvements in Drupal 8Top 8 Improvements in Drupal 8
Top 8 Improvements in Drupal 8Angela Byron
 
Eric Steele – World Plone Day 2010 – Plone 4 Overview
Eric Steele – World Plone Day 2010 – Plone 4 OverviewEric Steele – World Plone Day 2010 – Plone 4 Overview
Eric Steele – World Plone Day 2010 – Plone 4 OverviewEric Steele
 

Ähnlich wie Plone 5 theming unleashed (20)

Plone 5 theming
Plone 5 themingPlone 5 theming
Plone 5 theming
 
Automation in Drupal
Automation in DrupalAutomation in Drupal
Automation in Drupal
 
Plone Futures, Plone Conference 2016 Keynote by Eric Steele
Plone Futures, Plone Conference 2016 Keynote by Eric SteelePlone Futures, Plone Conference 2016 Keynote by Eric Steele
Plone Futures, Plone Conference 2016 Keynote by Eric Steele
 
Plone Futures
Plone FuturesPlone Futures
Plone Futures
 
Drupal 8 Basic Training - DrupalEurope 2018 - Maarten De Block
Drupal 8 Basic Training - DrupalEurope 2018 - Maarten De BlockDrupal 8 Basic Training - DrupalEurope 2018 - Maarten De Block
Drupal 8 Basic Training - DrupalEurope 2018 - Maarten De Block
 
Add-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyAdd-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his Duty
 
presentation
presentationpresentation
presentation
 
Add-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyAdd-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his Duty
 
presentation
presentationpresentation
presentation
 
Modernize Plone's Classic UI
Modernize Plone's Classic UIModernize Plone's Classic UI
Modernize Plone's Classic UI
 
Alternative Approach to Plone Theming (PyConWeb 2019)
 Alternative Approach to Plone Theming (PyConWeb 2019) Alternative Approach to Plone Theming (PyConWeb 2019)
Alternative Approach to Plone Theming (PyConWeb 2019)
 
Atlanta Drupal User Group (ADUG)
Atlanta Drupal User Group (ADUG) Atlanta Drupal User Group (ADUG)
Atlanta Drupal User Group (ADUG)
 
Modernize Plone's Classic UI
Modernize Plone's Classic UIModernize Plone's Classic UI
Modernize Plone's Classic UI
 
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
 
Java for XPages Development
Java for XPages DevelopmentJava for XPages Development
Java for XPages Development
 
Drupal 8 - Build Week Update
Drupal 8 - Build Week UpdateDrupal 8 - Build Week Update
Drupal 8 - Build Week Update
 
full-site-editing-theme-presentation.pptx
full-site-editing-theme-presentation.pptxfull-site-editing-theme-presentation.pptx
full-site-editing-theme-presentation.pptx
 
Pharo 11: A stabilization release
Pharo 11: A stabilization releasePharo 11: A stabilization release
Pharo 11: A stabilization release
 
Top 8 Improvements in Drupal 8
Top 8 Improvements in Drupal 8Top 8 Improvements in Drupal 8
Top 8 Improvements in Drupal 8
 
Eric Steele – World Plone Day 2010 – Plone 4 Overview
Eric Steele – World Plone Day 2010 – Plone 4 OverviewEric Steele – World Plone Day 2010 – Plone 4 Overview
Eric Steele – World Plone Day 2010 – Plone 4 Overview
 

Mehr von sneridagh

Meet Quanta - Plone's Style Guide
Meet Quanta - Plone's Style GuideMeet Quanta - Plone's Style Guide
Meet Quanta - Plone's Style Guidesneridagh
 
MAX: Realtime messaging and activity stream engine
MAX: Realtime messaging and activity stream engineMAX: Realtime messaging and activity stream engine
MAX: Realtime messaging and activity stream enginesneridagh
 
Key factors of the content management
Key factors of the content managementKey factors of the content management
Key factors of the content managementsneridagh
 
Factors claus de la gestió de continguts
Factors claus de la gestió de contingutsFactors claus de la gestió de continguts
Factors claus de la gestió de contingutssneridagh
 
Introduction to Pyramid
Introduction to PyramidIntroduction to Pyramid
Introduction to Pyramidsneridagh
 
Arquitectura de serveis per aplicacions mòbils
Arquitectura de serveis per aplicacions mòbilsArquitectura de serveis per aplicacions mòbils
Arquitectura de serveis per aplicacions mòbilssneridagh
 

Mehr von sneridagh (6)

Meet Quanta - Plone's Style Guide
Meet Quanta - Plone's Style GuideMeet Quanta - Plone's Style Guide
Meet Quanta - Plone's Style Guide
 
MAX: Realtime messaging and activity stream engine
MAX: Realtime messaging and activity stream engineMAX: Realtime messaging and activity stream engine
MAX: Realtime messaging and activity stream engine
 
Key factors of the content management
Key factors of the content managementKey factors of the content management
Key factors of the content management
 
Factors claus de la gestió de continguts
Factors claus de la gestió de contingutsFactors claus de la gestió de continguts
Factors claus de la gestió de continguts
 
Introduction to Pyramid
Introduction to PyramidIntroduction to Pyramid
Introduction to Pyramid
 
Arquitectura de serveis per aplicacions mòbils
Arquitectura de serveis per aplicacions mòbilsArquitectura de serveis per aplicacions mòbils
Arquitectura de serveis per aplicacions mòbils
 

Kürzlich hochgeladen

A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 

Kürzlich hochgeladen (20)

A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 

Plone 5 theming unleashed

  • 1. Plone 5 Theming Unleashed Albert Casado Víctor Fernández de Alba
  • 2. Albert • Interaction designer – IxD / UI / UX • New plone.org • Plone 5 default Barceloneta theme • new Plone 5 UI elements @albertcasado
  • 3. Víctor • Lead web developer and IT architect • plone.app.multilingual • New plone.org • Plone 5 default Barceloneta theme • Author of Plone 3 intranets (2010, PacktPub) @sneridagh
  • 4. Relationship Genweb (Plone 2.5), Genweb 3 (Plone 4), UPC.edu (Plone 3), UPC.tv (Plone 3) …
  • 5. Designer-frontend developer • Visual designer (PS, Ai) • HTML/CSS expert, cross-browsing and accessibility • At least basic JS (jquery, integrator of other libs) • Knows about Plone internals and structure • <Knowing=“Diazo” helps />
  • 6. Plone backend developer • Proficient Plone developer • Good CSS & HTML • Strong JS • Diazo and XSLT • Limited design capabilities and doubtful taste ;)
  • 7.
  • 10. Friendlier Site setup Stay in this room: next talk Resource Registry
  • 13. New markup: less Diazo • Updated Header • Updated Navigation • Updated Breadcrumbs • Updated Alerts • Updated Portlets • Updated Search • … • Just turn off Diazo adding ?diazo.off=1
  • 14. Diazo off = Plone naked Designer, really, save this: ?diazo.off=1
  • 15. /test_rendering All usual elements in one page
  • 16. Fontello font Updatable with JSON file: you all can update easily to your own glyphs
  • 17. We all like Bootstrap, but use Plone classes instead .context:extend(.btn-primary) { }
  • 18. So Plone 5 is • HTML5 • ARIA & WCAG • Responsive • LESS • Best JS ever • No layout tables • DL DT DD with pleasure! • Updated .pt files • Clever setup
  • 19. Many things has been updated Accessibility Addons Alerts Assignments Autotabs Breadcrumbs Buttons Code Control panel Dashboard Document by line Dropzone Error page Event Folder listing Forms Fullscreen image Header Image product Login Mail reset Maintenance Manage portlets Members Mixins Modal Navigation News Pagination Pick a date Portlets Recenty modified Search results Sharing Site map Site nav Sortable States Strutcture Tabbing Tables Tablesorter Thumbs TOC Toolbar Tree Types User settings Variables Views … Check everything on Barceloneta
  • 20. Just a recap for best practices!
  • 21. Designer frontend developer • Learn basic rules of Diazo • Reuse the fine existing Plone markup • Understand Plone structure • Have in mind Plone default classnames • Prototype in static HTML: Prototype, prototype, prototype • A “vainilla” Plone site to experiment with
  • 22. Plone structure Header Nav Breadcrumbs Alerts <main> Portlets Left Column Portlets footer Footer Portlets Right Column Content
  • 23. Plone classes and IDs • .portlet .portletNews • .formHelp, .formControls • .context, .standalone, .destructive • .documentFirstHeading • #portal-column-content • #edit-bar
  • 24. Do not create from scratch • Use the default Plone’s HTML before Diazoing • Understand Plone structure and distribution of elements, reuse it! • Copy/Reuse Barceloneta LESS and adapt it
  • 25. Ei designer: prototype • If you reuse Plone structure… • If you reuse Plone classes… • If you reuse Plone elements… Developers will love you
  • 26. Transfer prototype into a Diazo Theme for Plone
  • 27. About prototyping • Prototype based on the default Plone markup as far as possible • Know the limits of prototyping (:after limits sitelive) • Start to build the theme using the prototypes as baseline
  • 28. Use a package generator https://github.com/collective/zopeskel.diazotheme/ • Works with Plone 5. • We’ll have to add some new things, specially new resource registries GenericSetup .xml
  • 29. Diazo • Use Diazo to move blocks around • Do easy modifications to the default markup • Do not forget to make space for the toolbar just after the <body> tag with this rule: <replace css:theme=“#portal-toolbar" css:content-children=“#edit-bar" css:if-not-content=“.ajax_load" css:if-content=".userrole-authenticated"/>
  • 30. Only if strictly needed • Modify existing templates to match the prototypes ones using z3c.jbot for default viewlets, views and **portlets** • Only when Diazo rules turn insane or overcomplicated is when “jboting” is easier, quicker and hassle free
  • 31. Backend features • Implement the backend features using the prototype’s markup for templates
  • 32. Iterative improvement • Over the Diazo theme in the development site • Demo it to the customer frequently • Iterate over the feedback and bugs found
  • 33. Do not forget • Add custom styling for standard user generated markup Not anymore the custom you are thinking about
  • 34.
  • 35. main_template • No longer a portal_skins resource • Now it’s a BrowserView Products/CMFPlone/browser/templates/main_template.pt Products/CMFPlone/browser/main_template.py
  • 36. New Resource registries • Completely updated for modern frontend developing • Don’t want to reveal too much on them Spoilers Remember: Do not miss Rob’s and Ramon’s talk in this room after this talk
  • 37. New Resource registries Bundles Plone bundle Barceloneta bundle Legacy bundle Resources plone.less plone.js barceloneta.plone.less plone-legacy.less plone-legacy.js TTW customization and overrides Spoiler Alert!
  • 38. New Resource registries Spoiler Alert!
  • 39. New Resource registries Spoiler Alert! manifest.cfg
  • 40. Development mode • Compilation on browser of LESS/JS resources • Compilation on console via grunt watch task Spoiler Alert!
  • 41. Production mode Have we said that you should assist to the next talk? Spoiler Alert!
  • 42. Plone 5 Barceloneta Barcelona, Catalonia
  • 43. Pretty well ordered plonetheme > barceloneta > static > less
  • 44. Why not SASS? • LESS is done in JS and can be compiled in browser • Because we decided it and we don’t care. • Still not convinced? https://github.com/ekryski/less2sass
  • 45. Plone 5 and Barceloneta
  • 46.
  • 47. Deductible LESS structure and file naming
  • 51. Thanks / Gràcies @albertcasado @sneridagh