The document discusses Jen Lampton's proposal for a new theme layer in Drupal 8 using the Twig templating engine. Some key points:
- The current Drupal 7 theme layer is difficult to learn and use due to issues like mixed data types, multiple ways to print variables, insecure code, and complexity.
- Twig aims to address these issues by providing a simpler, more consistent and secure templating syntax that is closer to HTML.
- Twig would standardize how templates access data and print variables. It would consolidate theme functions into template files and make the code more secure.
- While some challenges like reducing template files remain, Twig has the potential to greatly improve the theme
An introduction to Basho's Riak distributed data store, and the Ripple client in Ruby. Code samples from the demos are here: http://gist.github.com/365791
Drupal 8: Huge wins, a Bigger Community, and why you (and I) will Love itRyan Weaver
Ā
It's true: Drupal 8 includes big and exciting changes to its core and how Drupal code is written. These include using outside PHP libraries (Guzzle, Symfony, etc) as well as embracing PHP 5.4 and object-oriented code.
Scary, right? Definitely not! These changes give Drupal 8 so many "wins" and new possibilities that you're going to absolutely love it.
In this keynote, we'll explore the changes together and start to realize all of the wonderful things that each will bring. These include a (much) larger community, many more libraries you can use, higher quality tools, easier future upgrades, and some fantastic new features.
And because Drupal uses Symfony, you'll easily be able to use Symfony (or its little brother Silex) for any non-CMS projects. Being a great Drupal 8 developer means being a great PHP developer.
Of course, Drupal 8 has its criticisms: it will be too hard for new developers to learn, or it will not be useable for smaller sites. We'll take on these concerns directly and see why they are valid, but exaggerated.
Web Motion: Motion Detection on the Webfisherwebdev
Ā
Slides from a talk originally given on April 1, 2013 at the HTML5 Developer Conference in San Francisco
Outline:
1. Overview of competitive landscape.
2. Up close with the LeapJS API
3. How will this fit into web standards?
An introduction to Basho's Riak distributed data store, and the Ripple client in Ruby. Code samples from the demos are here: http://gist.github.com/365791
Drupal 8: Huge wins, a Bigger Community, and why you (and I) will Love itRyan Weaver
Ā
It's true: Drupal 8 includes big and exciting changes to its core and how Drupal code is written. These include using outside PHP libraries (Guzzle, Symfony, etc) as well as embracing PHP 5.4 and object-oriented code.
Scary, right? Definitely not! These changes give Drupal 8 so many "wins" and new possibilities that you're going to absolutely love it.
In this keynote, we'll explore the changes together and start to realize all of the wonderful things that each will bring. These include a (much) larger community, many more libraries you can use, higher quality tools, easier future upgrades, and some fantastic new features.
And because Drupal uses Symfony, you'll easily be able to use Symfony (or its little brother Silex) for any non-CMS projects. Being a great Drupal 8 developer means being a great PHP developer.
Of course, Drupal 8 has its criticisms: it will be too hard for new developers to learn, or it will not be useable for smaller sites. We'll take on these concerns directly and see why they are valid, but exaggerated.
Web Motion: Motion Detection on the Webfisherwebdev
Ā
Slides from a talk originally given on April 1, 2013 at the HTML5 Developer Conference in San Francisco
Outline:
1. Overview of competitive landscape.
2. Up close with the LeapJS API
3. How will this fit into web standards?
There is a growing demand to build increasingly complex mobile applications with HTML5, in part due to its cross-platform nature. However delivering these applications is still very challenging. The Montage framework was designed from the ground up to build complex HTML5 applications. This talk will explain how Montageās reusable and encapsulated Components provides a natural and effective way to write modular, robust, applications by allowing team members to work on different part at the same time.
In Drupal 7, we need to use a whole suite of modules to make our websites multilingual. Drupal 8 core provides much improved support for multilingual. This means that it's much easier/faster to create a multilingual site, and you won't need all those extra contributed modules. In this session, we'll look at:
How the Drupal 8 multilingual modules work
What steps you'll need to get a multilingual website up and running
Setting up multilingual components in Drupal 8
Automated php unit testing in drupal 8Jay Friendly
Ā
An overview of PHPUnit Automated testing in Drupal 8, including a comparison of manual testing vs automated testing, the pros and cons of automated testing, and the types of automated tests available in Drupal 8.
Drupal 8 override: services and pluginsAnton Ivanov
Ā
How to override Drupal 8 services and plugins easy and fast.
(Kharkiv Drupal Talks #4, 2017 March 3)
https://www.meetup.com/Kharkiv-Drupal-Cafe/events/237655163/
Drupal 8 brings a lot of changes. Many standby contributed modules are now included with Drupal Core, and many small changes add up to the most exciting Drupal release yet! We'll walk through many of the biggest changes, highlighting how Drupal 8 will accelerate your web development and provide tools to make Drupal the best content management platform on any device.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Ā
Clients donāt know what they donāt know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clientsā needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Welcome to the first live UiPath Community Day Dubai! Join us for this unique occasion to meet our local and global UiPath Community and leaders. You will get a full view of the MEA region's automation landscape and the AI Powered automation technology capabilities of UiPath. Also, hosted by our local partners Marc Ellis, you will enjoy a half-day packed with industry insights and automation peers networking.
š Curious on our agenda? Wait no more!
10:00 Welcome note - UiPath Community in Dubai
Lovely Sinha, UiPath Community Chapter Leader, UiPath MVPx3, Hyper-automation Consultant, First Abu Dhabi Bank
10:20 A UiPath cross-region MEA overview
Ashraf El Zarka, VP and Managing Director MEA, UiPath
10:35: Customer Success Journey
Deepthi Deepak, Head of Intelligent Automation CoE, First Abu Dhabi Bank
11:15 The UiPath approach to GenAI with our three principles: improve accuracy, supercharge productivity, and automate more
Boris Krumrey, Global VP, Automation Innovation, UiPath
12:15 To discover how Marc Ellis leverages tech-driven solutions in recruitment and managed services.
Brendan Lingam, Director of Sales and Business Development, Marc Ellis
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Ā
Monitoring and observability arenāt traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current companyās observability stack.
While the dev and ops silo continues to crumbleā¦.many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
Ā
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
Ā
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
The Metaverse and AI: how can decision-makers harness the Metaverse for their...Jen Stirrup
Ā
The Metaverse is popularized in science fiction, and now it is becoming closer to being a part of our daily lives through the use of social media and shopping companies. How can businesses survive in a world where Artificial Intelligence is becoming the present as well as the future of technology, and how does the Metaverse fit into business strategy when futurist ideas are developing into reality at accelerated rates? How do we do this when our data isn't up to scratch? How can we move towards success with our data so we are set up for the Metaverse when it arrives?
How can you help your company evolve, adapt, and succeed using Artificial Intelligence and the Metaverse to stay ahead of the competition? What are the potential issues, complications, and benefits that these technologies could bring to us and our organizations? In this session, Jen Stirrup will explain how to start thinking about these technologies as an organisation.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
Ā
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties ā USA
Expansion of bot farms ā how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks ā Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
Ā
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more āmechanicalā approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Ā
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
There is a growing demand to build increasingly complex mobile applications with HTML5, in part due to its cross-platform nature. However delivering these applications is still very challenging. The Montage framework was designed from the ground up to build complex HTML5 applications. This talk will explain how Montageās reusable and encapsulated Components provides a natural and effective way to write modular, robust, applications by allowing team members to work on different part at the same time.
In Drupal 7, we need to use a whole suite of modules to make our websites multilingual. Drupal 8 core provides much improved support for multilingual. This means that it's much easier/faster to create a multilingual site, and you won't need all those extra contributed modules. In this session, we'll look at:
How the Drupal 8 multilingual modules work
What steps you'll need to get a multilingual website up and running
Setting up multilingual components in Drupal 8
Automated php unit testing in drupal 8Jay Friendly
Ā
An overview of PHPUnit Automated testing in Drupal 8, including a comparison of manual testing vs automated testing, the pros and cons of automated testing, and the types of automated tests available in Drupal 8.
Drupal 8 override: services and pluginsAnton Ivanov
Ā
How to override Drupal 8 services and plugins easy and fast.
(Kharkiv Drupal Talks #4, 2017 March 3)
https://www.meetup.com/Kharkiv-Drupal-Cafe/events/237655163/
Drupal 8 brings a lot of changes. Many standby contributed modules are now included with Drupal Core, and many small changes add up to the most exciting Drupal release yet! We'll walk through many of the biggest changes, highlighting how Drupal 8 will accelerate your web development and provide tools to make Drupal the best content management platform on any device.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Ā
Clients donāt know what they donāt know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clientsā needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Welcome to the first live UiPath Community Day Dubai! Join us for this unique occasion to meet our local and global UiPath Community and leaders. You will get a full view of the MEA region's automation landscape and the AI Powered automation technology capabilities of UiPath. Also, hosted by our local partners Marc Ellis, you will enjoy a half-day packed with industry insights and automation peers networking.
š Curious on our agenda? Wait no more!
10:00 Welcome note - UiPath Community in Dubai
Lovely Sinha, UiPath Community Chapter Leader, UiPath MVPx3, Hyper-automation Consultant, First Abu Dhabi Bank
10:20 A UiPath cross-region MEA overview
Ashraf El Zarka, VP and Managing Director MEA, UiPath
10:35: Customer Success Journey
Deepthi Deepak, Head of Intelligent Automation CoE, First Abu Dhabi Bank
11:15 The UiPath approach to GenAI with our three principles: improve accuracy, supercharge productivity, and automate more
Boris Krumrey, Global VP, Automation Innovation, UiPath
12:15 To discover how Marc Ellis leverages tech-driven solutions in recruitment and managed services.
Brendan Lingam, Director of Sales and Business Development, Marc Ellis
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Ā
Monitoring and observability arenāt traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current companyās observability stack.
While the dev and ops silo continues to crumbleā¦.many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
Ā
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
Ā
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
The Metaverse and AI: how can decision-makers harness the Metaverse for their...Jen Stirrup
Ā
The Metaverse is popularized in science fiction, and now it is becoming closer to being a part of our daily lives through the use of social media and shopping companies. How can businesses survive in a world where Artificial Intelligence is becoming the present as well as the future of technology, and how does the Metaverse fit into business strategy when futurist ideas are developing into reality at accelerated rates? How do we do this when our data isn't up to scratch? How can we move towards success with our data so we are set up for the Metaverse when it arrives?
How can you help your company evolve, adapt, and succeed using Artificial Intelligence and the Metaverse to stay ahead of the competition? What are the potential issues, complications, and benefits that these technologies could bring to us and our organizations? In this session, Jen Stirrup will explain how to start thinking about these technologies as an organisation.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
Ā
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties ā USA
Expansion of bot farms ā how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks ā Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
Ā
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more āmechanicalā approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Ā
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Enhancing Performance with Globus and the Science DMZGlobus
Ā
ESnet has led the way in helping national facilitiesāand many other institutions in the research communityāconfigure Science DMZs and troubleshoot network issues to maximize data transfer performance. In this talk we will present a summary of approaches and tips for getting the most out of your network infrastructure using Globus Connect Server.
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Ā
Building better applications for business users with SAP Fiori.
ā¢ What is SAP Fiori and why it matters to you
ā¢ How a better user experience drives measurable business benefits
ā¢ How to get started with SAP Fiori today
ā¢ How SAP Fiori elements accelerates application development
ā¢ How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
ā¢ How SAP Fiori paves the way for using AI in SAP apps
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Ā
Twig & the new theme layer in Drupal 8
1. THE NEW THEME LAYER
IN DRUPAL 8
Jen Lampton
Thursday, April 11, 2013
2. JEN LAMPTON
@jenlampton on twitter
ājenlamptonā http://drupal.org/user/85586
www.jenlampton.com
Ā
if you forget my name, just Google āDrupal developerā
Thursday, April 11, 2013
3. MY BACKGROUND
Ā
Building websites since 1997
Thursday, April 11, 2013
4. MY BACKGROUND
Ā
Working with Drupal since 2006
Thursday, April 11, 2013
5. MY BACKGROUND
Ā
Consider myself a developer.
Thursday, April 11, 2013
6. MY BACKGROUND
Ā
Also a Drupal trainer.
Thursday, April 11, 2013
7. MY BACKGROUND
Ā
Accidental Drupal 8 āinitiativeā leader.
Thursday, April 11, 2013
9. MY āINITIATIVEā
(unofļ¬cial)
Ā
A new theme layer for Drupal 8
Thursday, April 11, 2013
10. THEME LAYER?
1) Generation of Markup:
ā¢Template ļ¬les (as close to HTML as possible)
ā¢Preparation of data (for insertion into template ļ¬les)
ā¢Addition of assets (CSS + JS)
Ā
Thursday, April 11, 2013
11. THEME LAYER?
2) System of complete overrides:
ā¢Alteration of HTML in template ļ¬les
ā¢Alteration of data (before insertion into templates)
ā¢Inclusion of additional assets Ā
(or exclusion of existing assets)
Thursday, April 11, 2013
12. THEME LAYER?
3) System of partial overrides:
ā¢Alteration of HTML in template ļ¬les
ā¢Alteration of data (before insertion into templates)
ā¢Inclusion of additional assets Ā
(or exclusion of existing assets)
...but only under certain circumstances.
Thursday, April 11, 2013
13. DRUPAL 7 THEME LAYER
but, we have this now!
Ā
Thursday, April 11, 2013
14. DRUPAL 7 THEME LAYER
it looks like this (simpliļ¬ed)
Ā
Thursday, April 11, 2013
15. DRUPAL 7 THEME LAYER
it feels like this
Ā
Thursday, April 11, 2013
24. HARD TO LEARN
Really, itās insecure.
Ā
Thursday, April 11, 2013
25. HARD TO LEARN
Drupal-speciļ¬c
Ā
Drupalism noun Something that only exists in Drupal.
Thursday, April 11, 2013
26. HARD TO LEARN
Ā
too many complex subsystems
Thursday, April 11, 2013
27. HARD TO LEARN
because
1. Mixed data types (strings, objects & arrays)
2. Different methods of printing variables (print, render)
3.Two ways to override markup: templates & theme fns
Ā
4. Too many template ļ¬les & Too many theme functions
5. Insecure
6. Drupal-speciļ¬c
7. A complex mix of subsystems
Thursday, April 11, 2013
28. DRUPAL 8 THEME LAYER
Principals to guide us.
lb.com/twig#principles
Thursday, April 11, 2013
29. DRUPAL 8 THEME LAYER
Principals to guide us
1. Start with nothing
Core default markup should strive for semantic simplicity, with
few HTML elements, added only as needed
lb.com/twig#principles
Thursday, April 11, 2013
30. DRUPAL 8 THEME LAYER
Principals to guide us
1. Start with nothing
2. Build from use cases
We won't assume we know what people want or add features
based on "What-if...?" We will think about the 90% of use cases.
lb.com/twig#principles
Thursday, April 11, 2013
31. DRUPAL 8 THEME LAYER
Principals to guide us
1. Start with nothing
2. Build from use cases
3. Provide tools
Give front-end experts a way to achieve speciļ¬c goals; goals that
apply to the remaining 10% of use cases.
lb.com/twig#principles
Thursday, April 11, 2013
32. DRUPAL 8 THEME LAYER
Principals to guide us
1. Start with nothing
2. Build from use cases
3. Provide tools
4. Consolidate
Don't make something new when something common can be
used instead. (letās create a Theme Component Library).
lb.com/twig#principles
Thursday, April 11, 2013
33. DRUPAL 8 THEME LAYER
Principals to guide us
1. Start with nothing
2. Build from use cases
3. Provide tools
4. Consolidate
5. Visibility
You should be able to see what's going on without reading docs.
lb.com/twig#principles
Thursday, April 11, 2013
34. DRUPAL 8 THEME LAYER
Principals to guide us
1. Start with nothing
2. Build from use cases
3. Provide tools
4. Consolidate
5. Visibility
6. Consistency
Do the same things everywhere, follow patterns.
lb.com/twig#principles
Thursday, April 11, 2013
35. DRUPAL 8 THEME LAYER
Principals to guide us
1. Start with nothing
2. Build from use cases
3. Provide tools
4. Consolidate
5. Visibility
6. Consistency
7. Don't dumb it down
Complexity should be reduced but not obscured.
lb.com/twig#principles
Thursday, April 11, 2013
36. DRUPAL 8 THEME LAYER
Principals to guide us
1. Start with nothing
2. Build from use cases
3. Provide tools
4. Consolidate
5. Visibility
6. Consistency
7. Don't dumb it down
8. Organization should be driven by meaning and
semantics over technical convenience
Consider what an element means rather than how it
structurally appears. Theme developers want to see markup in
templates, not abstraction.
Thursday, April 11, 2013
43. TWIG
recognizable syntax
Thursday, April 11, 2013
44. TWIG
by the creator of Symfony, Fabien Potencier
Thursday, April 11, 2013
45. TWIG
what does it look like?
Thursday, April 11, 2013
46. TWIG
what does it look like?
Thursday, April 11, 2013
47. TWIG
print with {{ }}
Thursday, April 11, 2013
48. TWIG
commands with {% %}
Thursday, April 11, 2013
49. TWIG
comments with {# #}
Thursday, April 11, 2013
50. TWIG
drill down into all variables with .
Thursday, April 11, 2013
51. TWIG
All markup is generated in template ļ¬les.
Thursday, April 11, 2013
52. D7 PAIN POINTS
does Twig help?
1. Mixed data types
2. Different methods of printing variables
3.Two ways to override markup
Ā
4. Too many template ļ¬les & theme functions
5. Insecure
6. Drupal-speciļ¬c
7. A complex mix of subsystems
Thursday, April 11, 2013
53. D7 PAIN POINTS
does Twig help?
1. Mixed data types
Ā
Thursday, April 11, 2013
54. D7 PAIN POINTS
does Twig help?
1. Mixed data types
All template variables are accessed
consistently:
Ā
node.nid
content.links
Thursday, April 11, 2013
55. D7 PAIN POINTS
does Twig help?
1. Mixed data types FIXED
Ā
Thursday, April 11, 2013
56. D7 PAIN POINTS
does Twig help?
1. Mixed data types FIXED
2. Different methods of printing variables
Ā
Thursday, April 11, 2013
57. D7 PAIN POINTS
does Twig help?
1. Mixed data types FIXED
2. Different methods of printing variables
Removed calls to render() from templates:
Ā
{{ node.nid }}
{{ content.links }}
Thursday, April 11, 2013
58. D7 PAIN POINTS
does Twig help?
1. Mixed data types FIXED
2. Different methods of printing variables FIXED
Ā
Thursday, April 11, 2013
59. D7 PAIN POINTS
does Twig help?
1. Mixed data types FIXED
2. Different methods of printing variables FIXED
3.Two ways to override markup
Ā
Thursday, April 11, 2013
60. D7 PAIN POINTS
does Twig help?
1. Mixed data types FIXED
2. Different methods of printing variables FIXED
3.Two ways to override markup
Ā
All theme functions become templates.
node.tpl.php becomes node.html.twig
theme_table() becomes table.html.twig
Thursday, April 11, 2013
61. D7 PAIN POINTS
does Twig help?
1. Mixed data types FIXED
2. Different methods of printing variables FIXED
3.Two ways to override markup FIXED
Ā
Thursday, April 11, 2013
62. D7 PAIN POINTS
does Twig help?
1. Mixed data types FIXED
2. Different methods of printing variables FIXED
3.Two ways to override markup FIXED
Ā
4. Too many template ļ¬les & theme functions
Thursday, April 11, 2013
63. D7 PAIN POINTS
does Twig help?
1. Mixed data types FIXED
2. Different methods of printing variables FIXED
3.Two ways to override markup FIXED
Ā
4. Too many template ļ¬les & theme functions
Weāre working on this right now
Thursday, April 11, 2013
64. D7 PAIN POINTS
does Twig help?
1. Mixed data types FIXED
2. Different methods of printing variables FIXED
3.Two ways to override markup FIXED
Ā
4. Too many template ļ¬les & theme functions @todo
Thursday, April 11, 2013
65. D7 PAIN POINTS
does Twig help?
1. Mixed data types FIXED
2. Different methods of printing variables FIXED
3.Two ways to override markup FIXED
Ā
4. Too many template ļ¬les & theme functions @todo
5. Insecure
Thursday, April 11, 2013
66. D7 PAIN POINTS
does Twig help?
1. Mixed data types FIXED
2. Different methods of printing variables FIXED
3.Two ways to override markup FIXED
Ā
4. Too many template ļ¬les & theme functions @todo
5. Insecure
All variables are *automatically* sanitized
and most PHP functions
cannot be executed in template ļ¬les.
Thursday, April 11, 2013
67. D7 PAIN POINTS
does Twig help?
1. Mixed data types FIXED
2. Different methods of printing variables FIXED
3.Two ways to override markup FIXED
Ā
4. Too many template ļ¬les & theme functions @todo
5. Insecure FIXED
Thursday, April 11, 2013
68. D7 PAIN POINTS
does Twig help?
1. Mixed data types FIXED
2. Different methods of printing variables FIXED
3.Two ways to override markup FIXED
Ā
4. Too many template ļ¬les & theme functions @todo
5. Insecure FIXED
6. Drupal-speciļ¬c
Thursday, April 11, 2013
69. D7 PAIN POINTS
does Twig help?
1. Mixed data types FIXED
2. Different methods of printing variables FIXED
3.Two ways to override markup FIXED
Ā
4. Too many template ļ¬les & theme functions @todo
5. Insecure FIXED
6. Drupal-speciļ¬c
Twig is used elsewhere on the web
is syntactically similar to other languages
and looks a lot more like HTML.
Thursday, April 11, 2013
70. D7 PAIN POINTS
does Twig help?
1. Mixed data types FIXED
2. Different methods of printing variables FIXED
3.Two ways to override markup FIXED
Ā
4. Too many template ļ¬les & theme functions @todo
5. Insecure FIXED
6. Drupal-speciļ¬c FIXED
Thursday, April 11, 2013
71. D7 PAIN POINTS
does Twig help?
1. Mixed data types FIXED
2. Different methods of printing variables FIXED
3.Two ways to override markup FIXED
Ā
4. Too many template ļ¬les & theme functions @todo
5. Insecure FIXED
6. Drupal-speciļ¬c FIXED
7. A complex mix of subsystems
Thursday, April 11, 2013
78. D7 PAIN POINTS
does Twig help?
1. Mixed data types FIXED
2. Different methods of printing variables FIXED
3.Two ways to override markup FIXED
Ā
4. Too many template ļ¬les & theme functions @todo
5. Insecure FIXED
6. Drupal-speciļ¬c FIXED
7. A complex mix of subsystems
We can remove all theme functions, render,
process & (maybe) preprocess too.
Thursday, April 11, 2013
79. D7 PAIN POINTS
does Twig help?
1. Mixed data types FIXED
2. Different methods of printing variables FIXED
3.Two ways to override markup FIXED
Ā
4. Too many template ļ¬les & theme functions @todo
5. Insecure FIXED
6. Drupal-speciļ¬c FIXED
7. A complex mix of subsystems @todo
Thursday, April 11, 2013
80. D7 PAIN POINTS
does Twig help?
Ā
Thursday, April 11, 2013
81. D7 PAIN POINTS
does Twig help?
YES!!!
Ā
Thursday, April 11, 2013
93. TWIG: OTHER WINS
Template inheritance
comment-wrapper.html.twig before
Thursday, April 11, 2013
94. TWIG: OTHER WINS
Template inheritance
comment-wrapper.html.twig after
Thursday, April 11, 2013
95. TWIG: OTHER WINS
Template inheritance
comment-wrapper--forum.html.twig
(child template)
Thursday, April 11, 2013
96. TWIG: OTHER WINS
Possible performance gains (Much TBD)
Thursday, April 11, 2013
97. TWIG: OTHER WINS
Possible performance gains (Much TBD)
ā¢ PHPtemplate reads ļ¬les from disk on every use
(or stat()s them with APC)
ā¢ Twig templates are read once & compiled into classes
Thursday, April 11, 2013
98. TWIG: OTHER WINS
Possible performance gains (Much TBD)
ā¢ PHPtemplate reads ļ¬les from disk on every use
(or stat()s them with APC)
ā¢ Twig templates are read once & compiled into classes
Rendering should get much faster when the same
content element appears multiple times on the page.
Thursday, April 11, 2013
99. TWIG: OTHER WINS
Possible performance gains (Much TBD)
ā¢ PHPtemplate reads ļ¬les from disk on every use
(or stat()s them with APC)
ā¢ Twig templates are read once & compiled into classes
Rendering should get much faster when the same
content element appears multiple times on the page.
Consolidating many similar templates will result in an
additional gain.
Thursday, April 11, 2013
100. TWIG: OTHER WINS
In-browser template editing ļ¬nally safe.
Thursday, April 11, 2013
101. TWIG: OTHER WINS
In-browser template editing ļ¬nally safe.
ā¢ Saving PHP code in the database is a HUGE no-no.
ā¢ Twig is not PHP, and is safe to store!
Thursday, April 11, 2013
102. TWIG: OTHER WINS
In-browser template editing ļ¬nally safe.
ā¢ Saving PHP code in the database is a HUGE no-no.
ā¢ Twig is not PHP, and is safe to store!
Modules like āContemplateā (Content templates) will
ļ¬nally be safe to use.
Thursday, April 11, 2013
103. TWIG: OTHER WINS
In-browser template editing ļ¬nally safe.
ā¢ Saving PHP code in the database is a HUGE no-no.
ā¢ Twig is not PHP, and is safe to store!
Modules like āContemplateā (Content templates) will
ļ¬nally be safe to use.
In-browser template editing is something WordPress
users have been asking of Drupal for a very long time.
Thursday, April 11, 2013
104. TWIG: OTHER WINS
Twig template ļ¬les can be used on the front end, too.
Thursday, April 11, 2013
105. TWIG: OTHER WINS
Twig template ļ¬les can be used on the front end, too.
One template can return markup for both your PHP-generated
pages, as well as pages generated vi JS in AJAX callbacks.
Thursday, April 11, 2013
106. TWIG: OTHER WINS
Twig template ļ¬les can be used on the front end, too.
One template can return markup for both your PHP-generated
pages, as well as pages generated vi JS in AJAX callbacks.
We can use other open source libraries like TwigJS.
(https://github.com/schmittjoh/twig.js)
Thursday, April 11, 2013
107. TWIG: OTHER WINS
2-way communication between UI and code.
Thursday, April 11, 2013
108. TWIG: OTHER WINS
2-way communication between UI and code.
No broken UIs.
Thursday, April 11, 2013
109. TWIG: OTHER WINS
2-way communication between UI and code.
No broken UIs.
Template ļ¬les can be created ļ¬rst, and the Drupal site can build
itself* based on the presence and location of variables in the
templates.
*within reason
Thursday, April 11, 2013
110. THE NEW THEME LAYER
IN DRUPAL 8
looks pretty awesome, right?
Thursday, April 11, 2013
112. HELP US GET THERE
we need your help!
we could be ādoneā in 1.5 weeks
http://drupal.org/node/1757550
IRC: #drupal-twig
Thursday, April 11, 2013
113. THE NEW THEME LAYER
IN DRUPAL 8
Jen Lampton ~ @jenlampton
www.jenlampton.com
Thursday, April 11, 2013