This document summarizes updates to the Display Suite module, including:
1. Configuration management improvements where settings are now stored in configuration files like YAML instead of the database.
2. Display Suite now uses Twig templates to define layouts and regions. An example one column Twig template is shown.
3. Additional context is provided on contextual links, form, and comment support in Twig templates.
These are the slides for a workshop I’ve given at a couple conferences, explaining how Twig works to people who don’t necessarily come from a programming background.
Twig is the template engine used by Drupal 8 and other modern PHP applications. Twig's expressiveness, consistency and secure-by-default policy are still unparalleled among PHP's template engines.
In this session you'll learn advanced techniques, tips and tricks useful for real-world applications and uncommonly used features that will allow you to master Twig.
PHP7 brings a tremendous number of new features. Tonight, we will take a look at the null coalesce operator, new execution order (uniform variable syntax), new exceptions and more.
Back to the basics: Modelando nuestro dominio #scbcn19CodelyTV
SOLID, Arquitectura Hexagonal, CQRS, DDD… total, que llega el momento de modelar nuestras entidades y servicios, y nos hacemos un lío que no sabemos ni por dónde empezar .
Sensación de bloqueo. ""Hostia, llevo 3 horas pensando y dibujando posibles alternativas y ninguna me convence. Al final será verdad que no tengo ni idea "".
Planteamos hipótesis erróneas del estilo… _si lo hago con DDD ""de verdad"" la query no aguanta ni 100 peticiones concurrentes, pero esto otro me parece una chapuza, y esto otro viola 7 de los 5 principios SOLID… ¡¡¡mmmmmamaaaaaa!!! ._
Keep calm.
En esta charla plantearemos distintos escenarios prácticos y reales. Casos de uso de esos que se pueden ver en un screenshot y donde la gran mayoría de desarrolladores web y móviles nos podemos ver identificados:
* Listado de items con 652342 filtros y combinatorias (backoffices, páginas de categoría o filtrados, búsquedas…)
* Tipologías de items con partes comunes pero pequeños matices (productos de distintas categorías por ejemplo)
* Distintas opciones a la hora de modelar nuestras interfaces para hacerlas realmente agnósticas de la infraestructura que hay detrás
En fin. Cositas que nos han supuesto un reto a la hora de plantearlas, que hemos fallado modelando y hasta que no lo hemos tenido picado no nos hemos dado cuenta de la magnitud de la tragedia, y batallitas que ojalá puedan serle útiles a alguien
These are the slides for a workshop I’ve given at a couple conferences, explaining how Twig works to people who don’t necessarily come from a programming background.
Twig is the template engine used by Drupal 8 and other modern PHP applications. Twig's expressiveness, consistency and secure-by-default policy are still unparalleled among PHP's template engines.
In this session you'll learn advanced techniques, tips and tricks useful for real-world applications and uncommonly used features that will allow you to master Twig.
PHP7 brings a tremendous number of new features. Tonight, we will take a look at the null coalesce operator, new execution order (uniform variable syntax), new exceptions and more.
Back to the basics: Modelando nuestro dominio #scbcn19CodelyTV
SOLID, Arquitectura Hexagonal, CQRS, DDD… total, que llega el momento de modelar nuestras entidades y servicios, y nos hacemos un lío que no sabemos ni por dónde empezar .
Sensación de bloqueo. ""Hostia, llevo 3 horas pensando y dibujando posibles alternativas y ninguna me convence. Al final será verdad que no tengo ni idea "".
Planteamos hipótesis erróneas del estilo… _si lo hago con DDD ""de verdad"" la query no aguanta ni 100 peticiones concurrentes, pero esto otro me parece una chapuza, y esto otro viola 7 de los 5 principios SOLID… ¡¡¡mmmmmamaaaaaa!!! ._
Keep calm.
En esta charla plantearemos distintos escenarios prácticos y reales. Casos de uso de esos que se pueden ver en un screenshot y donde la gran mayoría de desarrolladores web y móviles nos podemos ver identificados:
* Listado de items con 652342 filtros y combinatorias (backoffices, páginas de categoría o filtrados, búsquedas…)
* Tipologías de items con partes comunes pero pequeños matices (productos de distintas categorías por ejemplo)
* Distintas opciones a la hora de modelar nuestras interfaces para hacerlas realmente agnósticas de la infraestructura que hay detrás
En fin. Cositas que nos han supuesto un reto a la hora de plantearlas, que hemos fallado modelando y hasta que no lo hemos tenido picado no nos hemos dado cuenta de la magnitud de la tragedia, y batallitas que ojalá puedan serle útiles a alguien
This presentation was delivered on 11th May, 2014 in Drupal Camp Pakistan held in DatumSquare IT Services Islamabad. Contents of the presentation contains some basics stuff for designers, themers and coders.
Little documentation and few base themes with 8.x branches - what's a front end developer to do? I'll show you what's changing in Drupal theming between D7 and D8 and how to create a custom theme based on the Classy base theme, step by step. We'll go over Twig basics and Twig debugging.
Drupal 8 rewrote all of its HTML templates using Twig. But Drupal only uses 30% of Twig's full power. In this session, we'll start with the basics and work our way through Twig's powerful feature set.
Building and Maintaining a Distribution in Drupal 7 with FeaturesNuvole
Drupal 7 allows to easily build and maintain distributions, i.e. repeatable website templates; you can benefit from this in all cases, whether you aim at large-scale deployments or even at maintaining a single website.
We will show how to package core and contributed modules in a distribution by using a Makefile and a profile and keeping them up-to-date during the whole development cycle.
Then you will learn how to use Code-Driven Development to store all settings in a sustainable way: use the Features module to easily describe configuration in code, a proper separation between Features to make your code reusable and extendible, a well-thought design of Features to create easier development patterns, CTools and Exportables to put your configuration in code even when a module does not support it natively.
Last, we will see how the distributions update mechanism allows you to create a new version of your distribution for easy and painless configuration updates of a live site.
Twig for Drupal @ Frontendunited Amsterdam 2012Rene Bakx
The slides for the Twig for Drupal 7 introduction talk I gave at FrontendUnited in Amsterdam.
No hardcore coding, just examples why Twig is for HTML was SASS is for your CSS.
Future proofing design work with Web componentsbtopro
Web components are a W3C standard that's been adopted by all major browsers as of October 2018. The Version 1 specification is a joy to work with and brings the web into a composing context from a raw materials one. That is, we can now directly repurpose and leverage our efforts to build bigger and better experiences (like modern home development practices) instead of constantly reinventing the wheel (like molding bricks out of clay to work on our house).
As of this writing, the ELMS:LN team (4 people) at Penn State has created 433 web components for generalized use. We've built an editor, a CMS, integrated those elements into Drupal (multiple versions), delivered static sites, worked on desktop apps, and done design work entirely, end to end, using web components and a uniform process for creating and deploying them.
Talk structure:
What are web components, can I use them, answering questions of libraries, polyfills, SEO, and accessibility
Examples of who has adopted them and what they doing with them
Community resources like polymer slack, webcomponents, and open-wc.org
Detailed examples of adoption in production, Drupal and non-Drupal environments, lessons learned and unthinkable wins
Our WCFactory tooling that automates much of the workflow of producing a sustainable element portfolio
How teams can leverage web components across projects
Where Drupal 6,7,8,9 fit into the future with web components
Where the future is going with HAXeditor and HAXcms, the future of micro-site generation and management
Our team is in love with web components and we think you will too! Join us and build better, more sustainable design systems of the future (today)!
This presentation was delivered on 11th May, 2014 in Drupal Camp Pakistan held in DatumSquare IT Services Islamabad. Contents of the presentation contains some basics stuff for designers, themers and coders.
Little documentation and few base themes with 8.x branches - what's a front end developer to do? I'll show you what's changing in Drupal theming between D7 and D8 and how to create a custom theme based on the Classy base theme, step by step. We'll go over Twig basics and Twig debugging.
Drupal 8 rewrote all of its HTML templates using Twig. But Drupal only uses 30% of Twig's full power. In this session, we'll start with the basics and work our way through Twig's powerful feature set.
Building and Maintaining a Distribution in Drupal 7 with FeaturesNuvole
Drupal 7 allows to easily build and maintain distributions, i.e. repeatable website templates; you can benefit from this in all cases, whether you aim at large-scale deployments or even at maintaining a single website.
We will show how to package core and contributed modules in a distribution by using a Makefile and a profile and keeping them up-to-date during the whole development cycle.
Then you will learn how to use Code-Driven Development to store all settings in a sustainable way: use the Features module to easily describe configuration in code, a proper separation between Features to make your code reusable and extendible, a well-thought design of Features to create easier development patterns, CTools and Exportables to put your configuration in code even when a module does not support it natively.
Last, we will see how the distributions update mechanism allows you to create a new version of your distribution for easy and painless configuration updates of a live site.
Twig for Drupal @ Frontendunited Amsterdam 2012Rene Bakx
The slides for the Twig for Drupal 7 introduction talk I gave at FrontendUnited in Amsterdam.
No hardcore coding, just examples why Twig is for HTML was SASS is for your CSS.
Future proofing design work with Web componentsbtopro
Web components are a W3C standard that's been adopted by all major browsers as of October 2018. The Version 1 specification is a joy to work with and brings the web into a composing context from a raw materials one. That is, we can now directly repurpose and leverage our efforts to build bigger and better experiences (like modern home development practices) instead of constantly reinventing the wheel (like molding bricks out of clay to work on our house).
As of this writing, the ELMS:LN team (4 people) at Penn State has created 433 web components for generalized use. We've built an editor, a CMS, integrated those elements into Drupal (multiple versions), delivered static sites, worked on desktop apps, and done design work entirely, end to end, using web components and a uniform process for creating and deploying them.
Talk structure:
What are web components, can I use them, answering questions of libraries, polyfills, SEO, and accessibility
Examples of who has adopted them and what they doing with them
Community resources like polymer slack, webcomponents, and open-wc.org
Detailed examples of adoption in production, Drupal and non-Drupal environments, lessons learned and unthinkable wins
Our WCFactory tooling that automates much of the workflow of producing a sustainable element portfolio
How teams can leverage web components across projects
Where Drupal 6,7,8,9 fit into the future with web components
Where the future is going with HAXeditor and HAXcms, the future of micro-site generation and management
Our team is in love with web components and we think you will too! Join us and build better, more sustainable design systems of the future (today)!
Build a video chat application with twilio, rails, and javascript (part 1)Katy Slemon
Build your own video chat application with Twilio, Rails, and JavaScript in this tutorial. Learn with an example so that you can video chat with anyone easily.
The Flexibility of Drupal 8 | DCNLights 2017Michael Miles
In this session we will demonstrate the flexibility of Drupal by going over 8 different ways in Drupal 8 that data can be manipulated. From non-technical methods, "frontend" javascript & templating methods, to "Backend" methods such as building a custom module and overriding services. This session will demonstrate how to implement each one outlining their individual pros and cons, proving that no matter your skill sets you can make Drupal 8 do what you want.
This session is supposed to present various ways to overwrite the default behaviour of the drupal core and some of the well-known contributed modules (like views or panels). The focus will be on Drupal 7, but each case will also have the Drupal 8 correspondent. This will go beyond the things that can be overwrite with alter hooks, and will try to present cases when some specific behavior of a class or small pieces of code have to be overwritten. The attendees should be familiar with Drupal and should have developed at least a few modules before.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
2. Bram
Goffings
Drupal
developer
@
nascom
Twi?er:
@aspilicious
D.o:
@aspilicious
Co-‐maintainer
Display
Suite
Play
a
mean
game
of
table
tennis
About
me
5. ConfiguraNon
management
(cmi)
SeQngs
are
stored
in
configuraNon
files
#
ds.config.yml
field_template:
'0'
.-‐default:
theme_field
.-‐kill-‐colon:
'0’
6. ConfiguraNon
management
(cmi)
Custom
fields
made
in
the
UI
are
saved
in
yml
files.
#
ds.field.test.yml
proper:es:
code:
value:
test
format:
ds_code
use_token:
0
field:
test
label:
test
ui_limit:
''
en::es:
node:
node
field_type:
code_field
7. ConfiguraNon
management
(cmi)
Custom
field
and
region
classes
are
saved
in
yml
files
#
ds.classes.yml
regions:
'test_region_class'
fields:
'test_fields_class'
10. Twig
Display
Suite
one-‐col
layout
{#
/**
*
@file
*
Display
Suite
1
column
template.
*
*
Available
variables:
*
-‐
ds_content_wrapper:
@todo
*
-‐
a?ributes:
@todo
*
-‐
Ntle_suffix:
@todo
*
-‐
ds_content:
@todo
*/
#}
<{{
ds_content_wrapper
}}
class="ds-‐1col
{{
a?ributes.class
}}
clearfix"
{{
a?ributes
}}
>
{%
if
Ntle_suffix.contextual_links
is
not
null
%}
{{
Ntle_suffix.contextual_links
}}
{%
endif
%}
{{
ds_content
}}
</{{
ds_content_wrapper
}}>
{%
if
drupal_render_children
is
not
null
%}
{{
drupal_render_children
}}
{%
endif
%}
11. Twig
Display
Suite
one-‐col
layout
{#
/**
*
@file
*
Display
Suite
1
column
template.
*
*
Available
variables:
*
-‐
ds_content_wrapper:
@todo
*
-‐
a?ributes:
@todo
*
-‐
Ntle_suffix:
@todo
*
-‐
ds_content:
@todo
*/
#}
<{{
ds_content_wrapper
}}
class="ds-‐1col
{{
a?ributes.class
}}
clearfix"
{{
a?ributes
}}
>
{%
if
Ntle_suffix.contextual_links
is
not
null
%}
{{
Ntle_suffix.contextual_links
}}
{%
endif
%}
{{
ds_content
}}
</{{
ds_content_wrapper
}}>
{%
if
drupal_render_children
is
not
null
%}
{{
drupal_render_children
}}
{%
endif
%}
ç
comments
12. Twig
Display
Suite
one-‐col
layout
{#
/**
*
@file
*
Display
Suite
1
column
template.
*
*
Available
variables:
*
-‐
ds_content_wrapper:
@todo
*
-‐
a?ributes:
@todo
*
-‐
Ntle_suffix:
@todo
*
-‐
ds_content:
@todo
*/
#}
<{{
ds_content_wrapper
}}
class="ds-‐1col
{{
a?ributes.class
}}
clearfix"
{{
a?ributes
}}
>
{%
if
Ntle_suffix.contextual_links
is
not
null
%}
{{
Ntle_suffix.contextual_links
}}
{%
endif
%}
{{
ds_content
}}
</{{
ds_content_wrapper
}}>
{%
if
drupal_render_children
is
not
null
%}
{{
drupal_render_children
}}
{%
endif
%}
ç
Contextual
links
support
13. Twig
Display
Suite
one-‐col
layout
{#
/**
*
@file
*
Display
Suite
1
column
template.
*
*
Available
variables:
*
-‐
ds_content_wrapper:
@todo
*
-‐
a?ributes:
@todo
*
-‐
Ntle_suffix:
@todo
*
-‐
ds_content:
@todo
*/
#}
<{{
ds_content_wrapper
}}
class="ds-‐1col
{{
a?ributes.class
}}
clearfix"
{{
a?ributes
}}
>
{%
if
Ntle_suffix.contextual_links
is
not
null
%}
{{
Ntle_suffix.contextual_links
}}
{%
endif
%}
{{
ds_content
}}
</{{
ds_content_wrapper
}}>
{%
if
drupal_render_children
is
not
null
%}
{{
drupal_render_children
}}
{%
endif
%}
ç
DS
form
support
14. Twig
Display
Suite
one-‐col
layout
{#
/**
*
@file
*
Display
Suite
1
column
template.
*
*
Available
variables:
*
-‐
ds_content_wrapper:
@todo
*
-‐
a?ributes:
@todo
*
-‐
Ntle_suffix:
@todo
*
-‐
ds_content:
@todo
*/
#}
<{{
ds_content_wrapper
}}
class="ds-‐1col
{{
a?ributes.class
}}
clearfix"
{{
a?ributes
}}
>
{%
if
Ntle_suffix.contextual_links
is
not
null
%}
{{
Ntle_suffix.contextual_links
}}
{%
endif
%}
{{
ds_content
}}
</{{
ds_content_wrapper
}}>
{%
if
drupal_render_children
is
not
null
%}
{{
drupal_render_children
}}
{%
endif
%}
Actual
template!
15. Twig
Drush
layout
script
is
not
yet
(completely)
working
16. RouNng,
controllers
and
Symfony
• Converted
hook_menu
to
the
new
rouNng
system
• Converted
procedural
callbacks
to
controller
classes
• Converted
form
callbacks
to
form
classes
• Made
use
of
the
symfony
request
objects.
• …
18. RouNng,
controllers
and
Symfony
I
need
a
few
hours
to
go
through
all
the
changes.
Browse
through
the
Display
Suite
UI
module
source
code
if
you’re
curious
how
the
rouNng
system
is
working
in
D8
now.
19. RouNng,
controllers
and
Symfony
I
need
a
few
hours
to
go
through
all
the
changes.
Browse
through
the
Display
Suite
UI
module
source
code
if
you’re
curious
how
the
rouNng
system
is
working
in
D8
now.
The
router
stuff
will
sNll
change
a
lot
before
Drupal
8
is
released.
25. What
is
a
DS
field
plugin?
A
class
that
implements
the
DsFieldInterface
interface
26. What
is
a
DS
field
plugin?
A
class
that
implements
the
DsFieldInterface
interface
Placed
in
the
DsField
namespace
namespace
Drupal<module>PluginDsField;
27. What
is
a
DS
field
plugin?
A
class
that
implements
the
DsFieldInterface
interface
Placed
in
the
DsField
namespace
namespace
Drupal<module>PluginDsField;
What
does
that
mean???
36. Hello
plugin
• A
field
that
prints
hello
• Place
inside
the
Drupal<module>PluginDsField
namespace
37. Hello
plugin
• A
field
that
prints
hello
• Place
inside
the
Drupalds_examplePluginDsField
namespace
38. Hello
plugin
• A
field
that
prints
hello
• Place
inside
the
Drupalds_examplePluginDsField
namespace
39. Hello
plugin
• A
field
that
prints
hello
• Place
inside
the
Drupalds_examplePluginDsField
namespace
That
are
a
lot
of
directories!!
40. Hello
plugin
• A
field
that
prints
hello
• Place
inside
the
Drupalds_examplePluginDsField
namespace
That
are
a
lot
of
directories!!
Get
used
to
it
J
41. Hello
plugin
<?php
namespace
Drupalds_examplePluginDsField;
use
DrupalCoreAnnotaNonTranslaNon;
use
DrupaldsAnnotaNonDsField;
use
DrupaldsPluginDsFieldDsFieldBase;
/**
*
@DsField(
*
id
=
"hello",
*
Ntle
=
@TranslaNon("Hello"),
*
enNty_type
=
"node",
*
module
=
"ds_example"
*
)
*/
class
Hello
extends
DsFieldBase
{
public
funcNon
render($field)
{
return
"hello";
}
}
42. Hello
plugin
<?php
namespace
Drupalds_examplePluginDsField;
use
DrupalCoreAnnotaNonTranslaNon;
use
DrupaldsAnnotaNonDsField;
use
DrupaldsPluginDsFieldDsFieldBase;
/**
*
@DsField(
*
id
=
"hello",
*
Ntle
=
@TranslaNon("Hello"),
*
enNty_type
=
"node",
*
module
=
"ds_example"
*
)
*/
class
Hello
extends
DsFieldBase
{
public
funcNon
render($field)
{
return
"hello";
}
}
43. Hello
plugin
<?php
namespace
Drupalds_examplePluginDsField;
use
DrupalCoreAnnotaNonTranslaNon;
use
DrupaldsAnnotaNonDsField;
use
DrupaldsPluginDsFieldDsFieldBase;
/**
*
@DsField(
*
id
=
"hello",
*
Ntle
=
@TranslaNon("Hello"),
*
enNty_type
=
"node",
*
module
=
"ds_example"
*
)
*/
class
Hello
extends
DsFieldBase
{
public
funcNon
render($field)
{
return
"hello";
}
}
44. Hello
plugin
<?php
namespace
Drupalds_examplePluginDsField;
use
DrupalCoreAnnotaNonTranslaNon;
use
DrupaldsAnnotaNonDsField;
use
DrupaldsPluginDsFieldDsFieldBase;
/**
*
@DsField(
*
id
=
"hello",
*
Ntle
=
@TranslaNon("Hello"),
*
enNty_type
=
"node",
*
module
=
"ds_example"
*
)
*/
class
Hello
extends
DsFieldBase
{
public
funcNon
render($field)
{
return
"hello";
}
}
45. Hello
plugin
<?php
namespace
Drupalds_examplePluginDsField;
use
DrupalCoreAnnotaNonTranslaNon;
use
DrupaldsAnnotaNonDsField;
use
DrupaldsPluginDsFieldDsFieldBase;
/**
*
@DsField(
*
id
=
"hello",
*
Ntle
=
@TranslaNon("Hello"),
*
enNty_type
=
"node",
*
module
=
"ds_example"
*
)
*/
class
Hello
extends
DsFieldBase
{
public
funcNon
render($field)
{
return
"hello";
}
}
46. Hello
plugin
<?php
namespace
Drupalds_examplePluginDsField;
use
DrupalCoreAnnotaNonTranslaNon;
use
DrupaldsAnnotaNonDsField;
use
DrupaldsPluginDsFieldDsFieldBase;
/**
*
@DsField(
*
id
=
"hello",
*
Ntle
=
@TranslaNon("Hello"),
*
enNty_type
=
"node",
*
module
=
"ds_example"
*
)
*/
class
Hello
extends
DsFieldBase
{
public
funcNon
render($field)
{
return
"hello";
}
}
47. Hello
plugin
<?php
namespace
Drupalds_examplePluginDsField;
use
DrupalCoreAnnotaNonTranslaNon;
use
DrupaldsAnnotaNonDsField;
use
DrupaldsPluginDsFieldDsFieldBase;
/**
*
@DsField(
*
id
=
"hello",
*
Ntle
=
@TranslaNon("Hello"),
*
enNty_type
=
"node",
*
module
=
"ds_example"
*
)
*/
class
Hello
extends
DsFieldBase
{
public
funcNon
render($field)
{
return
"hello";
}
}
49. Other
funcNonal
changes
• Field
templates
are
moved
from
ds
extras
to
ds
core
• CTools
integraNon
is
gone.
So
no
fancy
dynamic
field
integraNon
at
the
moment.
51. Please
test
it!
and
file
a
bug
report
when
it
fails*
*
When
filing
a
bug
report,
be
sure
it
isn’t
filed
yet.
Try
to
be
as
specific
as
possible.
Don’t
run
Display
Suite
on
a
“real”
drupal
8
site
yet
(if
they
exist).
Stuff
could
break.
We
are
not
responsible
for
the
mental
pain
a
broken
Display
Suite
module
causes
when
there
isn’t
an
official
release
yet.
Not
everything
is
converted
yet,
you
can
ask
us
in
irc
if
you’re
in
doubt.