This document provides an overview of routing in Drupal 8. It explains that routing replaces hook_menu() from Drupal 7 and uses route files to define paths and callbacks. Paths can map to multiple routes and dynamic placeholders are supported. Forms are classes that implement interfaces rather than functions. Access, local tasks, actions and contextual links are also defined through route files rather than hook_menu.
Drupal 8, page callbacks are completely rewritten by utilizing Symfony Routing component. This session will explain many parts of routing, how to convert from Drupal 7 menu system to Drupal 8 routing system and it will cover how to define local tasks, local actions, and contextual links in Drupal 8.
Goodbye hook_menu() - Routing and Menus in Drupal 8Exove
This document discusses routing and menus in Drupal 8. In Drupal 8, hook_menu() has been replaced by static configuration in YAML files. Routing is defined in module.routing.yml, which maps paths to controller methods. Menu items are defined separately in module.menu_links.yml. This provides a cleaner separation of routing from menu display. Dynamic routes can also be defined by returning route objects from a callback method. Route alterations can be done through event subscribers. Other menu-related items like tabs and actions also have their own configuration files.
Presentation about comparing routing system in Drupal 7 and Drupal 8. What is implemented in REST module of Drupal 8? What is going to be in Services module for Drupal 8.
Drupal Step-by-Step: How We Built Our Training Site, Part 1Acquia
This document provides code snippets for building a training site in Drupal. It shows how to style buttons using preprocess_field and construct a migration class to pull in location data from additional tables for the training nodes. The migration class overrides the query and prepareRow methods to join the location tables and filter out past events.
Want to give the WordPress admin area some professional polish? Want to make it super easy for your clients to locate and work with their most critical data? How about making it super easy for your client to contact you? This talk will provide theme developers with ideas to do just that along with the PHP code snippets to make it a reality. Take the WordPress admin experience to the next level!
The document is notes from a Drupal training course. It introduces some core Drupal concepts like nodes, users, and modules. It then provides an example of a birthday module that allows users to save their birthday, displays it on their profile, and shows a happy birthday message on their birthday. The module utilizes hooks, forms, blocks, and other Drupal APIs.
The document provides an overview of WordPress hooks and custom post types.
It discusses how hooks allow plugins to modify WordPress' workflow and content through actions and filters. It also explains how plugins can define their own hooks and callbacks.
The document then covers how to create and manage custom post types through the register_post_type() function. It outlines many of the arguments that can be passed to register_post_type() to configure aspects like labels, capabilities, hierarchical structure, and permalinks for the custom post type.
In summary, the document recaps how plugins can utilize hooks to modify WordPress and introduces custom post types as a way for plugins to manage their own custom content types and
Drupal 8, page callbacks are completely rewritten by utilizing Symfony Routing component. This session will explain many parts of routing, how to convert from Drupal 7 menu system to Drupal 8 routing system and it will cover how to define local tasks, local actions, and contextual links in Drupal 8.
Goodbye hook_menu() - Routing and Menus in Drupal 8Exove
This document discusses routing and menus in Drupal 8. In Drupal 8, hook_menu() has been replaced by static configuration in YAML files. Routing is defined in module.routing.yml, which maps paths to controller methods. Menu items are defined separately in module.menu_links.yml. This provides a cleaner separation of routing from menu display. Dynamic routes can also be defined by returning route objects from a callback method. Route alterations can be done through event subscribers. Other menu-related items like tabs and actions also have their own configuration files.
Presentation about comparing routing system in Drupal 7 and Drupal 8. What is implemented in REST module of Drupal 8? What is going to be in Services module for Drupal 8.
Drupal Step-by-Step: How We Built Our Training Site, Part 1Acquia
This document provides code snippets for building a training site in Drupal. It shows how to style buttons using preprocess_field and construct a migration class to pull in location data from additional tables for the training nodes. The migration class overrides the query and prepareRow methods to join the location tables and filter out past events.
Want to give the WordPress admin area some professional polish? Want to make it super easy for your clients to locate and work with their most critical data? How about making it super easy for your client to contact you? This talk will provide theme developers with ideas to do just that along with the PHP code snippets to make it a reality. Take the WordPress admin experience to the next level!
The document is notes from a Drupal training course. It introduces some core Drupal concepts like nodes, users, and modules. It then provides an example of a birthday module that allows users to save their birthday, displays it on their profile, and shows a happy birthday message on their birthday. The module utilizes hooks, forms, blocks, and other Drupal APIs.
The document provides an overview of WordPress hooks and custom post types.
It discusses how hooks allow plugins to modify WordPress' workflow and content through actions and filters. It also explains how plugins can define their own hooks and callbacks.
The document then covers how to create and manage custom post types through the register_post_type() function. It outlines many of the arguments that can be passed to register_post_type() to configure aspects like labels, capabilities, hierarchical structure, and permalinks for the custom post type.
In summary, the document recaps how plugins can utilize hooks to modify WordPress and introduces custom post types as a way for plugins to manage their own custom content types and
Ajax nested form and ajax upload in railsTse-Ching Ho
The document describes how to implement ajax nested forms and ajax file uploads in a Rails application. It discusses using the jquery-rails, anjlab-bootstrap-rails, simple_form, carrierwave, and mini_magick gems. It provides code examples for models with a nested association and carrierwave file uploads, form views using simple_form, and JavaScript to handle ajax responses. The key aspects are using respond_with, rendering modal views, rendering partials, defining ajax callbacks, and requiring the cocoon and remotipart gems to enable nested forms and ajax file uploads respectively.
First Steps in Drupal Code Driven DevelopmentNuvole
"First Steps in Code Driven Development" covers basic techniques and good practices. Presented during the "Developer Session" at Krimson office, Antwerp (BE), the 27th of May 2010.
The document discusses dependency injection (DI) in PHP using the BEAR framework. It shows how DI allows classes to declare dependencies without knowing how to instantiate them. The User class declares a dependency on a Storage interface without knowing the concrete class. The document provides various examples of injecting dependencies into classes through the constructor, setter methods, and a global dependency registry. It also demonstrates how to configure DI with options like injector callbacks and persistent objects.
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.
Анатолий Поляков - Drupal.ajax framework from a to zLEDC 2016
This document discusses Drupal's AJAX framework and how it can be used to build AJAX functionality into forms and other elements. It provides examples of using the framework to add AJAX features to forms, blocks, and links. Commands are used to manipulate the DOM and return HTML. Custom commands can also be added. The framework handles most business logic on the backend and allows building complex AJAX functionality with little required JavaScript code.
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.
This document discusses the use of class-based views in Django. It describes using Django's authentication framework with a custom backend to authenticate against a REST API instead of a database. It also covers using Django's session and message frameworks without a database. Various mixins are presented for building class-based views, including handling roles, REST APIs, templates, and building modular applications with common base classes and templates.
Opencast Admin UI - Introduction to developing using AngularJSbuttyx
This presentation is intended to help developers anticipating using and potentially extending the new Admin UI get a hands-on introduction into the Angular JS portion of the software. It has been presented in the form of a workshop and therefore the last slides (starting with the 22) could seem a bit abstract.
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 provides an overview of the ZendX_jQuery library for integrating jQuery and jQuery UI into Zend Framework applications. It discusses the requirements, different integration methods using view helpers and code examples. Features covered include view helpers for setting up jQuery, form helpers that generate jQuery UI widgets, and layout helpers for containers, tabs and accordions. The document recommends resources for further reading on jQuery, jQuery UI and managing assets in Zend Framework.
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>.
Drupal 7 Theming - Behind the Scenes: PHP control flow starting from entering URL to browser displaying webpage. Covers Theme info file, regions, an Rendear Arrays (Phoenix User Group 1/25/2012)
This document provides an overview and introduction to using Twitter Bootstrap, an open source front-end web development framework. It discusses installing Bootstrap, the basic grid system and components it provides like buttons, forms, tables and navigation bars. It also covers customizing Bootstrap with themes and integrating it into various platforms like Drupal, Magento, Symfony and more. Useful links are provided for additional Bootstrap plugins, themes and integration modules.
JavaServer Faces (JSF) is a web application framework that uses the model-view-controller (MVC) paradigm. It provides reusable UI components and manages the flow of web applications. MyFaces is an open source implementation of JSF that provides additional pre-built components. The document discusses the JSF architecture, how it works, example code components like input fields and validators, and advantages like reusable components and built-in validation.
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
This document summarizes a presentation about using the Zend_PDF library in PHP. It discusses how to create, load, manipulate and save PDF documents programmatically. Key topics covered include adding pages, drawing text, images and shapes, working with styles, fonts and colors, and advanced techniques for cloning pages and extracting resources. The goal is to demonstrate the capabilities and flexibility of the Zend_PDF component.
Php tour 2018 un autre regard sur la validation (1)Quentin Pautrat
The document discusses validating data in forms and business models. It proposes moving validation logic into the domain model to keep models in a valid state at all times. This involves defining validation rules as constants in the model and checking them in constructors and set methods. Tests can then validate the model's behavior without relying on a framework. The approach decouples validation from the framework and infrastructure layers for cleaner separation of concerns. DTOs can map form data to models while reusing validation logic defined in the domain model.
This document discusses Drupal services and provides examples of how to use and customize services. It covers:
- Common Drupal services like path, cache, and entity services
- Defining services in a module's services.yml file
- Overriding existing services by decorating or replacing their class
- Creating a custom service for integrating with an external API
- Stubbing out an external API service for local testing without hitting the real API
This document discusses migrating from Drupal 6 and 7 to Drupal 8. It provides an overview of the Migrate module, which allows importing content and configuration from other Drupal versions or external systems. Key aspects covered include the source and destination plugins, processing pipelines, and the overall migration workflow of mapping, processing and importing data. Examples of how to configure and execute migrations using Drush or custom code are also presented.
Ajax nested form and ajax upload in railsTse-Ching Ho
The document describes how to implement ajax nested forms and ajax file uploads in a Rails application. It discusses using the jquery-rails, anjlab-bootstrap-rails, simple_form, carrierwave, and mini_magick gems. It provides code examples for models with a nested association and carrierwave file uploads, form views using simple_form, and JavaScript to handle ajax responses. The key aspects are using respond_with, rendering modal views, rendering partials, defining ajax callbacks, and requiring the cocoon and remotipart gems to enable nested forms and ajax file uploads respectively.
First Steps in Drupal Code Driven DevelopmentNuvole
"First Steps in Code Driven Development" covers basic techniques and good practices. Presented during the "Developer Session" at Krimson office, Antwerp (BE), the 27th of May 2010.
The document discusses dependency injection (DI) in PHP using the BEAR framework. It shows how DI allows classes to declare dependencies without knowing how to instantiate them. The User class declares a dependency on a Storage interface without knowing the concrete class. The document provides various examples of injecting dependencies into classes through the constructor, setter methods, and a global dependency registry. It also demonstrates how to configure DI with options like injector callbacks and persistent objects.
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.
Анатолий Поляков - Drupal.ajax framework from a to zLEDC 2016
This document discusses Drupal's AJAX framework and how it can be used to build AJAX functionality into forms and other elements. It provides examples of using the framework to add AJAX features to forms, blocks, and links. Commands are used to manipulate the DOM and return HTML. Custom commands can also be added. The framework handles most business logic on the backend and allows building complex AJAX functionality with little required JavaScript code.
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.
This document discusses the use of class-based views in Django. It describes using Django's authentication framework with a custom backend to authenticate against a REST API instead of a database. It also covers using Django's session and message frameworks without a database. Various mixins are presented for building class-based views, including handling roles, REST APIs, templates, and building modular applications with common base classes and templates.
Opencast Admin UI - Introduction to developing using AngularJSbuttyx
This presentation is intended to help developers anticipating using and potentially extending the new Admin UI get a hands-on introduction into the Angular JS portion of the software. It has been presented in the form of a workshop and therefore the last slides (starting with the 22) could seem a bit abstract.
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 provides an overview of the ZendX_jQuery library for integrating jQuery and jQuery UI into Zend Framework applications. It discusses the requirements, different integration methods using view helpers and code examples. Features covered include view helpers for setting up jQuery, form helpers that generate jQuery UI widgets, and layout helpers for containers, tabs and accordions. The document recommends resources for further reading on jQuery, jQuery UI and managing assets in Zend Framework.
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>.
Drupal 7 Theming - Behind the Scenes: PHP control flow starting from entering URL to browser displaying webpage. Covers Theme info file, regions, an Rendear Arrays (Phoenix User Group 1/25/2012)
This document provides an overview and introduction to using Twitter Bootstrap, an open source front-end web development framework. It discusses installing Bootstrap, the basic grid system and components it provides like buttons, forms, tables and navigation bars. It also covers customizing Bootstrap with themes and integrating it into various platforms like Drupal, Magento, Symfony and more. Useful links are provided for additional Bootstrap plugins, themes and integration modules.
JavaServer Faces (JSF) is a web application framework that uses the model-view-controller (MVC) paradigm. It provides reusable UI components and manages the flow of web applications. MyFaces is an open source implementation of JSF that provides additional pre-built components. The document discusses the JSF architecture, how it works, example code components like input fields and validators, and advantages like reusable components and built-in validation.
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
This document summarizes a presentation about using the Zend_PDF library in PHP. It discusses how to create, load, manipulate and save PDF documents programmatically. Key topics covered include adding pages, drawing text, images and shapes, working with styles, fonts and colors, and advanced techniques for cloning pages and extracting resources. The goal is to demonstrate the capabilities and flexibility of the Zend_PDF component.
Php tour 2018 un autre regard sur la validation (1)Quentin Pautrat
The document discusses validating data in forms and business models. It proposes moving validation logic into the domain model to keep models in a valid state at all times. This involves defining validation rules as constants in the model and checking them in constructors and set methods. Tests can then validate the model's behavior without relying on a framework. The approach decouples validation from the framework and infrastructure layers for cleaner separation of concerns. DTOs can map form data to models while reusing validation logic defined in the domain model.
This document discusses Drupal services and provides examples of how to use and customize services. It covers:
- Common Drupal services like path, cache, and entity services
- Defining services in a module's services.yml file
- Overriding existing services by decorating or replacing their class
- Creating a custom service for integrating with an external API
- Stubbing out an external API service for local testing without hitting the real API
This document discusses migrating from Drupal 6 and 7 to Drupal 8. It provides an overview of the Migrate module, which allows importing content and configuration from other Drupal versions or external systems. Key aspects covered include the source and destination plugins, processing pipelines, and the overall migration workflow of mapping, processing and importing data. Examples of how to configure and execute migrations using Drush or custom code are also presented.
Come to this talk prepared to learn about the Doctrine PHP open source project. The Doctrine project has been around for over a decade and has evolved from database abstraction software that dates back to the PEAR days. The packages provided by the Doctrine project have been downloaded almost 500 million times from packagist. In this talk we will take you through how to get started with Doctrine and how to take advantage of some of the more advanced features.
The document discusses how Symfony 1.2 supports RESTful routes out of the box. It provides examples of how to configure routes to support different HTTP methods like GET, POST, PUT, DELETE. It also describes how to create custom route classes to support additional route matching and generation behaviors, like domain routing based on subdomains. Overall, the document shows how Symfony 1.2 allows developers to easily create RESTful applications by mapping URLs to controller actions and resources in a RESTful way.
The document discusses debugging techniques in Drupal 8. It begins by outlining some basic configuration options like PHP error reporting and the Devel module. It then covers specific debugging tools like Xdebug, Drupal Console, and the Web Profiler module. Various code examples demonstrate debugging problems like class not found errors and accessing protected properties. Continuous integration with Probo CI and pull requests are presented as solutions for testing and client approval workflows. The key steps for debugging are identified as thinking through code logically, identifying goals, finding the right tool to solve problems, and testing fixes.
The document provides an overview of the Django and Ruby on Rails web frameworks. It discusses their initial configuration, project structure, database and model components, controllers and views, administration features, extensibility through plugins/applications, and testing support. Example code snippets are provided for common tasks like defining models, views, form handling, and database migrations in each framework.
This document provides an overview of the basics of Drupal module development, including how to create blocks, forms, menus, and send emails using Drupal hooks and APIs. It demonstrates building a simple "DrupalCamp Forward" module that allows users to forward node URLs to friends. Key aspects covered include defining modules with .info and .module files, implementing common hooks for blocks, permissions, forms, and menus, and performing actions like form validation, form submission, and sending emails. The goal is to teach beginners the fundamentals of the Drupal API and module development.
https://speakerdeck.com/willroth/50-laravel-tricks-in-50-minutes - origin
Laravel 5.1 raised the bar for framework documentation, but there's much, much more lurking beneath the surface. In this 50-minute session, we'll explore 50 (yes, 50!) high-leverage implementation tips & tricks that you just won't find in the docs: the IoC Container, Blade, Eloquent, Middleware, Routing, Commands, Queues, Events, Caching — we'll cover them all! Join us as we drink from the fire hose & learn to take advantage of everything that Laravel has to offer to build better software faster!
The document contains code examples demonstrating various Laravel features including Eloquent models, relationships, queries, collections, authorization policies, middleware, routes, caching, testing, and more. Key concepts covered include model validation, translations, filtering collections, sorting collections, grouping collections, accessing related models, and authorization checks.
This document provides an overview of key differences between Zend Framework 1 and Zend Framework 2. It discusses changes to namespaces, controllers, services, routing, views, database adapters, forms, and other areas. Code examples are given to illustrate how concepts are implemented in ZF1 versus ZF2, such as using namespaces, dependency injection, and table gateways. The document aims to help ZF1 developers get started with ZF2.
Binary Studio Academy 2016: Laravel ControllersBinary Studio
The document discusses different types of controllers in Laravel including typical, implicit, and resource controllers. Typical controllers map routes to controller actions. Implicit controllers automatically map route paths to controller actions based on the request method. Resource controllers automatically generate RESTful routes that map to CRUD controller actions for a resource.
Drupal 8 Services And Dependency InjectionPhilip Norton
Using the service manager is an essential part of a Drupal 8 developers toolkit and understanding it not only helps development, but can also allow you to create modules that can be easily used by other developers. There are numerous code examples out there that talk about using this or that service, so I'll look at how to go from "\Drupal::service('thing');" to finding and using services within Drupal 8. I will look at creating custom services to use within your own modules and provide injectable dependencies for other modules. I will also show how to override services to provide your own functionality to existing services. All code shown will be real examples that you can take away and use in your own projects.
Given at DrupalCamp London 2018
This document provides an introduction to AngularJS presented by Dmitry Ivashutin. It discusses key concepts like AngularJS being a framework rather than a library, its use of MVC/MVVM patterns, and features like directives, controllers, scopes and dependency injection. Specific directives and recipes for services, factories and providers are demonstrated. The document aims to explain core AngularJS concepts for developers new to the framework.
This document summarizes an issue with authentication on a Drupal site and proposes better solutions.
The initial solution tried to prevent staff from logging in on public pages by checking user roles during form validation, logging users out, and redirecting to the staff login page.
A better approach is to mimic how other authentication modules handle it. The LDAP and GAuth modules attach validators or submit handlers to take over authentication processing rather than putting logic in the form validation.
The GAuth module example alters the login form to add a "Sign in with Google" button. Its submit handler handles the OAuth flow and redirects back, logging the user in if an account is found matching their Google ID.
Angular is a web application framework developed in 2009. It allows developers to create single page applications using HTML enhanced with Angular specific directives and by associating angular components like controllers, services and filters with HTML. The document provides an overview of key Angular concepts like controllers, services, filters and routing and how they are used to build interactive single page applications. It also demonstrates how to make HTTP requests to backend services and handle promises using the $http service and $q.
Drupalcon 2023 - How Drupal builds your pages.pdfLuca Lusso
Have you ever wondered what happens when a HTTP request reaches your Drupal web site? How does Drupal find the correct code to execute? Which parts of the page come from the cache and which ones are built from scratch? Which queries are executed against the database? And, why not, how much time and memory the request requires to be converted into a response?
Whether you are a contrib developer or a simple curious person the answers to those questions will let you better understand how Drupal 10 works.
The WebProfiler module can help you in discovering how all the different subsystems of Drupal 10 interact to take a request and return a response. WebProfiler collects data during the build of each page of the site and lets you easily explore the internals of Drupal 10.
2023 - Drupalcon - How Drupal builds your pagessparkfabrik
Have you ever wondered what happens when a HTTP request reaches your Drupal web site? How does Drupal find the correct code to execute? Which parts of the page come from the cache and which ones are built from scratch? Which queries are executed against the database? And, why not, how much time and memory the request requires to be converted into a response?
Whether you are a contrib developer or a simple curious person the answers to those questions will let you better understand how Drupal 10 works.
The WebProfiler module can help you in discovering how all the different subsystems of Drupal 10 interact to take a request and return a response. WebProfiler collects data during the build of each page of the site and lets you easily explore the internals of Drupal 10.
Follow the journey of a request entering the stack middleware, passing the routing component and the controller through the ViewSubscriber and Twig. Discover how services provide functionalities and how events give the opportunity (or the chance) to write decoupled code.
Knowing your system will allow you to find bottlenecks, reduce resources and lower the costs.
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
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
Programming Foundation Models with DSPy - Meetup SlidesZilliz
Prompting language models is hard, while programming language models is easy. In this talk, I will discuss the state-of-the-art framework DSPy for programming foundation models with its powerful optimizers and runtime constraint system.
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!
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
Infrastructure Challenges in Scaling RAG with Custom AI modelsZilliz
Building Retrieval-Augmented Generation (RAG) systems with open-source and custom AI models is a complex task. This talk explores the challenges in productionizing RAG systems, including retrieval performance, response synthesis, and evaluation. We’ll discuss how to leverage open-source models like text embeddings, language models, and custom fine-tuned models to enhance RAG performance. Additionally, we’ll cover how BentoML can help orchestrate and scale these AI components efficiently, ensuring seamless deployment and management of RAG systems in the cloud.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!SOFTTECHHUB
As the digital landscape continually evolves, operating systems play a critical role in shaping user experiences and productivity. The launch of Nitrux Linux 3.5.0 marks a significant milestone, offering a robust alternative to traditional systems such as Windows 11. This article delves into the essence of Nitrux Linux 3.5.0, exploring its unique features, advantages, and how it stands as a compelling choice for both casual users and tech enthusiasts.
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
Best 20 SEO Techniques To Improve Website Visibility In SERPPixlogix Infotech
Boost your website's visibility with proven SEO techniques! Our latest blog dives into essential strategies to enhance your online presence, increase traffic, and rank higher on search engines. From keyword optimization to quality content creation, learn how to make your site stand out in the crowded digital landscape. Discover actionable tips and expert insights to elevate your SEO game.
“An Outlook of the Ongoing and Future Relationship between Blockchain Technologies and Process-aware Information Systems.” Invited talk at the joint workshop on Blockchain for Information Systems (BC4IS) and Blockchain for Trusted Data Sharing (B4TDS), co-located with with the 36th International Conference on Advanced Information Systems Engineering (CAiSE), 3 June 2024, Limassol, Cyprus.
13. D7: page callback
/**
* Menu callback; logs the current user out, and redirects to the home page.
*/
function user_logout() {
global $user;
watchdog('user', 'Session closed for %name.', array('%name' => $user->name));
module_invoke_all('user_logout', $user);
// Destroy the current session, and reset $user to the anonymous user.
session_destroy();
drupal_goto();
}
17. D8: Path (required)
For dynamic properties, you can include them in curly braces.
For example -
‘/admin/structure/views/{js}/display/{view}/{display_id}/{type}'
The {display_id} element in the URL is called a placeholder and
is available as $display_id in the controller method.
18. D8: dynamic path example
views_ui.form_display:
path: '/admin/structure/views/{js}/display/{view}/{display_id}/{type}'
defaults:
_content: 'Drupalviews_uiFormAjaxDisplay::getForm'
class Display extends ViewsFormBase {
public function getForm(ViewStorageInterface $view, $display_id, $js, $type =
NULL) {
$this->setType($type);
return parent::getForm($view, $display_id, $js);
}
21. D8: Page Types
_content : - display content on a page
_form : - display form on a page.
_controller : - use to generate raw data like json output
_entity_view : - for example - node.teaser
_entity_form : - display a form for a entity
_entity_list : - display list of entity like node
24. D8: Access checkers
Based upon roles, permissions:
_permission - A permission string (e.g. - _permission: ‘access
content’)
_role : A specific user role (e.g.- administrator)
25. D8: Access checkers
Based upon access to Entities (view, update, delete)
_entity_access: In case where an entity is part of route, can check
a certain access level before granting access (e.g. node.view)
Example:
_entity_access: node.view
26. D8: Access check
Custom Access
_custom_access: You can also do custom access checking on
route.
Same as title callback (define as method on class)Read more -
https://www.drupal.org/node/2122195
_custom_access: DrupalshortcutFormSwitchShortcutSet::checkAccess
public function checkAccess(UserInterface $user = NULL) {
return shortcut_set_switch_access($user);
}
27. D8: Access check
Access check for everyone
grant access to everyone
_access: TRUE
31. D7: User Password Form
function user_pass() {
$form['name'] = array(
'#type' => 'textfield',
'#title' => t('Username or e-mail address'),
'#size' => 60,
'#maxlength' => max(USERNAME_MAX_LENGTH,
EMAIL_MAX_LENGTH),
'#required' => TRUE,
'#default_value' => isset($_GET['name']) ? $_GET['name'] : '',
);
[...]
}
function user_pass_validate($form, &$form_state)
function user_pass_submit($form, &$form_state)
32. D8: Form Router
Forms are classes
There is no method in forms as forms are presented as one class
Use _form instead of _content or _controller
user.pass:
path: '/user/password'
defaults:
_form: 'DrupaluserFormUserPasswordForm'
_title: 'Request new password'
requirements:
_access: 'TRUE'
options:
_maintenance_access: TRUE
33. D8: Form Interface
namespace DrupalCoreForm;
interface FormInterface {
public function getFormId() {
return 'user_pass';
}
35. pubDlic8 fu:n Fctioonr mvali dIantetFeorrmfa(acrreay &$form, FormStateInterface $form_state) {
$name = trim($form_state->getValue('name'));
$users = $this->userStorage->loadByProperties(array('mail' => $name, 'status' =>
'1'));
if (empty($users)) {
$users = $this->userStorage->loadByProperties(array('name' => $name, 'status'
=> '1'));
}
if ($account && $account->id()) {
$form_state->setValueForElement(array('#parents' => array('account')),
$account);
}
else {
$form_state->setErrorByName('name', $this->t('Sorry, %name is not recognized
as a username or an email address.', array('%name' => $name)));
$account = reset($users);
}
36. public function submitForm(array &$form, FormStateInterface $form_state) {
$langcode = $this->languageManager->getCurrentLanguage()->getId();
$account = $form_state->getValue('account');
// Mail one time login URL and instructions using current language.
$mail = _user_mail_notify('password_reset', $account, $langcode);
if (!empty($mail)) {
$this->logger('user')->notice('Password reset instructions mailed to %name
at %email.', array('%name' => $account->getUsername(), '%email' =>
$account->getEmail()));
drupal_set_message($this->t('Further instructions have been sent to your
email address.'));
}
$form_state->setRedirect('user.page');
}
37. D8: Form Base class
** generic base class - this includes string translation, link generator
DrupalCoreFormFormBase
for example -
class UserLoginForm extends FormBase
* * Base class for implementing system configuration forms.
DrupalcoreformConfigFormBase
for example -
class MenuSettingsForm extends ConfigFormBase
** base class for a confirmation form.
DrupalCoreFormConfirmFormBase
for example -
class UserMultipleCancelConfirm extends ConfirmFormBase
53. Options
_admin_route -- whether to use the admin theme for this route
_maintenance_access -- whether route is publicly available when the site
is in maintenance mode
_access_mode -- whether requirements are ANY or ALL
Useful Tips
54. Useful links
https://www.drupal.org/node/1800686 - change record
https://www.drupal.org/node/2118147 - D7 to D8 upgrade tutorial
https://www.drupal.org/developing/api/8/routing - Routing system in D8
This is a general overview of how routing works. So request comes in via your mobile devices or browser and you get a response in the format of JSON or HTML, an image, a redirect or a 404 return.
Drupal routing works with Symfony HTTP Kernel, but you don’t need to know the details how it works.
In Symfony there is an object which converts request into response which is called HTTP kernel. router matches the incoming URl to a specific route and returns information about the route including controller that should be executed. Symfony kernel executes the controller, which returns a response object.
hook_menu did too much in Drupal 7 and it was very complicated to understand what it was doing or it was very difficult to do any advanced task with it.
This example is from user module from Drupal 7. As you can see it has path - user/logout, title as change log out, access callback, page callback, weight, menu-name, and this callback happens to be in separate file - user.pages.inc
This is a page callback in Drupal 7. All it does is logs out the user, closes the session and takes user to the homepage.
So this part takes over the routing aspect from drupal 7. This is routing yml for Drupal 8. modulename.routing.yml
There is a machine name - user.logout of the route(modulname.something), path is - user/logout, it is same as what used to be in the key array items. There is two other section - defaults and requirements. The new thing is the controller part here which is following PSR-4 standard here but I am not covering here but this is the controller we are using here = Drupal\user\Controller\UserController instead of old page callback.
Controller has a class name - \Drupal\user\Controller\UserController and logout is method name.
For the requirement, it is same as access callback in hook_menu in Drupal 7, here we have if user is logged in as requirement instead of access argument.
This is Drupal 8 version, In d8 everything is in objects and classes. so here we have a namespace. In Drupal 8, we are using psr -4 (to know where files are). we have a method here which is for logout. All it does is logs out the current user and redirect user to homepage. So the general concept is that instead of having a function in a one file you have it in in method in a class.
Path is required in Drupal 8.
If you are using node IDs in the URL, the ID can be automatically be converted to a node object by ParamConverter system so it loads an entity from an existing entity ID.
In this example above, its using id as one of the parameter, you can see order doesn’t matter here. so we have a entity type view here and in the method, it loads the complete views object.
In some cases, you can provide default value under defaults. By default drupal passes some parameter.
if you go to user/somenumber/cancel/confirm page then something will be displayed and if you don’t provide default value for timestamp and hashed_pass then it will return 404 page.
So we do have title_callback here, if you go to user/specific user page then you want to display user name as the title so we are using title_callback here. same syntax as controller.
5 available defaults in Drupal 8. it is required in drupal 8
Controller is for non-HTML, JSON or only for partial HTML but no theming or block will be output.
entity_view - value is entity_type.view_mode. for example node.teaser will return render array of the node in teaser mode.
entity_form - for example _entity_form: node.default will display the default node form.
entity_list : - for example view_mode returns the list of view modes. (Value is the entity type/view mode to show)
requirements - determines what conditions must be met in order to grant access to the route.
role - since this can be different for sites so its recommended to use permission based on access restriction.
_format:json - so it only matches requests when the accept header is json
_module -
requirements - determines what conditions must be met in order to grant access to the route.
role - since this can be different for sites so its recommended to use permission based on access restriction.
_format:json - so it only matches requests when the accept header is json
_module
requirements - determines what conditions must be met in order to grant access to the route.
role - since this can be different for sites so its recommended to use permission based on access restriction.
_format:json - so it only matches requests when the accept header is json
_module
requirements - determines what conditions must be met in order to grant access to the route.
role - since this can be different for sites so its recommended to use permission based on access restriction.
_format:json - so it only matches requests when the accept header is json
_module
In Drupal 8, routing is very powerful. So now you need to check access on the page like does the user has certain role or permission so symfony provides requirements. So here is _permission and also there is role so you can specify if user has permission to access the content based on role and permission.
There is also _entity_access permission. So if user go to node.edit so if user has permission to edit the node
In Drupal 8, you can also have multiple access checks. In the above route, there are two access check. options “any” means if either of the requirements is true then user will be able to access the page. If there is _access_mode: All then both requirements need to meet in order to access the page. This is more powerful than Drupal 7. Default is “ALL”
A very interesting thing here - _node_operation_route:TRUE - You can configure in node module that all node related routes show the admin theme so this is a flag which flags the route here.
In Drupal 8, we are using form api such as user login page. In the previous example we saw _controller, _content and so on. in Drupal 8 forms are classes. use _form . there is no method so one form is presented as one class. here in this example, we have a user login form
In Drupal 8, here is user login form, it has a getFormId function, buildform function, and submit function, validateAuthentication, validateName and validateFiinal function. build form lets you build the form structure. submit method is executed when form is submitted.
validateName function is for -- Sets an error if supplied username has been blocked.
validateAuthentication function is for checking supplied username/password against local users table.
validateFinal function is for checking if user was not authenticated, or if too many logins were attempted,
Code was too long to paste here so just wanted to show you an example of form in Drupal 8.
In Drupal 8, we are using form api such as user login page. In the previous example we saw _controller, _content and so on. in Drupal 8 forms are classes. use _form . there is no method so one form is presented as one class. here in this example, we have a user login form
In Drupal 8, here is user login form, it has a getFormId function, buildform function, validateForm, and submit function. build form lets you build the form structure. validateForm is for flagging errors in submitted data. submit method is executed when form is submitted and has passed validation.
Code was too long to paste here so just wanted to show you an example of form in Drupal 8.
In Drupal 8, here is user login form, it has a getFormId function, buildform function, validateForm, and submit function. build form lets you build the form structure. validateForm is for flagging errors in submitted data. submit method is executed when form is submitted and has passed validation.
Code was too long to paste here so just wanted to show you an example of form in Drupal 8.
In Drupal 8, here is user login form, it has a getFormId function, buildform function, validateForm, and submit function. build form lets you build the form structure. validateForm is for flagging errors in submitted data. submit method is executed when form is submitted and has passed validation.
Code was too long to paste here so just wanted to show you an example of form in Drupal 8.
In Drupal 8, here is user login form, it has a getFormId function, buildform function, and submit function,
validateFinal function is for checking if user was not authenticated, or if too many logins were attempted,
There are some helper classes for form .
ConfigFormBase - Provides an generic base class for a confirmation form.
FormBase - generic base class - includes string translation, link generator,
ConfirmFormBase -
in Drupal 8 you have menu local tasks in its own file so here we have user.links.task.yml file.
in Drupal 8 you have menu local tasks in its own file so here we have user.links.task.yml file.
in Drupal 8 you have menu local tasks in its own file so here we have user.links.task.yml file.
in Drupal 8 you have menu local tasks in its own file so here we have user.links.task.yml file. here we don’t path anymore but we have route_name, base_route, title, and weight.
base_route so tabs appear on same page.
in Drupal 8 you have menu local tasks in its own file so here we have user.links.task.yml file. here we don’t path anymore but we have route_name, base_route, title, and weight.
base_route so tabs appear on same page.
in Drupal 8 we have local action which is add content here in this image. so you can easily create some content.
in Drupal 8, you can define local action in node.links.action.yml. you have machine name, route name, title. important thing to notice is “appears on” where this local action should appear.
in Drupal 8, you can define local action in node.links.action.yml. you have machine name, route name, title. important thing to notice is “appears on” where this local action should appear.
in Drupal 8, if you hover over any block then you get this “configure block” icon so in drupal 8 you can configure block where should it appear and you can do that in contextual yml file.
in Drupal 8, you can configure block where should it appear and you can do that in contextual yml file for example - block.links.contextual.yml. again machine name, title, group, and route name. everything which is related to block contextual link should appear under block group
in Drupal 8, you can configure block where should it appear and you can do that in contextual yml file for example - block.links.contextual.yml. again machine name, title, group, and route name. everything which is related to block contextual link should appear under block group
Check BlockViewBuilder - group block is defined there in the render array
in Drupal 8, you can configure block where should it appear and you can do that in contextual yml file for example - user.links.contextual.yml. again machine name, title, group, weight, and route name so its like i want to display delete role on user.role_delete route.
hook_menu did too much in Drupal 7 and it was very complicated to understand what it was doing or to do anything very advanced tasks.
hook_menu did too much in Drupal 7 and it was very complicated to understand what it was doing or to do anything very advanced tasks.