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.
Drupal 7 introduces the entity field and query APIs which allow content to be stored and queried in a flexible way across different database backends like MySQL and MongoDB. This makes it possible to write database agnostic queries and supports fields as first class objects that can be attached to entities like nodes. The new APIs provide a standard way to work with content that improves scalability and allows sites to choose the optimal database storage for their needs.
The document discusses various concepts related to entities in Drupal 7 including:
1) Declaring an entity using hook_entity_info() and specifying the controller class.
2) Implementing hook_schema() to define the entity's database table.
3) Additional functionality provided by the Entity API module including entity properties and wrappers.
4) Using the entity class and controller for common operations like loading and saving entities.
5) Performing queries on entity fields using the EntityFieldQuery class.
This document discusses how to build custom entities in Drupal. It explains that entities are made up of elements like bundles and properties. It then shows how to define a custom entity using hook_entity_info(), including setting the controller class. It demonstrates creating an entity class that extends Entity, and creating controller classes that extend EntityAPIController and EntityDefaultUIController to provide CRUD and admin UI functionality. Finally, it mentions tools like EntityFieldQuery, EntityMetadataWrapper, Entity Scaffold and ECK that can help integrate and develop custom entities.
Top Ten Reasons to Use EntityFieldQuery in DrupalFredric Mitchell
EntityFieldQuery (EFQ) allows finding entities based on properties and field values. It provides a simple and object-oriented way to build queries that can be extended and altered. EFQ queries can be consumed to build Views queries or load nodes and set view modes. It handles exceptions well and is designed for modularity, extensibility, and integration with other modules.
The document discusses working with forms in Drupal 8. It covers creating a form by extending the FormBase class and implementing required methods. Forms can be rendered standalone or embedded in other pages. Validation checks form values and returns errors. Submitting stores values, outputs messages, and redirects. Existing forms can be reused and modified using form alterations.
This document describes the steps to create a configurable temperature display block module for Drupal 8. It involves:
1. Defining the module and block plugin.
2. Making the block configurable by adding a configuration form to set the city, and saving it in the block settings.
3. Providing a default city configuration that can be installed, and loading it on block build if no city is set.
4. Making the default configuration editable by adding a configuration form page under the admin menu.
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 document provides an overview of object-oriented programming concepts in PHP, including defining classes, creating objects, inheritance, and introspection methods. It also covers PHP sessions and using session variables to maintain data across multiple pages. Key topics include defining classes with properties and methods, creating object instances, accessing object properties and methods, constructors and destructors, inheritance between classes, and functions for examining classes and objects.
This document provides an overview of jQuery, including:
- jQuery is a JavaScript library that simplifies HTML document traversal, event handling, animating, and Ajax interactions.
- jQuery allows developers to write less code and do more, with features like simplified DOM manipulation and CSS selection.
- The document demonstrates basic jQuery concepts like DOM selection, traversal, and manipulation using jQuery's CSS selector syntax and methods.
jQuery is a JavaScript library that makes it easier to select and manipulate HTML elements and implement animations and AJAX requests. It works by using CSS selectors to select elements and then provides methods to hide, show, add or remove content from those elements. Some key features of jQuery include selecting elements, modifying CSS styles, handling events, animating properties and AJAX requests. The document provides examples of how to select elements, bind events, implement common animations and effects like fading and sliding, and manipulate HTML content.
This document provides an overview of key concepts for developing applications with Symfony2 including: setting up the framework, code flow, dependency injection, configuration, controllers, applications, Doctrine integration, caching, performance tips, asset management, testing, deployment, third party bundles, and resources for contributing to Symfony2. It discusses service definitions, controller choices, application choices, Doctrine examples, caching strategies, performance optimization techniques, testing approaches, deployment options, and how to work with third party bundles.
Doctrine MongoDB ODM is an object document mapper for PHP that provides tools for managing object persistence with MongoDB. It allows developers to work with MongoDB documents as objects and provides a query API and change tracking functionality to make common operations like inserting, updating, and deleting documents straightforward. Doctrine abstracts away the low-level MongoDB driver to allow developers to work with documents and references between documents using familiar object-oriented patterns.
This document discusses changes to the Field API from Drupal 7 to Drupal 8. In Drupal 8, fields are classes that implement interfaces and can be base fields or configurable fields. The Field API was rewritten using the Entity API and Typed Data API, treating fields as entities. Fields now have formatters and widgets that are defined as plugins. Validators are implemented using the new Validation API. Accessing field data is abstracted through magic methods. The document provides examples of defining formatters and widgets as plugins in Drupal 8.
Cleaner, Leaner, Meaner: Refactoring your jQueryRebecca Murphey
The document discusses refactoring JavaScript code to improve its internal structure and quality without changing its external behavior. It covers reasons to refactor like increasing maintainability and performance. Common "code smells" that indicate needs for refactoring are presented, such as having HTML in JavaScript or duplicating jQuery methods. Advanced refactoring techniques like caching XHR responses and using jQuery widgets are also briefly mentioned. The presentation aims to provide techniques for writing cleaner, leaner and more maintainable JavaScript code.
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.
Jonathan H. Wage is a PHP developer who works at OpenSky, an open source social commerce platform. He is also a contributor to the Doctrine project, which includes libraries for database abstraction, migrations, object-relational mapping (ORM), and object document mapping (ODM) for MongoDB and CouchDB. Doctrine started in 2006 and provides a way to work with database functionality in PHP objects instead of arrays. The Doctrine MongoDB ODM allows managing MongoDB data as PHP objects using a document manager to persist changes transparently through atomic operations.
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>.
This document provides an overview of Doctrine MongoDB ODM (Object Document Mapper). It discusses what Doctrine is, what MongoDB is, basic MongoDB terminology, how to connect to and perform CRUD operations in MongoDB from PHP, and how Doctrine MongoDB ODM provides an abstraction layer and object mapping functionality for MongoDB documents.
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.
The document provides an overview of the Doctrine NoSQL project. It discusses how Doctrine provides object document mappers for NoSQL databases like MongoDB, CouchDB, and PHPCR to allow working with documents as objects. It describes the common persistence interfaces, mapping capabilities like associations and embedded objects, and how basic CRUD operations work. It also highlights benefits of NoSQL databases like schemaless storage and how Doctrine supports features of specific databases like views, attachments, and geospatial queries.
This document summarizes methods in the Sys.UI.DomElement class in the Microsoft AJAX library for manipulating DOM elements. It describes methods for getting elements by ID, adding/removing CSS classes, and getting/setting an element's position and dimensions. Key methods include getElementById(), addCssClass(), getLocation(), and setLocation().
This document provides an overview of the Field API in Drupal. It discusses key terminology like entities, field types, and bundles. It also demonstrates how to implement a field formatter and widget using hooks. Finally, it covers language handling and retrieving field data via the Entity API. The presentation aims to provide practical tips and examples for working with fields and entities in Drupal.
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
The Why and How of Applications with APIs and microservicesRonald Ashri
This document discusses how to build Drupal applications using microservices and APIs. It begins with background on microservices and the problems they aim to solve like speed, scalability, resilience and testability. It then covers microservice principles like bounded context and independent deployability. The document discusses microservice architecture, integration using message-based approaches and asynchronous messaging. It provides an example of a hotel booking service broken into multiple microservices. It concludes with notes on testing, monitoring, security and API gateways when using a microservices approach.
Drupal 7 introduces a queue system for batch processing and delayed execution of tasks. Queues can be either reliable, storing items in a database, or non-reliable keeping items in memory only. The core Queue API provides classes like SystemQueue and MemoryQueue that implement the queue interface. Developers can customize queue behavior by creating new queue classes or overriding existing ones.
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 document provides an overview of object-oriented programming concepts in PHP, including defining classes, creating objects, inheritance, and introspection methods. It also covers PHP sessions and using session variables to maintain data across multiple pages. Key topics include defining classes with properties and methods, creating object instances, accessing object properties and methods, constructors and destructors, inheritance between classes, and functions for examining classes and objects.
This document provides an overview of jQuery, including:
- jQuery is a JavaScript library that simplifies HTML document traversal, event handling, animating, and Ajax interactions.
- jQuery allows developers to write less code and do more, with features like simplified DOM manipulation and CSS selection.
- The document demonstrates basic jQuery concepts like DOM selection, traversal, and manipulation using jQuery's CSS selector syntax and methods.
jQuery is a JavaScript library that makes it easier to select and manipulate HTML elements and implement animations and AJAX requests. It works by using CSS selectors to select elements and then provides methods to hide, show, add or remove content from those elements. Some key features of jQuery include selecting elements, modifying CSS styles, handling events, animating properties and AJAX requests. The document provides examples of how to select elements, bind events, implement common animations and effects like fading and sliding, and manipulate HTML content.
This document provides an overview of key concepts for developing applications with Symfony2 including: setting up the framework, code flow, dependency injection, configuration, controllers, applications, Doctrine integration, caching, performance tips, asset management, testing, deployment, third party bundles, and resources for contributing to Symfony2. It discusses service definitions, controller choices, application choices, Doctrine examples, caching strategies, performance optimization techniques, testing approaches, deployment options, and how to work with third party bundles.
Doctrine MongoDB ODM is an object document mapper for PHP that provides tools for managing object persistence with MongoDB. It allows developers to work with MongoDB documents as objects and provides a query API and change tracking functionality to make common operations like inserting, updating, and deleting documents straightforward. Doctrine abstracts away the low-level MongoDB driver to allow developers to work with documents and references between documents using familiar object-oriented patterns.
This document discusses changes to the Field API from Drupal 7 to Drupal 8. In Drupal 8, fields are classes that implement interfaces and can be base fields or configurable fields. The Field API was rewritten using the Entity API and Typed Data API, treating fields as entities. Fields now have formatters and widgets that are defined as plugins. Validators are implemented using the new Validation API. Accessing field data is abstracted through magic methods. The document provides examples of defining formatters and widgets as plugins in Drupal 8.
Cleaner, Leaner, Meaner: Refactoring your jQueryRebecca Murphey
The document discusses refactoring JavaScript code to improve its internal structure and quality without changing its external behavior. It covers reasons to refactor like increasing maintainability and performance. Common "code smells" that indicate needs for refactoring are presented, such as having HTML in JavaScript or duplicating jQuery methods. Advanced refactoring techniques like caching XHR responses and using jQuery widgets are also briefly mentioned. The presentation aims to provide techniques for writing cleaner, leaner and more maintainable JavaScript code.
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.
Jonathan H. Wage is a PHP developer who works at OpenSky, an open source social commerce platform. He is also a contributor to the Doctrine project, which includes libraries for database abstraction, migrations, object-relational mapping (ORM), and object document mapping (ODM) for MongoDB and CouchDB. Doctrine started in 2006 and provides a way to work with database functionality in PHP objects instead of arrays. The Doctrine MongoDB ODM allows managing MongoDB data as PHP objects using a document manager to persist changes transparently through atomic operations.
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>.
This document provides an overview of Doctrine MongoDB ODM (Object Document Mapper). It discusses what Doctrine is, what MongoDB is, basic MongoDB terminology, how to connect to and perform CRUD operations in MongoDB from PHP, and how Doctrine MongoDB ODM provides an abstraction layer and object mapping functionality for MongoDB documents.
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.
The document provides an overview of the Doctrine NoSQL project. It discusses how Doctrine provides object document mappers for NoSQL databases like MongoDB, CouchDB, and PHPCR to allow working with documents as objects. It describes the common persistence interfaces, mapping capabilities like associations and embedded objects, and how basic CRUD operations work. It also highlights benefits of NoSQL databases like schemaless storage and how Doctrine supports features of specific databases like views, attachments, and geospatial queries.
This document summarizes methods in the Sys.UI.DomElement class in the Microsoft AJAX library for manipulating DOM elements. It describes methods for getting elements by ID, adding/removing CSS classes, and getting/setting an element's position and dimensions. Key methods include getElementById(), addCssClass(), getLocation(), and setLocation().
This document provides an overview of the Field API in Drupal. It discusses key terminology like entities, field types, and bundles. It also demonstrates how to implement a field formatter and widget using hooks. Finally, it covers language handling and retrieving field data via the Entity API. The presentation aims to provide practical tips and examples for working with fields and entities in Drupal.
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
The Why and How of Applications with APIs and microservicesRonald Ashri
This document discusses how to build Drupal applications using microservices and APIs. It begins with background on microservices and the problems they aim to solve like speed, scalability, resilience and testability. It then covers microservice principles like bounded context and independent deployability. The document discusses microservice architecture, integration using message-based approaches and asynchronous messaging. It provides an example of a hotel booking service broken into multiple microservices. It concludes with notes on testing, monitoring, security and API gateways when using a microservices approach.
Drupal 7 introduces a queue system for batch processing and delayed execution of tasks. Queues can be either reliable, storing items in a database, or non-reliable keeping items in memory only. The core Queue API provides classes like SystemQueue and MemoryQueue that implement the queue interface. Developers can customize queue behavior by creating new queue classes or overriding existing ones.
Message queues allow producers to add work items to a queue that are then processed by consumers asynchronously. In Drupal, message queues can be used to process tasks outside the page request cycle via cron. They provide a pluggable interface, with backends available on Drupal.org like AWS SQS, Redis, and OpenStack Marconi. Code examples demonstrate creating a queue, adding items, and processing items in a cron job. The document emphasizes logging and monitoring queues for debugging and preventing backlogs.
This document discusses steps to take after a website has been hacked. It begins by recommending making forensic copies of all relevant systems and logs to preserve evidence without modifying anything. Maintaining a minimal online presence for users is discussed, as well as crisis communication strategies. Rebuilding the site is covered, emphasizing doing so in a secure manner. Forensics techniques are provided like analyzing code, files, databases and logs to determine the method of intrusion. The overall message is to have a plan in place and move quickly but carefully after a hack occurs.
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
How to Make Entities and Influence Drupal - Emerging Patterns from Drupal Con...Ronald Ashri
Drupal 7 introduced Entities as the main unit of data alongside an API to manipulate entities. This is changing the way we can develop Drupal-based applications. The aim of this presentation is to identify emerging patterns of usage to inform further refinement and development and support the spread of best practices for development.
Entities, Bundles, and Fields: You need to understand this!tedbow
This document provides an overview of entities, bundles, and fields in Drupal. It defines entity types and bundles, and explains how bundles allow different properties for entities of the same type. Fields can then be attached to bundles. Popular entity-based modules like Profile2, Entityforms, and Drupal Commerce are also summarized. The document aims to help users better understand these core Drupal concepts.
Entities 101: Understanding Data Structures in DrupalAcquia
Nodes, content entities, config entities, bundles, display modes... what? For people new to Drupal, and even those that have been around awhile, the naming of these things can be confusing. Understanding the philosophy behind the Entity system is important in order to make better decisions on how to build sites that work well, and do what you need to do.
In this webinar, learn about the different data structures in Drupal, how they work, and when to use them. Topics covered will include config vs. content entities, when to use a custom entity, and more including:
The differences between core entities like taxonomy, nodes, and users
-Advantages and disadvantages to using each
-Tips for fields and display settings
-How to optimize your configuration
While we will be touching on some very deep, and specific details, this webinar will be friendly for beginners as well. No coding or programming knowledge is required. However, even some intermediate developers and long time site builders will learn a thing or two.
This document summarizes a presentation about important Drupal concepts including entities, fields, and lists. Entities are standardized units of information defined by classes that allow for data storage and manipulation. Fields define the types of data that can be stored in entities. Views and Entity Field Query (EFQ) are two ways to generate lists of entities, with Views providing a user interface and EFQ using code. The presentation provides examples of how to work with entities, fields, Views and EFQ in code.
This document is a presentation on Drupal 8's entity API. It begins with introductions and an outline of topics to be covered. The document then defines what entities are in Drupal and provides examples. It explains the changes in how entities work between Drupal 7 and 8, including full CRUD support and revisions/translations. It discusses content entities versus config entities. Finally, it covers how to create a new entity type, including choosing base classes/handlers, writing annotations, and defining storage and routes. The goal is to help understand the new entity system in Drupal 8.
Entity API in Drupal 8 (Drupal Tech Talk October 2014)Bart Feenstra
Bart is a Drupal developer who has worked with Drupal versions 5 through 8. He has organized regional, national, and international Drupal events since 2008. The presentation covers the differences between entities in Drupal 7 and 8, including how Drupal 8 fully supports CRUD operations and revisions/translations for entities. It discusses the types of entities like content and config entities, and how to create a custom entity type by defining its class, handlers, annotation, storage, and routes.
This document discusses a shift from using CakePHP's traditional ORM implementation to using Doctrine as the data manipulation layer instead. Some key points include:
- Doctrine provides a more object-oriented approach that allows using plain old PHP objects (POPOs) that can be automatically persisted without imposing anything on the objects.
- MongoDB provides a natural fit by representing each PHP object as a document in a collection, with embedded documents for associations.
- The implementation maps object property access to accessor methods, provides array access similar to CakePHP, and describes associations in a way similar to CakePHP.
- Features like queries, validation, callbacks, and pagination are supported to provide a
Entities in Drupal 8 are classes that can represent content or configuration. The Entity API in Drupal 8 provides standardized methods for core entities and custom entities to perform CRUD operations like create, read, update, and delete. This allows entities to be managed consistently through an entity storage class and removes the need for proprietary entity functions. The Entity API also includes methods for querying entities and accessing entity properties through getters and setters.
Web automation with #d8rules (European Drupal Days 2015)Eugenio Minardi
This document contains information about a Rules presentation at DrupalDaysEU, including:
- Details about the Rules module and how it enables flexible workflows in Drupal 8.
- An overview of the goals of the #d8rules campaign to ensure Rules is ready for Drupal 8 and to make Drupal contributions more sustainable.
- A brief status update on the development of Rules for Drupal 8, including milestones for core API fundamentals, completion, and release.
- An invitation for developers to sprint with the Rules team and contribute to porting actions, conditions and other components to Drupal 8.
1. The Entity API module provides an unified way to work with entities and their properties in Drupal. It extends Drupal core's entity system.
2. The module defines common entity functions like entity_create(), entity_delete(), and entity_save(). It also provides entity metadata wrappers which provide a standardized way to access entity properties and values.
3. Entity metadata wrappers make code more readable, prevent issues from language-dependent lookups, and automatically load related entities through chaining. Getters, setters, and multilingual support are also available through wrappers.
The document provides an overview of entities in Drupal and how to leverage the entity API. Some key points:
- Entities are fundamental data units in Drupal that can be loaded, identified, and stored anywhere. Most common entity types are nodes, users, terms.
- The entity API standardizes how entities can be loaded, saved, queried, exported and provides common hooks. It also supports fieldable and non-fieldable entities.
- To define a new entity type, implement hook_entity_info() and specify the controller class. The entity API controller handles basic CRUD operations out of the box.
- The Entity API module builds on Drupal core's entity system to more
Synapse india reviews on drupal 7 entities (stanford)Tarunsingh198
This document summarizes the key differences between how data is represented in Drupal 6 vs Drupal 7, and provides an overview of entities, entity types, bundles, and fields in Drupal 7. It then discusses how to define a custom entity type using the Entity API module, including implementing hook_schema(), hook_entity_info(), and hook_entity_property_info(). Finally, it provides an example of defining a custom "Offer" entity type to store product pricing information from third party APIs.
This document provides an overview of key concepts in Drupal 7 related to entities, bundles, and fields. It discusses how entities act as containers for bundles, and bundles define groups of fields. Examples of entities include nodes, users, files. Fields define the type of data that can be attached to entities. The document recommends the Examples module for learning about implementing these concepts and provides code snippets for hook_install() to set up a content type with fields as part of installation.
Pure Sign Breakfast Presentations - Drupal FieldAPIPure Sign
Introduction to Drupal FieldAPI.
Topics:
The different abstractions behind the FieldAPI.
The Drupal hooks needed to define your own custom Field.
The advantages of creating fields using the Drupal FieldAPI.
Wolfgang Ziegler presented on using entities in Drupal. He discussed interacting with entities using functions like entity_load() and entity_save(), and providing new entity types by implementing hook_entity_info() and hook_schema(). He explained how to integrate entity types by implementing things like property info, CRUD, and controllers. Finally, he covered exposing non-database entities and improvements planned for Drupal 8.
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
This document summarizes a presentation about leveraging entities in Drupal 7 development. It discusses how entities provide a foundation for fields and data integration. The Entity API module builds on Drupal's core entity system to make working with any entity type easier. Best practices include developing modules based on entities, providing custom entity types, and adding metadata via hook_entity_property_info(). Examples like Profile2 demonstrate how to create fieldable, exportable entity types with administrative interfaces.
Things Made Easy: One Click CMS Integration with Solr & Drupallucenerevolution
Presented by Peter Wolanin | Acquia, Inc - See conference video - http://www.lucidimagination.com/devzone/events/conferences/lucene-revolution-2012
If you have a new web project or and existing Drupal site, the combination of Drupal and Apache Solr is both powerful and easy to set up thanks to the existing integration code. The module allows for substantial customization with the administrative UI. Drupal facilitates further customizations of the UI, indexing, and bosting because of the open architecture that provides multiple opportunities for custom code to alter the behavior. A couple code snippets will be followed by a review of other contributed Drupal modules that further enhance the search capability.
Finally, this session will showcase some example of Drupal sites using Solr including Acquia's own sites and Drupal sites including many well-known Enterprise and government sites.
UiPath Community Zurich: Release Management and Build PipelinesUiPathCommunity
Ensuring robust, reliable, and repeatable delivery processes is more critical than ever - it's a success factor for your automations and for automation programmes as a whole. In this session, we’ll dive into modern best practices for release management and explore how tools like the UiPathCLI can streamline your CI/CD pipelines. Whether you’re just starting with automation or scaling enterprise-grade deployments, our event promises to deliver helpful insights to you. This topic is relevant for both on-premise and cloud users - as well as for automation developers and software testers alike.
📕 Agenda:
- Best Practices for Release Management
- What it is and why it matters
- UiPath Build Pipelines Deep Dive
- Exploring CI/CD workflows, the UiPathCLI and showcasing scenarios for both on-premise and cloud
- Discussion, Q&A
👨🏫 Speakers
Roman Tobler, CEO@ Routinuum
Johans Brink, CTO@ MvR Digital Workforce
We look forward to bringing best practices and showcasing build pipelines to you - and to having interesting discussions on this important topic!
If you have any questions or inputs prior to the event, don't hesitate to reach out to us.
This event streamed live on May 27, 16:00 pm CET.
Check out all our upcoming UiPath Community sessions at:
👉 https://community.uipath.com/events/
Join UiPath Community Zurich chapter:
👉 https://community.uipath.com/zurich/
Introducing the OSA 3200 SP and OSA 3250 ePRCAdtran
Adtran's latest Oscilloquartz solutions make optical pumping cesium timing more accessible than ever. Discover how the new OSA 3200 SP and OSA 3250 ePRC deliver superior stability, simplified deployment and lower total cost of ownership. Built on a shared platform and engineered for scalable, future-ready networks, these models are ideal for telecom, defense, metrology and more.
New Ways to Reduce Database Costs with ScyllaDBScyllaDB
How ScyllaDB’s latest capabilities can reduce your infrastructure costs
ScyllaDB has been obsessed with price-performance from day 1. Our core database is architected with low-level engineering optimizations that squeeze every ounce of power from the underlying infrastructure. And we just completed a multi-year effort to introduce a set of new capabilities for additional savings.
Join this webinar to learn about these new capabilities: the underlying challenges we wanted to address, the workloads that will benefit most from each, and how to get started. We’ll cover ways to:
- Avoid overprovisioning with “just-in-time” scaling
- Safely operate at up to ~90% storage utilization
- Cut network costs with new compression strategies and file-based streaming
We’ll also highlight a “hidden gem” capability that lets you safely balance multiple workloads in a single cluster. To conclude, we will share the efficiency-focused capabilities on our short-term and long-term roadmaps.
Grannie’s Journey to Using Healthcare AI ExperiencesLauren Parr
AI offers transformative potential to enhance our long-time persona Grannie’s life, from healthcare to social connection. This session explores how UX designers can address unmet needs through AI-driven solutions, ensuring intuitive interfaces that improve safety, well-being, and meaningful interactions without overwhelming users.
Exploring the advantages of on-premises Dell PowerEdge servers with AMD EPYC processors vs. the cloud for small to medium businesses’ AI workloads
AI initiatives can bring tremendous value to your business, but you need to support your new AI workloads effectively. That means choosing the best possible infrastructure for your needs—and many companies are finding that the cloud isn’t right for them. According to a recent Rackspace survey of IT executives, 69 percent of companies have moved some of their applications on-premises from the cloud, with half of those citing security and compliance as the reason and 44 percent citing cost.
On-premises solutions provide a number of advantages. With full control over your security infrastructure, you can be certain that all compliance requirements remain firmly in the hands of your IT team. Opting for on-premises also gives you the ability to design your infrastructure to the precise needs of that team and your new AI workloads. Depending on the workload, you may also see performance benefits, along with more predictable costs. As you start to build your next AI initiative, consider an on-premises solution utilizing AMD EPYC processor-powered Dell PowerEdge servers.
Agentic AI - The New Era of IntelligenceMuzammil Shah
This presentation is specifically designed to introduce final-year university students to the foundational principles of Agentic Artificial Intelligence (AI). It aims to provide a clear understanding of how Agentic AI systems function, their key components, and the underlying technologies that empower them. By exploring real-world applications and emerging trends, the session will equip students with essential knowledge to engage with this rapidly evolving area of AI, preparing them for further study or professional work in the field.
Introduction and Background:
Study Overview and Methodology: The study analyzes the IT market in Israel, covering over 160 markets and 760 companies/products/services. It includes vendor rankings, IT budgets, and trends from 2025-2029. Vendors participate in detailed briefings and surveys.
Vendor Listings: The presentation lists numerous vendors across various pages, detailing their names and services. These vendors are ranked based on their participation and market presence.
Market Insights and Trends: Key insights include IT market forecasts, economic factors affecting IT budgets, and the impact of AI on enterprise IT. The study highlights the importance of AI integration and the concept of creative destruction.
Agentic AI and Future Predictions: Agentic AI is expected to transform human-agent collaboration, with AI systems understanding context and orchestrating complex processes. Future predictions include AI's role in shopping and enterprise IT.
As data privacy regulations become more pervasive across the globe and organizations increasingly handle and transfer (including across borders) meaningful volumes of personal and confidential information, the need for robust contracts to be in place is more important than ever.
This webinar will provide a deep dive into privacy contracting, covering essential terms and concepts, negotiation strategies, and key practices for managing data privacy risks.
Whether you're in legal, privacy, security, compliance, GRC, procurement, or otherwise, this session will include actionable insights and practical strategies to help you enhance your agreements, reduce risk, and enable your business to move fast while protecting itself.
This webinar will review key aspects and considerations in privacy contracting, including:
- Data processing addenda, cross-border transfer terms including EU Model Clauses/Standard Contractual Clauses, etc.
- Certain legally-required provisions (as well as how to ensure compliance with those provisions)
- Negotiation tactics and common issues
- Recent lessons from recent regulatory actions and disputes
Multistream in SIP and NoSIP @ OpenSIPS Summit 2025Lorenzo Miniero
Slides for my "Multistream support in the Janus SIP and NoSIP plugins" presentation at the OpenSIPS Summit 2025 event.
They describe my efforts refactoring the Janus SIP and NoSIP plugins to allow for the gatewaying of an arbitrary number of audio/video streams per call (thus breaking the current 1-audio/1-video limitation), plus some additional considerations on what this could mean when dealing with application protocols negotiated via SIP as well.
Droidal: AI Agents Revolutionizing HealthcareDroidal LLC
Droidal’s AI Agents are transforming healthcare by bringing intelligence, speed, and efficiency to key areas such as Revenue Cycle Management (RCM), clinical operations, and patient engagement. Built specifically for the needs of U.S. hospitals and clinics, Droidal's solutions are designed to improve outcomes and reduce administrative burden.
Through simple visuals and clear examples, the presentation explains how AI Agents can support medical coding, streamline claims processing, manage denials, ensure compliance, and enhance communication between providers and patients. By integrating seamlessly with existing systems, these agents act as digital coworkers that deliver faster reimbursements, reduce errors, and enable teams to focus more on patient care.
Droidal's AI technology is more than just automation — it's a shift toward intelligent healthcare operations that are scalable, secure, and cost-effective. The presentation also offers insights into future developments in AI-driven healthcare, including how continuous learning and agent autonomy will redefine daily workflows.
Whether you're a healthcare administrator, a tech leader, or a provider looking for smarter solutions, this presentation offers a compelling overview of how Droidal’s AI Agents can help your organization achieve operational excellence and better patient outcomes.
A free demo trial is available for those interested in experiencing Droidal’s AI Agents firsthand. Our team will walk you through a live demo tailored to your specific workflows, helping you understand the immediate value and long-term impact of adopting AI in your healthcare environment.
To request a free trial or learn more:
https://droidal.com/
UiPath Community Berlin: Studio Tips & Tricks and UiPath InsightsUiPathCommunity
Join the UiPath Community Berlin (Virtual) meetup on May 27 to discover handy Studio Tips & Tricks and get introduced to UiPath Insights. Learn how to boost your development workflow, improve efficiency, and gain visibility into your automation performance.
📕 Agenda:
- Welcome & Introductions
- UiPath Studio Tips & Tricks for Efficient Development
- Best Practices for Workflow Design
- Introduction to UiPath Insights
- Creating Dashboards & Tracking KPIs (Demo)
- Q&A and Open Discussion
Perfect for developers, analysts, and automation enthusiasts!
This session streamed live on May 27, 18:00 CET.
Check out all our upcoming UiPath Community sessions at:
👉 https://community.uipath.com/events/
Join our UiPath Community Berlin chapter:
👉 https://community.uipath.com/berlin/
Jira Administration Training – Day 1 : IntroductionRavi Teja
This presentation covers the basics of Jira for beginners. Learn how Jira works, its key features, project types, issue types, and user roles. Perfect for anyone new to Jira or preparing for Jira Admin roles.
AI Emotional Actors: “When Machines Learn to Feel and Perform"AkashKumar809858
Welcome to the era of AI Emotional Actors.
The entertainment landscape is undergoing a seismic transformation. What started as motion capture and CGI enhancements has evolved into a full-blown revolution: synthetic beings not only perform but express, emote, and adapt in real time.
For reading further follow this link -
https://akash97.gumroad.com/l/meioex
Neural representations have shown the potential to accelerate ray casting in a conventional ray-tracing-based rendering pipeline. We introduce a novel approach called Locally-Subdivided Neural Intersection Function (LSNIF) that replaces bottom-level BVHs used as traditional geometric representations with a neural network. Our method introduces a sparse hash grid encoding scheme incorporating geometry voxelization, a scene-agnostic training data collection, and a tailored loss function. It enables the network to output not only visibility but also hit-point information and material indices. LSNIF can be trained offline for a single object, allowing us to use LSNIF as a replacement for its corresponding BVH. With these designs, the network can handle hit-point queries from any arbitrary viewpoint, supporting all types of rays in the rendering pipeline. We demonstrate that LSNIF can render a variety of scenes, including real-world scenes designed for other path tracers, while achieving a memory footprint reduction of up to 106.2x compared to a compressed BVH.
https://arxiv.org/abs/2504.21627
Measuring Microsoft 365 Copilot and Gen AI SuccessNikki Chapple
Session | Measuring Microsoft 365 Copilot and Gen AI Success with Viva Insights and Purview
Presenter | Nikki Chapple 2 x MVP and Principal Cloud Architect at CloudWay
Event | European Collaboration Conference 2025
Format | In person Germany
Date | 28 May 2025
📊 Measuring Copilot and Gen AI Success with Viva Insights and Purview
Presented by Nikki Chapple – Microsoft 365 MVP & Principal Cloud Architect, CloudWay
How do you measure the success—and manage the risks—of Microsoft 365 Copilot and Generative AI (Gen AI)? In this ECS 2025 session, Microsoft MVP and Principal Cloud Architect Nikki Chapple explores how to go beyond basic usage metrics to gain full-spectrum visibility into AI adoption, business impact, user sentiment, and data security.
🎯 Key Topics Covered:
Microsoft 365 Copilot usage and adoption metrics
Viva Insights Copilot Analytics and Dashboard
Microsoft Purview Data Security Posture Management (DSPM) for AI
Measuring AI readiness, impact, and sentiment
Identifying and mitigating risks from third-party Gen AI tools
Shadow IT, oversharing, and compliance risks
Microsoft 365 Admin Center reports and Copilot Readiness
Power BI-based Copilot Business Impact Report (Preview)
📊 Why AI Measurement Matters: Without meaningful measurement, organizations risk operating in the dark—unable to prove ROI, identify friction points, or detect compliance violations. Nikki presents a unified framework combining quantitative metrics, qualitative insights, and risk monitoring to help organizations:
Prove ROI on AI investments
Drive responsible adoption
Protect sensitive data
Ensure compliance and governance
🔍 Tools and Reports Highlighted:
Microsoft 365 Admin Center: Copilot Overview, Usage, Readiness, Agents, Chat, and Adoption Score
Viva Insights Copilot Dashboard: Readiness, Adoption, Impact, Sentiment
Copilot Business Impact Report: Power BI integration for business outcome mapping
Microsoft Purview DSPM for AI: Discover and govern Copilot and third-party Gen AI usage
🔐 Security and Compliance Insights: Learn how to detect unsanctioned Gen AI tools like ChatGPT, Gemini, and Claude, track oversharing, and apply eDLP and Insider Risk Management (IRM) policies. Understand how to use Microsoft Purview—even without E5 Compliance—to monitor Copilot usage and protect sensitive data.
📈 Who Should Watch: This session is ideal for IT leaders, security professionals, compliance officers, and Microsoft 365 admins looking to:
Maximize the value of Microsoft Copilot
Build a secure, measurable AI strategy
Align AI usage with business goals and compliance requirements
🔗 Read the blog https://nikkichapple.com/measuring-copilot-gen-ai/
Agentic AI Explained: The Next Frontier of Autonomous Intelligence & Generati...Aaryan Kansari
Agentic AI Explained: The Next Frontier of Autonomous Intelligence & Generative AI
Discover Agentic AI, the revolutionary step beyond reactive generative AI. Learn how these autonomous systems can reason, plan, execute, and adapt to achieve human-defined goals, acting as digital co-workers. Explore its promise, key frameworks like LangChain and AutoGen, and the challenges in designing reliable and safe AI agents for future workflows.
Sticky Note Bullets:
Definition: Next stage beyond ChatGPT-like systems, offering true autonomy.
Core Function: Can "reason, plan, execute and adapt" independently.
Distinction: Proactive (sets own actions for goals) vs. Reactive (responds to prompts).
Promise: Acts as "digital co-workers," handling grunt work like research, drafting, bug fixing.
Industry Outlook: Seen as a game-changer; Deloitte predicts 50% of companies using GenAI will have agentic AI pilots by 2027.
Key Frameworks: LangChain, Microsoft's AutoGen, LangGraph, CrewAI.
Development Focus: Learning to think in workflows and goals, not just model outputs.
Challenges: Ensuring reliability, safety; agents can still hallucinate or go astray.
Best Practices: Start small, iterate, add memory, keep humans in the loop for final decisions.
Use Cases: Limited only by imagination (e.g., drafting business plans, complex simulations).
Cyber Security Legal Framework in Nepal.pptxGhimire B.R.
The presentation is about the review of existing legal framework on Cyber Security in Nepal. The strength and weakness highlights of the major acts and policies so far. Further it highlights the needs of data protection act .
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