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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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
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.
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!
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.
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.
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.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.
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.
This PHP document defines functions for a WordCamp Spain plugin. It includes functions to add an image to post content, create an options page for configuring the image settings, and register a widget to display the image. The options page and widget allow configuring the image path, width, and height. The plugin filters post content and registers a widget to display the configured image.
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)
Alfredo PUMEX provides a pluggable mechanism for customizing the SugarCRM Users module without modifying core files. It uses jQuery and Alfredo Patch to dynamically extend the Users module functionality. Extension modules simply provide template and PHP files that are loaded via globbing. This allows customizing detail and edit views, and intercepting save actions to handle custom fields. The document provides an example of refactoring the YAAI module to use this approach instead of overwriting core files.
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.
The document discusses dependency injection and describes how to build a simple dependency injection container in PHP. It explains how to use anonymous functions to describe how to create objects without instantiating them. The container stores these functions and uses them to instantiate objects on demand, injecting their dependencies. This allows decoupling objects and making configuration and customization natural. The container manages both parameters and object instantiation, handles scopes like shared instances, and can be configured flexibly.
The document discusses routing and URL design in Rails. It provides examples of using Rails routing to map URLs to controller actions for basic routes, parameterized routes, RESTful routes, nested routes, and customizing routes. Key points covered include using the resources method to generate RESTful routes, customizing routes, and generating paths and URLs in views.
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.
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.
This document provides an overview of the basic structure and functions needed to create a Drupal 5 module, including defining a custom content type, handling user access permissions, performing database operations, adding menu items and callbacks, and other optional functions. The key components covered are the module .info file, installation functions, node type definition, form generation, access control, database queries, hook implementations, and menu integration.
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>.
The document discusses the Twig template engine and its advantages over traditional PHP templates. Some key points:
1. Twig templates are compiled and cached for better performance compared to PHP templates. It also uses extensions and caching like APC for further optimizations.
2. Twig templates promote cleaner and more beautiful code through features like variables, filters, functions, logic/loops, inheritance/extensions, and reusability.
3. Twig helps enforce separation of concerns in MVC by handling data, view binding, and view structures/macros while keeping control logic in controllers.
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.
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!
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.
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.
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.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.
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.
This PHP document defines functions for a WordCamp Spain plugin. It includes functions to add an image to post content, create an options page for configuring the image settings, and register a widget to display the image. The options page and widget allow configuring the image path, width, and height. The plugin filters post content and registers a widget to display the configured image.
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)
Alfredo PUMEX provides a pluggable mechanism for customizing the SugarCRM Users module without modifying core files. It uses jQuery and Alfredo Patch to dynamically extend the Users module functionality. Extension modules simply provide template and PHP files that are loaded via globbing. This allows customizing detail and edit views, and intercepting save actions to handle custom fields. The document provides an example of refactoring the YAAI module to use this approach instead of overwriting core files.
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.
The document discusses dependency injection and describes how to build a simple dependency injection container in PHP. It explains how to use anonymous functions to describe how to create objects without instantiating them. The container stores these functions and uses them to instantiate objects on demand, injecting their dependencies. This allows decoupling objects and making configuration and customization natural. The container manages both parameters and object instantiation, handles scopes like shared instances, and can be configured flexibly.
The document discusses routing and URL design in Rails. It provides examples of using Rails routing to map URLs to controller actions for basic routes, parameterized routes, RESTful routes, nested routes, and customizing routes. Key points covered include using the resources method to generate RESTful routes, customizing routes, and generating paths and URLs in views.
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.
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.
This document provides an overview of the basic structure and functions needed to create a Drupal 5 module, including defining a custom content type, handling user access permissions, performing database operations, adding menu items and callbacks, and other optional functions. The key components covered are the module .info file, installation functions, node type definition, form generation, access control, database queries, hook implementations, and menu integration.
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>.
The document discusses the Twig template engine and its advantages over traditional PHP templates. Some key points:
1. Twig templates are compiled and cached for better performance compared to PHP templates. It also uses extensions and caching like APC for further optimizations.
2. Twig templates promote cleaner and more beautiful code through features like variables, filters, functions, logic/loops, inheritance/extensions, and reusability.
3. Twig helps enforce separation of concerns in MVC by handling data, view binding, and view structures/macros while keeping control logic in controllers.
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.
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.
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.
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.
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
When you move beyond adding simple enhancements to your website with jQuery and start building full-blown client-side applications, how do you organize your code? At this month's Triangle JS Meetup, we'll take a look at patterns for application development using jQuery that promote the principles of tight encapsulation and loose coupling, including classes, the publish/subscribe paradigm, and dependency management and build systems.
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
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
Learn about some of the new features in Laravel 5, with a focus on the command pipeline, including a few opinions about how to use the pipeline in the best possible way to enforce a solid separation of concerns.
This document provides an overview of module development in Drupal. It introduces the presenters Ipsita Mishra and Siva Kumar Epari and their experience with Drupal. It then discusses the different types of modules in Drupal including core modules, contrib modules, and custom modules. For each type, it provides brief descriptions and examples. It also covers best practices for writing custom modules including file and code structure. Finally, it discusses various Drupal APIs and hooks that are useful for module development like hook_menu(), hook_block(), and tools that can assist with development like Drush, Devel, and Coder.
Drupal Module Development - OSI Days 2010Siva Epari
This document provides an overview of module development in Drupal. It introduces the presenters Ipsita Mishra and Siva Kumar Epari and their experience with Drupal. It then discusses the different types of modules in Drupal including core modules, contrib modules, and custom modules. For each type, it provides brief descriptions and examples. It also covers best practices for writing a custom module including file and directory structure. Finally, it discusses several developer tools that can help with module development like Drush, Devel, Devel Themer, and Coder.
The document provides tips for creating reusable plugins in CakePHP. It discusses placing plugin code in standardized directories, extending and customizing existing plugins, using components and behaviors to add reusable logic, and automating tasks through callbacks and configuration. Emphasis is placed on writing clean, well-tested code and documenting plugins to make them easy for others to implement and extend.
The document provides an overview of the Laravel framework's Eloquent ORM and database operations. It discusses how to define Eloquent models and perform common CRUD operations and queries. It also covers relationships, scopes, eager loading, and other features of working with databases using Eloquent.
Introducción al Backend de Drupal es un taller impartido durante el Drupal Day Spain 2019 en Zaragoza, estas son las slides de la actividad.
Incluye aspectos como:
- Creación de módulos custom en Drupal
- Creación de formularios custom en Drupal
- Inyección de Dependencias para Servicios en Drupal
- Prefilling de valores en campos de formulario
- Comandos útiles para herramientas de consola en Drupal
This document provides an overview of RESTful web services using Mojolicious and DBIx::Class. It describes a sample expense tracker application with five database tables in a many-to-many relationship. It then introduces REST concepts and describes how Mojolicious routes requests, DBIx::Class models the database, and generic controllers can provide CRUD operations. Finally, it outlines the steps to generate RESTful routes for a database table, including creating a model and controller that inherits standard CRUD methods.
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.
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Speck&Tech
ABSTRACT: A prima vista, un mattoncino Lego e la backdoor XZ potrebbero avere in comune il fatto di essere entrambi blocchi di costruzione, o dipendenze di progetti creativi e software. La realtà è che un mattoncino Lego e il caso della backdoor XZ hanno molto di più di tutto ciò in comune.
Partecipate alla presentazione per immergervi in una storia di interoperabilità, standard e formati aperti, per poi discutere del ruolo importante che i contributori hanno in una comunità open source sostenibile.
BIO: Sostenitrice del software libero e dei formati standard e aperti. È stata un membro attivo dei progetti Fedora e openSUSE e ha co-fondato l'Associazione LibreItalia dove è stata coinvolta in diversi eventi, migrazioni e formazione relativi a LibreOffice. In precedenza ha lavorato a migrazioni e corsi di formazione su LibreOffice per diverse amministrazioni pubbliche e privati. Da gennaio 2020 lavora in SUSE come Software Release Engineer per Uyuni e SUSE Manager e quando non segue la sua passione per i computer e per Geeko coltiva la sua curiosità per l'astronomia (da cui deriva il suo nickname deneb_alpha).
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.
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.
Full-RAG: A modern architecture for hyper-personalizationZilliz
Mike Del Balso, CEO & Co-Founder at Tecton, presents "Full RAG," a novel approach to AI recommendation systems, aiming to push beyond the limitations of traditional models through a deep integration of contextual insights and real-time data, leveraging the Retrieval-Augmented Generation architecture. This talk will outline Full RAG's potential to significantly enhance personalization, address engineering challenges such as data management and model training, and introduce data enrichment with reranking as a key solution. Attendees will gain crucial insights into the importance of hyperpersonalization in AI, the capabilities of Full RAG for advanced personalization, and strategies for managing complex data integrations for deploying cutting-edge AI solutions.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
“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.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
GraphRAG for Life Science to increase LLM accuracyTomaz Bratanic
GraphRAG for life science domain, where you retriever information from biomedical knowledge graphs using LLMs to increase the accuracy and performance of generated answers
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!
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceIndexBug
Imagine a world where machines not only perform tasks but also learn, adapt, and make decisions. This is the promise of Artificial Intelligence (AI), a technology that's not just enhancing our lives but revolutionizing entire industries.
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.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
9. D7 hook_menu
SECTION TITLE
● Routing (page and access callbacks)
● Menu links
● Local actions
● Local tasks
● Breadcrumbs
● Contextual links
● Title
● Weight
14. 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 slug 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
23. D8: Available Checks
_permission - A permission string (e.g. - _permission: ‘access
content’)
_role : A specific user role (e.g.- administrator)
_entity_access: In case where an entity is part of route, can check
a certain access level before granting access (e.g. node.view)
_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
24. D8: Access check
user.role_add:
path: '/admin/people/roles/add'
defaults:
_entity_form: user_role.default
_title: 'Add role'
requirements:
_permission: 'administer permissions'
Some permissions based on roles , permissions
_permission: ‘administer nodes’
_role: ‘administrator’
Based upon access to Entities
_entity_access: $entity_type.$operation
check to see if everyone has access
_access: TRUE
28. 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
29. 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)
30. D8: Form Interface
namespace DrupalCoreForm;
* Provides an interface for a Form.
interface FormInterface {
* Returns a unique string identifying the form
public function getFormId();
*Form constructor.
public function buildForm(array $form, array &$form_state);
* Form validation handler.
public function validateForm(array &$form, array &$form_state);
* Form submission handler.
public function submitForm(array &$form, array &$form_state);
}
31. D8: User Password Form
class UserPasswordForm extends FormBase {
public function getFormId() { return ‘user_pass’; }
public function buildForm(array $form, array &$form_state) {
$form['name'] = array(
'#type' => 'textfield',
'#title' => $this->t('Username or email address'),
'#size' => 60,
'#maxlength' => max(USERNAME_MAX_LENGTH,
EMAIL_MAX_LENGTH),
'#required' => TRUE,
);
public function submitForm(array &$form, array &$form_state) {....}
public function validateForm(array &$form, array &$form_state) {...}
32. D7: Form Validation
function user_pass_validate($form, &$form_state) {
[...]
form_set_error('name', t('Sorry, %name is not recognized as a user
name or an e-mail address.', array('%name' => $name)));
}
33. D8: Form Validation
public function validateForm(array &$form, array &$form_state) {
[...]
$this->setFormError('name', $form_state, $this->t('Sorry, %name is not
recognized as a username or an email address.', array('%name' =>
$name)));
}
34. D8: Form Base
class* * Base class for implementing system configuration forms.
DrupalcoreformConfigFormBase
for example -
class MenuSettingsForm extends ConfigFormBase
** generic base class - thisincludes string translation, link generator
DrupalCoreFormFormBase
for example -
class UserLoginForm extends FormBase
** base class for a confirmation form.
DrupalCoreFormConfirmFormBase
for example -
class LoggingForm extends ConfigFormBase
50. Options
Useful Tips
_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
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
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 = DrupaluserControllerUserController instead of old page callback.
Controller has a class name - DrupaluserControllerUserController 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 a page callback in Drupal 7. All it does is logs out the user, closes the session and takes user to the homepage.
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 ParamConvertor 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 dont 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.
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 very 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, 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, 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, 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,
Just want to show you submitForm method in detail here for user login form. so after user submits login form then you want to redirect user to somewhere and in this case user is directed to user.view route so you are redirecting user to user/123 page so you are not using path here anymore but you are giving routename here,
Just want to show you submitForm method in detail here for user login form. so after user submits login form then you want to redirect user to somewhere and in this case user is directed to user.view route so you are redirecting user to user/123 page so you are not using path here anymore but you are giving routename here,
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.