Entities are a powerful architectural approach and tool introduced in Drupal 7 - in this presentation I explain what they are and how they can be used with references to examples of how entities are used already.
Presentation I gave at the Berkeley Drupal Users Group on February 27, 2012 covering entities in Drupal 7 including entity types, bundles, fields, nodes, the Entity API and the Schema API. I use TextbookMadness.com as an example of how to leverage entities.
Click on my name to find a newer (better!) version of these slides.
Top Ten Reasons to Use EntityFieldQuery in DrupalFredric Mitchell
Drupal 7 introduced a great class, EntityFieldQuery (EFQ), to easily grab information from entities that was not available in Drupal 6.
This session will explore why you should be already using EFQ in your development practices. We'll also review how to use it and explore it's relationship with Drupal view modes and block entities (Beans).
This session will also explore comparisons with Views, and how EFQ should replace some of the common development practices using Views as a query tool.
EFQ Top Ten
Core
Well Documented
Simple
Consumable
Object-Oriented
Extensible
Alterable
Exception Handling
View Modes
Beans
Con la versione 7 di Drupal è stato introdotto il concetto di Entity, poi evoluto con la versione 8, utilizzato come base di buona parte degli elementi core (nodi, tassonomie, utenti, ...), ma - soprattutto - è stata data la possibilità di costruire entity custom. L'utilizzo di queste apre le possibilità di personalizzazione dello strumento ad un livello superiore velocizzando notevolmente lo sviluppo.
Verranno mostrate le potenzialità nell'uso delle Entity custom e le integrazioni possibili.
Presentation I gave at the Berkeley Drupal Users Group on February 27, 2012 covering entities in Drupal 7 including entity types, bundles, fields, nodes, the Entity API and the Schema API. I use TextbookMadness.com as an example of how to leverage entities.
Click on my name to find a newer (better!) version of these slides.
Top Ten Reasons to Use EntityFieldQuery in DrupalFredric Mitchell
Drupal 7 introduced a great class, EntityFieldQuery (EFQ), to easily grab information from entities that was not available in Drupal 6.
This session will explore why you should be already using EFQ in your development practices. We'll also review how to use it and explore it's relationship with Drupal view modes and block entities (Beans).
This session will also explore comparisons with Views, and how EFQ should replace some of the common development practices using Views as a query tool.
EFQ Top Ten
Core
Well Documented
Simple
Consumable
Object-Oriented
Extensible
Alterable
Exception Handling
View Modes
Beans
Con la versione 7 di Drupal è stato introdotto il concetto di Entity, poi evoluto con la versione 8, utilizzato come base di buona parte degli elementi core (nodi, tassonomie, utenti, ...), ma - soprattutto - è stata data la possibilità di costruire entity custom. L'utilizzo di queste apre le possibilità di personalizzazione dello strumento ad un livello superiore velocizzando notevolmente lo sviluppo.
Verranno mostrate le potenzialità nell'uso delle Entity custom e le integrazioni possibili.
What's New in Drupal 8: Entity Field APIDrupalize.Me
In this presentation we take a high-level look at the new Drupal 8 Entity Field API. To view this presentation as a video, go to https://drupalize.me/videos/whats-new-drupal-8-entity-field-api?p=2075. This video is part of a series examining What's New in Drupal 8 and is produced by Drupalize.Me.
This presentation will starts with an Introduction to object-oriented programming. And presentation main objective is to create javascript object and parse it in different way.
jQuery UI Widgets, Drag and Drop, Drupal 7 JavascriptDarren Mothersele
These are the slides from my presentation at the London Drupal Drop In December 2011. I have posted more information to go along with these slides on my <a>Drupal blog</a>.
Using Templates to Achieve Awesomer ArchitectureGarann Means
Templates are the best kind of tool: simple to write and implement, but powerful enough to make your architecture slicker and your code leaner. Getting markup out of your Javascript is a huge deal, but templates can help with more than that. They can manage repeated code snippets, allow you to deftly switch states in single page applications, and help keep your code DRY when supporting users with and without Javascript enabled. Using and extending them creatively can make any architecture a little awesomer.
Dig Deeper into WordPress - WD Meetup CairoMohamed Mosaad
Dig deeper into WordPress is a presentation made for Web Designers Meetup in Cairo taken place on 17th Dec 2012.
Signup at WPMonkeys.com to get notified when awesome new WordPress related content is published.
atrium_username is a Drupal feature for managing user name display:
* a lightweight alternative to realname module;
* "works" before theme layer
* uses the node title of the user profile
What's New in Drupal 8: Entity Field APIDrupalize.Me
In this presentation we take a high-level look at the new Drupal 8 Entity Field API. To view this presentation as a video, go to https://drupalize.me/videos/whats-new-drupal-8-entity-field-api?p=2075. This video is part of a series examining What's New in Drupal 8 and is produced by Drupalize.Me.
This presentation will starts with an Introduction to object-oriented programming. And presentation main objective is to create javascript object and parse it in different way.
jQuery UI Widgets, Drag and Drop, Drupal 7 JavascriptDarren Mothersele
These are the slides from my presentation at the London Drupal Drop In December 2011. I have posted more information to go along with these slides on my <a>Drupal blog</a>.
Using Templates to Achieve Awesomer ArchitectureGarann Means
Templates are the best kind of tool: simple to write and implement, but powerful enough to make your architecture slicker and your code leaner. Getting markup out of your Javascript is a huge deal, but templates can help with more than that. They can manage repeated code snippets, allow you to deftly switch states in single page applications, and help keep your code DRY when supporting users with and without Javascript enabled. Using and extending them creatively can make any architecture a little awesomer.
Dig Deeper into WordPress - WD Meetup CairoMohamed Mosaad
Dig deeper into WordPress is a presentation made for Web Designers Meetup in Cairo taken place on 17th Dec 2012.
Signup at WPMonkeys.com to get notified when awesome new WordPress related content is published.
atrium_username is a Drupal feature for managing user name display:
* a lightweight alternative to realname module;
* "works" before theme layer
* uses the node title of the user profile
Face it: most Drupal intranets / extranets / back-offices feel sluggish, and that's because they do too much during the page cycle. Make them snappier by deferring work to a Queue worker.
Component Driven Development - DrupalCamp London 2017John Ennew
Do you recognise any of the following problems:
• Designers design pages which then need to be broken up by frontend developers
• Elements of a page are poorly named or misunderstood
• Static HTML prototypes and styleguides produced early in the project can't be easily ported into the backend CMS
• The static prototype and real site begin to drift away from each other as the project goes on, there is no longer a clear representation of the frontend
• The Drupal theme becomes complicated and confused.
• The design has become lost in translation and walls of indirection have sprung up between design and development teams.
This talk describes a component based approach to web design and development.
Rather than having the designers design some key pages of a site, get them to design components instead. Breaking things down into small and easily identifiable pieces or 'componentisation' is a practice used by developers and designers alike to help them solve complex problems.
With a component based approach your development team can maintain a catalogue of templates independent of the backend CMS.
When the backend work starts, these components will then be integrated into Drupal. This talk will describe a method for doing this which does not cause complex themes or copying pieces of template code out of the frontend prototypes.
This talk will cover:
• The general approach to component based development
• A method for developing components independent of the backend system which will be used
• How to integrate the components with Drupal 8
• An overview of the advantages of this approach
Slides from my session at DrupalCamp London 2017, http://drupalcamp.london/session/building-reusable-websites-drupal-8-lessons-learned-transforming-rednosedaycom
Eloquent è uno strumento potentissimo: permette di velocizzare, e di molto, lo sviluppo di applicazioni web offrendoti un’interfaccia molto chiara e intuitiva. Per la prototipazione rapida è il massimo. Tuttavia, non appena l’applicazione cresce di dimensione, la situazione rischia di esploderci in mano in quanto Eloquent soffre di tutti i limiti di un Active Record. Un’alternativa a questo pattern è il Data Mapper, implementato in maniera eccellente da Doctrine. In questo talk vedremo quindi come integrare Doctrine all'interno di Laravel e verrà dato qualche spunto su come strutturare un’architettura molto più solida.
Lithium: The Framework for People Who Hate FrameworksNate Abele
This is the presentation was given at ConFoo on March 11th by Nate Abele and Joël Perras, and is an introduction to the architectural problems with other frameworks that Lithium was designed to address, and how it addresses them. It also introduces programming paradigms like functional and aspect-oriented programming which address issues that OOP doesn't account for.
Finally, the talk provides a quick overview of the innovative and unparalleled features that Lithium provides, including the data layer, which supports both relational and non-relational databases.
Con la versione 7 di Drupal è stato introdotto il concetto di Entity.
Verranno mostrate le potenzialità nell'uso delle Entity custom e le integrazioni possibili.
Relatore: Marco Vito Moscaritolo
The jQuery community has provided thousands of useful plugins which can be stitched together to create exceptional websites. However, organizing those plugins, tracking their upstream changes and managing dependencies can become a nightmare with a system to help you manage. JavascriptMVC, and specifically its new version 3 release, provides a framework for organizing outside code, integrating it into your workflow and compressing down to a single output javascript file. This talk will focus on taking external plugins such as jQuery Tools, jQuery UI and other popular plugins and creating a workflow for building larger applications from these components. I will show how to use the JavascriptMVC “getter” and “pluginify” scripts to pull external resources. With JavascriptMVC 3, css and javascript can be packaged together creating truly convenient widgets. I will also demonstrate how often-used pieces of functionality can be abstracted into plugins and shared with the general community via Github.
Building Lithium Apps (Like a Boss) was a workshop presented on the structure and philosophy of the Lithium framework and its applications, and how best to take advantage of them.
Drupal is Stupid (But I Love It Anyway)brockboland
Regrettably, my machine didn't cooperate when I tried to record this presentation. I don't think the slides will do you much good without the stuff I said, but a few people asked for them.
---
Depending on who you ask, Drupal is either a framework or a platform, but no matter how you look at it, there are things about it that suck. Hear Brock Boland talk about the pain points of coding for Drupal 6, how things have improved in Drupal 7, and what's expected to be better in Drupal 8.
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™UiPathCommunity
In questo evento online gratuito, organizzato dalla Community Italiana di UiPath, potrai esplorare le nuove funzionalità di Autopilot, il tool che integra l'Intelligenza Artificiale nei processi di sviluppo e utilizzo delle Automazioni.
📕 Vedremo insieme alcuni esempi dell'utilizzo di Autopilot in diversi tool della Suite UiPath:
Autopilot per Studio Web
Autopilot per Studio
Autopilot per Apps
Clipboard AI
GenAI applicata alla Document Understanding
👨🏫👨💻 Speakers:
Stefano Negro, UiPath MVPx3, RPA Tech Lead @ BSP Consultant
Flavio Martinelli, UiPath MVP 2023, Technical Account Manager @UiPath
Andrei Tasca, RPA Solutions Team Lead @NTT Data
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...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.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
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
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.
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.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
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.
2. Code & Coders
Entities - Emerging Patterns of Usage
Presented by Ronald Ashri (ronald_istos)
Wednesday, August 24, 11
3. @ronald_istos
Web App Development
Travel / Semantic Web
www.istos.it
Solutions for hotels,
villas, B&Bs
drupalrooms.com
w/ Bluespark Labs
Drupal Trainer network
drupalteachers.com
w/ Brightlemon
Wednesday, August 24, 11
4. Building with
Entities
✤ How we got to entities
✤ What do they look like, what
can we do, what’s missing
✤ When and how should we
use them
✤ Learning from how they
are used so far
✤ Questions / Next Steps
Wednesday, August 24, 11
5. slice up a drupal
and you will find nodes
Wednesday, August 24, 11
6. drupalistas love making lots of nodes and
mixing them up in different ways
... much like pasta
Wednesday, August 24, 11
7. they love them so much they nearly turned
everything into a node
Wednesday, August 24, 11
8. user pro les = drupal.org/project/content_pro le
Wednesday, August 24, 11
11. nodes come in different shapes but still tied to
the same methods and db structure
=> need for a more generic core-based solution
Wednesday, August 24, 11
12. but the core development process
is never simple
Wednesday, August 24, 11
13. Huge driver turned out to be the
Field API work -
attaching elds to core “stuff” came rst
and the need to streamline followed
Wednesday, August 24, 11
14. “loadable thingies,
that can be optionally eldable”
(http://drupal.org/node/460320)
Wednesday, August 24, 11
16. Entities in Drupal 7 are the nodes we really
wanted but didn’t know it yet
The stuff / content that makes up our site
nodes, users, taxonomy terms, comments, les
User Node
Taxonomy Term Comment
Taxonomy File
Vocabulary
Wednesday, August 24, 11
17. one day drupal
will have a yeah... sure
smallcore and it will all
be OO
Drupal Core Developers Summit 2040
Entities bring us closer to Drupal the framework
No mention in UI - almost no mention in changelog
Wednesday, August 24, 11
18. CHANGELOG.TXT...
“In addition, any other object
type may register with Field API
and allow custom data elds to
be attached to itself.”
object type = entity
Wednesday, August 24, 11
19. The relationships between Entities - the ways
entities can interact with each other - de ne our
Drupal application
nodes can have comments
users author nodes
taxonomy terms are attached to nodes
these relationships are implicit -
perhaps they could be made explicit?
Wednesday, August 24, 11
20. how to cook - (or build entities)
Wednesday, August 24, 11
21. Your Table
PostIt
postit_id name property1 property2 property3
+ elds
(drupal worries about elds)
Wednesday, August 24, 11
26. tell drupal how to load your entity
function postit_load($pid = NULL, $reset = FALSE){
$pids = (isset ($pid) ? array($pid) : array());
$postit = postit_load_multiple($pids, $reset);
return $postit ? reset ($postit) : FALSE;
}
function postit_load_multiple($pids = array(), $conditions = array(), $reset = FALSE){
return entity_load('postit', $pids, $conditions, $reset);
}
function entity_load($entity_type, $ids = FALSE, $conditions = array(), $reset = FALSE) {
if ($reset) {
entity_get_controller($entity_type)->resetCache();
}
return entity_get_controller($entity_type)->load($ids, $conditions);
}
Wednesday, August 24, 11
27. ready to cook!
✤ we also get a query API
EntityFieldQuery
✤ conditions on properties
and elds
✤ queries across entity types
✤ and we get hooks
✤ hook_entity_load()
✤ hook_entity_presave()
✤ hook_entity_insert()
✤ hook_entity_update()
✤ hook_entity_delete()
✤ hook_entity_prepare_view
✤ hook_entity_view()
Wednesday, August 24, 11
28. Young module developer : Where is full CRUD, UI,
Views integration, Tokens, Search, etc?
Drupal Core: What? Am I supposed to
do everything around here?
Wednesday, August 24, 11
29. + Entity Module
(drupal.org/project/entity)
✤ Supports full CRUD
✤ Quickly provide new entity
types
✤ Standardised way of
working with entity data
✤ Integration into drupal
ecosystem (Tokens, Views,
Rules, Exportables, Search
API, RestWS, VBO)
✤ Full Tests
Wednesday, August 24, 11
30. so what are we cooking - and how?
and why?
Wednesday, August 24, 11
31. entities are a uniquely drupaly concept
your stuff
(your db table or something like that)
+
Field API
+
hooks in the drupal world
Wednesday, August 24, 11
32. if your module / app is introducing data
you should really be asking yourself
why not via entities
you get plugged in to the drupal world
for (almost) zero cost and
your data can remains as is (almost)
Wednesday, August 24, 11
34. Commerce
✤ Great example as there is
also historical perspective
✤ D6 Ubercart did almost
everything “outside” of
Drupal
✤ D7 Commerce is a fully
signed up member to the
Drupal ecosystem
Wednesday, August 24, 11
35. in order to add commerce capabilities we need to
introduce a whole set of concepts (and their supporting
data structures)
Drupal Commerce de nes
Customer Pro les
Lines Items
Orders
Payment Transactions
Products
as entities
Wednesday, August 24, 11
36. Drupal Commerce defines only as much as it
needs in terms of fields attached to these entities -
Application core concepts (e.g. sku for product)
live in entity base table not via field
More complex core data (e.g. price) gets added via
a locked field
Allows the user add extra fields where it makes
sense
Wednesday, August 24, 11
37. local action entity types
Entity
operational links
Listing as a View
Wednesday, August 24, 11
38. Contains Line
Order Entity
Item Entities
Related to
payment entities
address eld eld
looks familiar!
Wednesday, August 24, 11
39. use entities to introduce new data types that can
be user-extensible
provide minimum conf required - easily
customisable in install profiles or via custom
modules
ps: did I mention - you really, really, really need a good reason not to use
entities when introducing new data (and data tables) to Drupal
Wednesday, August 24, 11
40. Profile 2
✤ Separates users from
descriptions of users
✤ Uses different bundles to
describe different aspects of
the same user
✤ Use entities to provide pro le
level type permissions
Wednesday, August 24, 11
41. placed under Entity Module UI
admin/structure for handling types
per type
con guration
Wednesday, August 24, 11
42. use new entity relationships to extend the
application
provide configuration via entity types
Wednesday, August 24, 11
43. Organic Groups
✤ Organic Groups uses
Entities because via the
Entity API it gets CRUD,
Views, Rules integration
etc for free
✤ Groups are still attached
to nodes
✤ Automatically created via
an indirect user action
Wednesday, August 24, 11
44. Group Entity
when you create a
node as a Group
Type this triggers
the creation of the
Group Entity
separation of concerns opens up interesting possibilities
and enables things that were not possible before like
better internationalization support
Wednesday, August 24, 11
46. because relationships are entities we can
add elds to them
e.g. date eld indicating relationship
expiration
Wednesday, August 24, 11
47. use Entities to separate concerns
-
using the Field API as a way to exibly add
access to con guration options
-
Site builder can decide how much con g to make
available to Site Admins
Wednesday, August 24, 11
48. Rooms
✤ Hotel booking application
✤ Introduces Bookable
Units and Bookings as
entities
✤ Relates entities to non
entify-able data
✤ Uses entity types for
default values settings as
well as a source of
common data across all
entities instances
Wednesday, August 24, 11
51. Entity Types de ne default property values
Wednesday, August 24, 11
52. Rooms
interact via entities
Commerce
Wednesday, August 24, 11
53. Kickstarting
Development
entities in a jar
Wednesday, August 24, 11
54. Model Entities
drupal.org/project/model
Implementation of a
generic Entity and Entity
Administration interface
that you can use to
kickstart your own project.
Wednesday, August 24, 11
55. experiment and
learn from
others
doing it your way is great...
but also need to study and share patterns
for doing things
Wednesday, August 24, 11
56. Summary
✤ Drupalize your data with
entities
✤ Improves distinction
between drupal the
framework and drupal the
CMS impoving app
development
✤ Leverage the entity
module
✤ Learn from examples
Wednesday, August 24, 11
57. @ronald_istos
Web App Development
Travel / Semantic Web
www.istos.it
Solutions for hotels,
villas, B&Bs
drupalrooms.com
w/ Bluespark Labs
Drupal Trainer network
drupalteachers.com
w/ Brightlemon
Wednesday, August 24, 11
58. What did you think?
Locate this session on the
DrupalCon London website:
http://london2011.drupal.org/conference/schedule
Click the “Take the survey” link
THANK YOU!
Wednesday, August 24, 11