This document provides an overview of module development in Drupal 6. It discusses what modules are, the different types of modules, and how to tell Drupal about a new module using the .info file. It also explains several important Drupal hooks for module development, including hook_help, hook_perm, hook_init, hook_theme, hook_block, and hook_menu. Code examples are provided for implementing common hooks.
Drupal theming - a practical approach (European Drupal Days 2015)Eugenio Minardi
This document discusses best practices for Drupal theming. It covers topics like directory layout, basic theme elements, render arrays, hooks, overriding templates and functions, common mistakes, and more. Tools like VirtualBox and Vagrant are recommended for local development. Templates should be used for display only and advanced logic should be moved to preprocess functions. Security risks can arise from directly editing core/module files or using global variables.
Drupal themes are created by using template files (.tpl.php) and style sheets (.css) that define the presentation layer of a Drupal site. A theme is a collection of these files that control how content is displayed. Template files can overwrite each other based on a hierarchy, with more specific templates taking precedence over more general ones. Style sheets also overwrite each other based on this hierarchy. Themes provide the final presentation definition by overwriting templates and styles from Drupal core and other modules.
Grok Drupal (7) Theming (presented at DrupalCon San Francisco)Laura Scott
This is now DEPRECATED. Please see Grok Drupal (7) Theming, February 11 Update
These are slides for my presentation at DrupalCon San Francisco, April 2010.
There is <a>audio/video of the presentation at the DCSF website</a>.
My apologies for the extraneous slides -- that's how Slideshare converted my Keynote file.
The document provides an introduction to theming in Drupal 7. It covers prerequisites for theming including HTML, CSS, and basics of Drupal and PHP. It then discusses theming concepts such as theme components, templates, overriding functions, and tools for theming. The document provides examples of how to create templates, add variables, and override functions to customize a Drupal theme.
This presentation was delivered on 11th May, 2014 in Drupal Camp Pakistan held in DatumSquare IT Services Islamabad. Contents of the presentation contains some basics stuff for designers, themers and coders.
This document provides an overview of new features for theming in Drupal 8, including the transition from PHPTemplate to the Twig templating language. Key points include:
- Drupal 8 uses Twig instead of PHPTemplate for improved security, syntax, and separation of logic from presentation.
- Twig templates, YAML configuration, and fewer hardcoded HTML classes/IDs provide better separation of concerns between backend and frontend.
- The theme layer has been updated, removing processing hooks in favor of template preprocessing and theme suggestions to alter output.
- Core includes starter themes like Bartik and modules to help with responsive design and development.
Improving your Drupal 8 development workflow DrupalCampLAJesus Manuel Olivas
Drupal 8 has changed a lot and the process of creating, building, testing and deploying a site is not the exception. During this session, you will understand the process of creating, building, testing and deploying Drupal 8 sites, and learn which tools you can use to improve your local development workflow and reduce project setup and onboarding time, implement automated analysis tools for code review, code coverage and finally how to build an artifact and deploy your project.
Performance on a budget (European Drupal Days 2015) Eugenio Minardi
This document contains the slides from a presentation about improving Drupal performance. It discusses measuring performance through metrics like page load time and resource usage. The method outlined involves defining key content, setting performance goals, identifying bottlenecks, brainstorming improvements, implementing one change, and verifying the results. Specific examples provided include reducing the number of requests, optimizing code through caching, optimizing the configuration by disabling unused modules, offloading database queries through caching, and prioritizing rendering of useful content to improve perceived performance. The key takeaway is that performance optimization should focus on goals and be considered throughout development without prematurely optimizing code.
Drupal theming - a practical approach (European Drupal Days 2015)Eugenio Minardi
This document discusses best practices for Drupal theming. It covers topics like directory layout, basic theme elements, render arrays, hooks, overriding templates and functions, common mistakes, and more. Tools like VirtualBox and Vagrant are recommended for local development. Templates should be used for display only and advanced logic should be moved to preprocess functions. Security risks can arise from directly editing core/module files or using global variables.
Drupal themes are created by using template files (.tpl.php) and style sheets (.css) that define the presentation layer of a Drupal site. A theme is a collection of these files that control how content is displayed. Template files can overwrite each other based on a hierarchy, with more specific templates taking precedence over more general ones. Style sheets also overwrite each other based on this hierarchy. Themes provide the final presentation definition by overwriting templates and styles from Drupal core and other modules.
Grok Drupal (7) Theming (presented at DrupalCon San Francisco)Laura Scott
This is now DEPRECATED. Please see Grok Drupal (7) Theming, February 11 Update
These are slides for my presentation at DrupalCon San Francisco, April 2010.
There is <a>audio/video of the presentation at the DCSF website</a>.
My apologies for the extraneous slides -- that's how Slideshare converted my Keynote file.
The document provides an introduction to theming in Drupal 7. It covers prerequisites for theming including HTML, CSS, and basics of Drupal and PHP. It then discusses theming concepts such as theme components, templates, overriding functions, and tools for theming. The document provides examples of how to create templates, add variables, and override functions to customize a Drupal theme.
This presentation was delivered on 11th May, 2014 in Drupal Camp Pakistan held in DatumSquare IT Services Islamabad. Contents of the presentation contains some basics stuff for designers, themers and coders.
This document provides an overview of new features for theming in Drupal 8, including the transition from PHPTemplate to the Twig templating language. Key points include:
- Drupal 8 uses Twig instead of PHPTemplate for improved security, syntax, and separation of logic from presentation.
- Twig templates, YAML configuration, and fewer hardcoded HTML classes/IDs provide better separation of concerns between backend and frontend.
- The theme layer has been updated, removing processing hooks in favor of template preprocessing and theme suggestions to alter output.
- Core includes starter themes like Bartik and modules to help with responsive design and development.
Improving your Drupal 8 development workflow DrupalCampLAJesus Manuel Olivas
Drupal 8 has changed a lot and the process of creating, building, testing and deploying a site is not the exception. During this session, you will understand the process of creating, building, testing and deploying Drupal 8 sites, and learn which tools you can use to improve your local development workflow and reduce project setup and onboarding time, implement automated analysis tools for code review, code coverage and finally how to build an artifact and deploy your project.
Performance on a budget (European Drupal Days 2015) Eugenio Minardi
This document contains the slides from a presentation about improving Drupal performance. It discusses measuring performance through metrics like page load time and resource usage. The method outlined involves defining key content, setting performance goals, identifying bottlenecks, brainstorming improvements, implementing one change, and verifying the results. Specific examples provided include reducing the number of requests, optimizing code through caching, optimizing the configuration by disabling unused modules, offloading database queries through caching, and prioritizing rendering of useful content to improve perceived performance. The key takeaway is that performance optimization should focus on goals and be considered throughout development without prematurely optimizing code.
Need start to finish help on getting Drupal 8 up and running locally? Ready to start contributing code?
This will help you get everything installed locally including Drush and gives basic information about Configuration for those new to it.
Best practices in Drupal make individual developers more productive which makes the entire team more productive. This was presented by Somedutta Ghosh in Drupal Camp Kolkata. #drupalcampkolkata
Best Practices for Development Deployment & Distributions: Capital Camp + Gov...Phase2
This document discusses best practices for development, deployment, and distributions of Drupal sites. It recommends defining different environments like development, staging, and production. It also recommends automating deployments using tools like Git, Drush, and continuous integration services. Distributions and installation profiles are discussed as a way to define dependencies and export configurations. Various development tools are also mentioned like virtual machines and Vagrant to help match local environments to production.
This document discusses theming in Drupal 8. It covers:
- What theming is and how themes override default module outputs
- Creating a theme and selecting a base theme like classy or stable
- Using Twig templates to define HTML and preprocess functions
- Declaring libraries for asset loading and managing dependencies
- Defining breakpoints and configuration options for the admin interface
- Registering new theme hooks and template files
This document provides an overview of PHP survival techniques for Drupal front end development. It discusses using square dancing as an analogy to explain PHP concepts. Some key points include:
- PHP and templating with PHPtemplate can be understood through analogies to deciding on a dance, choosing clothes, and then dancing.
- Important PHP concepts like variables, arrays, objects, and functions are explained using square dancing terminology like partners, calls and moves.
- Examples from the Drupal theme guide and books on front end Drupal development are used to demonstrate PHP snippets and template files.
- Conditionals, preprocessing functions, and the template.php file allow for customizing and extending themes. Understanding variables and how
This document discusses the drush_multi module, which provides Drush commands for managing Drupal multisite installations. It introduces drush_multi, describes commands like multi-create, multi-site, multi-exec, and multi-drupalupdate. It also covers potential pitfalls when using drush_multi and credits contributors to the project.
Drupal 6.x, Drupal 7.x -- Scratching the surfaceFlorian Latzel
This document summarizes the key differences between Drupal 6.x and Drupal 7.x. It discusses changes to modules, fields, APIs, database handling, testing and theming. The presentation provides a high-level overview of major updates and points to additional resources for more detailed information. It aims to help developers understand the major changes when updating from Drupal 6 to Drupal 7.
This document summarizes a Drupal beginner training session. It introduces Drupal and content management systems. It discusses the Drupal business model, users, and history. It covers installing Drupal, the admin area, content and module workflows. It also summarizes setting up themes, views, panels, users, and favorite modules. The document emphasizes practicing Drupal skills and provides several resource links.
This document discusses Drush and Drush Multisite, a module that extends Drush to work with Drupal Multisite installations. It introduces Drush and describes how it works independently of Drupal versions. It then explains Drupal Multisite setup and shows the directory structure. The rest of the document demonstrates commands for Drush Multisite like creating sites, checking status, executing commands across all sites, SQL dumps, and more. It also covers some gotchas and links to additional documentation.
Becoming a drupal master builder - Given at Drupal Camp London 2016
I've been building Drupal sites for a number of years and have a broad experience building Drupal sites with various levels of complexity. I often work with other agencies to build Drupal sites or to migrate existing sites and as a result I will often see some very common mistakes and errors that shouldn't be happening. Due to Drupal's popularity I also see Drupal sites in the wild and can clearly see the same mistakes going on there as well.
During this talk I'll show some basic site building tips as well as some more complex and technical strategies that will make your Drupal sites better and more maintainable. Rather than just show you what to do, I'll also be explaining why doing those things are important and how developers and their websites will benefit from them. Although I'll be mainly concentrating on Drupal 7, some of these techniques are also applicable to Drupal 8.
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016Paul McKibben
You have found yourself newly-responsible for administering and updating a Drupal site created by somebody else, and you’re struggling. Maybe you’re new to Drupal and you’ve been thrown into the fire. Or maybe you’re experienced with Drupal but the site creator used an unfamiliar approach. Or even worse, perhaps the site was not built according to best practices, and you need to dig deep to figure out how it works and keep it updated. Whatever your situation, this presentation has something for you.
This document provides an overview of a talk about PHP survival techniques for Drupal front end development. The talk will use square dancing as an analogy to explain PHP concepts and tricks. It will cover variables, arrays, objects, functions, conditionals, and fancy data structures. The presenter will discuss template files, the Devel module, and provide real-world homework assignments for participants. Overall, the talk aims to help attendees better understand the PHP that powers Drupal snippets and templates.
Yet Another Drupal Development/Deployment Presentationdigital006
This document discusses best practices for distributed Drupal development and deployment across multiple environments from development to staging to production. It addresses common problems like replicating codebases and migrating data between environments. The document recommends using Features and Git for managing code and database changes. It also suggests using Git hooks for automating tasks and a make file for deployment workflows. Specific techniques covered include using one deployment user, pulling from a production branch, backing up databases, and switching document roots.
Automating Drupal Development: Makefiles, features and beyondNuvole
Automating Drupal Development discusses automating various aspects of Drupal development using Drush Make and installation profiles. Drush Make allows developers to define a Drupal site's codebase and dependencies in a makefile that can then retrieve all necessary code and libraries with a single command. Installation profiles extend this concept to automate site configuration and installation tasks. The document demonstrates how to create reusable templates for profiles and makefiles that can generate new customized sites through commands like Drush Bake.
Plain english guide to drupal 8 criticalsAngela Byron
This document provides an overview of the remaining tasks to complete the release of Drupal 8. It discusses the 26 remaining critical issues blocking the beta to RC phase. It outlines goals around performance, security, and the upgrade path. Key tasks include finalizing caching, migrating from Drupal 7, and ensuring alternative databases like SQLite and PostgreSQL are fully supported. The document encourages community involvement in testing, profiling, and helping to resolve critical issues.
Building and Maintaining a Distribution in Drupal 7 with FeaturesNuvole
Drupal 7 allows to easily build and maintain distributions, i.e. repeatable website templates; you can benefit from this in all cases, whether you aim at large-scale deployments or even at maintaining a single website.
We will show how to package core and contributed modules in a distribution by using a Makefile and a profile and keeping them up-to-date during the whole development cycle.
Then you will learn how to use Code-Driven Development to store all settings in a sustainable way: use the Features module to easily describe configuration in code, a proper separation between Features to make your code reusable and extendible, a well-thought design of Features to create easier development patterns, CTools and Exportables to put your configuration in code even when a module does not support it natively.
Last, we will see how the distributions update mechanism allows you to create a new version of your distribution for easy and painless configuration updates of a live site.
This document discusses strategies for managing a Drupal project across multiple environments like development, testing, and production. It recommends using source control to manage code changes, taking database snapshots to migrate data between environments, and programmatically applying administrative changes through custom modules to keep all environments in sync. This systematic approach helps ensure seamless code integration, efficient database changes, and minimal downtime when updating production.
This document provides an overview of creating a custom module in Drupal. It discusses starting with creating the necessary folder and files for a module called "dc_stats", then provides information on Drupal coding standards and important hooks like hook_menu() and hook_help(). It walks through registering a path with hook_menu() and creating a callback function to output some basic node and user statistics. The document encourages exploring additional Drupal resources and links for continuing to build out custom modules.
Drupal Camp Porto - Developing with Drupal: First StepsLuís Carneiro
The goal of this presentation is to give Drupal new comers some insights about key aspects of developing with Drupal.
The idea is to give the audience some guidelines about good practices of Drupal development along with some tips and, by a simple example application, present the most common and important structures/characteristics of the Drupal API.
Need start to finish help on getting Drupal 8 up and running locally? Ready to start contributing code?
This will help you get everything installed locally including Drush and gives basic information about Configuration for those new to it.
Best practices in Drupal make individual developers more productive which makes the entire team more productive. This was presented by Somedutta Ghosh in Drupal Camp Kolkata. #drupalcampkolkata
Best Practices for Development Deployment & Distributions: Capital Camp + Gov...Phase2
This document discusses best practices for development, deployment, and distributions of Drupal sites. It recommends defining different environments like development, staging, and production. It also recommends automating deployments using tools like Git, Drush, and continuous integration services. Distributions and installation profiles are discussed as a way to define dependencies and export configurations. Various development tools are also mentioned like virtual machines and Vagrant to help match local environments to production.
This document discusses theming in Drupal 8. It covers:
- What theming is and how themes override default module outputs
- Creating a theme and selecting a base theme like classy or stable
- Using Twig templates to define HTML and preprocess functions
- Declaring libraries for asset loading and managing dependencies
- Defining breakpoints and configuration options for the admin interface
- Registering new theme hooks and template files
This document provides an overview of PHP survival techniques for Drupal front end development. It discusses using square dancing as an analogy to explain PHP concepts. Some key points include:
- PHP and templating with PHPtemplate can be understood through analogies to deciding on a dance, choosing clothes, and then dancing.
- Important PHP concepts like variables, arrays, objects, and functions are explained using square dancing terminology like partners, calls and moves.
- Examples from the Drupal theme guide and books on front end Drupal development are used to demonstrate PHP snippets and template files.
- Conditionals, preprocessing functions, and the template.php file allow for customizing and extending themes. Understanding variables and how
This document discusses the drush_multi module, which provides Drush commands for managing Drupal multisite installations. It introduces drush_multi, describes commands like multi-create, multi-site, multi-exec, and multi-drupalupdate. It also covers potential pitfalls when using drush_multi and credits contributors to the project.
Drupal 6.x, Drupal 7.x -- Scratching the surfaceFlorian Latzel
This document summarizes the key differences between Drupal 6.x and Drupal 7.x. It discusses changes to modules, fields, APIs, database handling, testing and theming. The presentation provides a high-level overview of major updates and points to additional resources for more detailed information. It aims to help developers understand the major changes when updating from Drupal 6 to Drupal 7.
This document summarizes a Drupal beginner training session. It introduces Drupal and content management systems. It discusses the Drupal business model, users, and history. It covers installing Drupal, the admin area, content and module workflows. It also summarizes setting up themes, views, panels, users, and favorite modules. The document emphasizes practicing Drupal skills and provides several resource links.
This document discusses Drush and Drush Multisite, a module that extends Drush to work with Drupal Multisite installations. It introduces Drush and describes how it works independently of Drupal versions. It then explains Drupal Multisite setup and shows the directory structure. The rest of the document demonstrates commands for Drush Multisite like creating sites, checking status, executing commands across all sites, SQL dumps, and more. It also covers some gotchas and links to additional documentation.
Becoming a drupal master builder - Given at Drupal Camp London 2016
I've been building Drupal sites for a number of years and have a broad experience building Drupal sites with various levels of complexity. I often work with other agencies to build Drupal sites or to migrate existing sites and as a result I will often see some very common mistakes and errors that shouldn't be happening. Due to Drupal's popularity I also see Drupal sites in the wild and can clearly see the same mistakes going on there as well.
During this talk I'll show some basic site building tips as well as some more complex and technical strategies that will make your Drupal sites better and more maintainable. Rather than just show you what to do, I'll also be explaining why doing those things are important and how developers and their websites will benefit from them. Although I'll be mainly concentrating on Drupal 7, some of these techniques are also applicable to Drupal 8.
Help! I inherited a Drupal Site! - DrupalCamp Atlanta 2016Paul McKibben
You have found yourself newly-responsible for administering and updating a Drupal site created by somebody else, and you’re struggling. Maybe you’re new to Drupal and you’ve been thrown into the fire. Or maybe you’re experienced with Drupal but the site creator used an unfamiliar approach. Or even worse, perhaps the site was not built according to best practices, and you need to dig deep to figure out how it works and keep it updated. Whatever your situation, this presentation has something for you.
This document provides an overview of a talk about PHP survival techniques for Drupal front end development. The talk will use square dancing as an analogy to explain PHP concepts and tricks. It will cover variables, arrays, objects, functions, conditionals, and fancy data structures. The presenter will discuss template files, the Devel module, and provide real-world homework assignments for participants. Overall, the talk aims to help attendees better understand the PHP that powers Drupal snippets and templates.
Yet Another Drupal Development/Deployment Presentationdigital006
This document discusses best practices for distributed Drupal development and deployment across multiple environments from development to staging to production. It addresses common problems like replicating codebases and migrating data between environments. The document recommends using Features and Git for managing code and database changes. It also suggests using Git hooks for automating tasks and a make file for deployment workflows. Specific techniques covered include using one deployment user, pulling from a production branch, backing up databases, and switching document roots.
Automating Drupal Development: Makefiles, features and beyondNuvole
Automating Drupal Development discusses automating various aspects of Drupal development using Drush Make and installation profiles. Drush Make allows developers to define a Drupal site's codebase and dependencies in a makefile that can then retrieve all necessary code and libraries with a single command. Installation profiles extend this concept to automate site configuration and installation tasks. The document demonstrates how to create reusable templates for profiles and makefiles that can generate new customized sites through commands like Drush Bake.
Plain english guide to drupal 8 criticalsAngela Byron
This document provides an overview of the remaining tasks to complete the release of Drupal 8. It discusses the 26 remaining critical issues blocking the beta to RC phase. It outlines goals around performance, security, and the upgrade path. Key tasks include finalizing caching, migrating from Drupal 7, and ensuring alternative databases like SQLite and PostgreSQL are fully supported. The document encourages community involvement in testing, profiling, and helping to resolve critical issues.
Building and Maintaining a Distribution in Drupal 7 with FeaturesNuvole
Drupal 7 allows to easily build and maintain distributions, i.e. repeatable website templates; you can benefit from this in all cases, whether you aim at large-scale deployments or even at maintaining a single website.
We will show how to package core and contributed modules in a distribution by using a Makefile and a profile and keeping them up-to-date during the whole development cycle.
Then you will learn how to use Code-Driven Development to store all settings in a sustainable way: use the Features module to easily describe configuration in code, a proper separation between Features to make your code reusable and extendible, a well-thought design of Features to create easier development patterns, CTools and Exportables to put your configuration in code even when a module does not support it natively.
Last, we will see how the distributions update mechanism allows you to create a new version of your distribution for easy and painless configuration updates of a live site.
This document discusses strategies for managing a Drupal project across multiple environments like development, testing, and production. It recommends using source control to manage code changes, taking database snapshots to migrate data between environments, and programmatically applying administrative changes through custom modules to keep all environments in sync. This systematic approach helps ensure seamless code integration, efficient database changes, and minimal downtime when updating production.
This document provides an overview of creating a custom module in Drupal. It discusses starting with creating the necessary folder and files for a module called "dc_stats", then provides information on Drupal coding standards and important hooks like hook_menu() and hook_help(). It walks through registering a path with hook_menu() and creating a callback function to output some basic node and user statistics. The document encourages exploring additional Drupal resources and links for continuing to build out custom modules.
Drupal Camp Porto - Developing with Drupal: First StepsLuís Carneiro
The goal of this presentation is to give Drupal new comers some insights about key aspects of developing with Drupal.
The idea is to give the audience some guidelines about good practices of Drupal development along with some tips and, by a simple example application, present the most common and important structures/characteristics of the Drupal API.
Review of DrupalCon LA 2015, held in Los Angeles on May 11-15th. Includes summits, sessions, and exhibits. Includes pictures of events and some technical information.
Making The Drupal Pill Easier To SwallowPhilip Norton
Drupal has a notorious learning curve, which can cause most developers major mental health issues. I'll talk through some hints and tips about getting to grips with Drupal, finding out what is going on, and where to go when you get inevitably stuck.
Drupal module development training delhiunitedwebsoft
This document provides an 11-point syllabus for an advanced Drupal module development training course. The syllabus covers: 1) Creating basic modules, 2) Using Drupal hooks, 3) Understanding entities and content types, 4) The Drupal API including menus, forms, file uploads, and database queries, 5) Debugging techniques, and 6) Building a custom ads management module from scratch. The training aims to teach real-world module development skills to intermediate Drupal developers.
13th Sep, Drupal 7 advanced training by TCS DrupalMumbai
This document provides an overview and introduction to Drupal module development. It discusses Drupal hooks like hook_menu(), hook_permission(), hook_form(), and the Entity API. It also covers creating modules, forms, variables, blocks, and interacting with the database. The event is for a Drupal Global Training Day in Mumbai, India hosted by Drupal Mumbai and Tata Consultancy Services.
This document provides an introduction to creating a first Drupal 8 module. It outlines some key prerequisites for module development like PHP and object-oriented programming skills. The main points covered include why developers create modules, common hooks used in modules, and how to implement a basic hook in a module. It then walks through creating a sample "Role Notices" module to demonstrate setting up module files and using plugins and annotations in Drupal 8.
Any developer who has worked in team will have to face the activity of setting up their local work environment to start contributing to the project. Whether you are working remotely or onsite, this kind of activity is often time consuming due to the personal configurations of your workstation. This "time wasting" is not predictable and even justifiable to the customer, that is the issue. I think the only way to fix that it's to find a reproducible process which takes the same time to be completed, indipendently by the operating system and configurations. This is why, starting from the last project I've been involved in, I started to lay the groundwork to build it using Docker, Config Split, Drupal Console and Drush.
My session is aimed at programmers and project managers looking for a way to bring new developers on board and make them operational in a given time. It will be a good starting point to discuss about that.
Getting Started with Drupal - HandoutsRachel Vacek
This document provides an overview of popular contributed and core modules for the content management system Drupal. It is organized into sections on administration, content management, performance, navigation, publishing, user management, SEO/analytics, events/calendars, authentication, and library-specific modules. Key modules highlighted include Views, CCK, Context, Panels, Webform, Taxonomy Menu, Pathauto, Organic Groups, Google Analytics, Date, Calendar, LDAP, and library-focused modules like LT4L, Question/Answer for email reference, and Fedora REST API. Resources for learning more about Drupal like books, online tutorials, communities and publications are also listed.
This document provides an overview of Drupal, an open-source content management system (CMS). It describes what Drupal is, how to get started with it, and some key concepts. Drupal allows users to easily publish and organize various types of content. It treats most content as "nodes" that are stored and organized separately from the site menu/navigation system. The document also outlines Drupal's module-based architecture and recommends several popular modules, such as CCK for custom fields and Views for displaying content.
This document provides an overview of a Drupal training covering various topics from September 12-20, 2014. The training will introduce participants to core Drupal concepts and components including nodes, content types, taxonomies, views, panels, modules, themes, and the database layer. It will cover setting up a development environment, installing Drupal, configuring the system, and extending Drupal through custom modules and themes. Participants will learn how Drupal handles user requests and its event-driven hook system. The document also provides contact information for the trainer.
The document describes a book on performance strategies for Drupal webmasters. It provides an overview of the book's contents and chapters, which cover topics like upgrading Drupal sites, using modules like Devel and Boost to monitor and improve performance, configuring caching and databases, and advanced caching techniques. The goal is to help Drupal users and developers keep their sites running smoothly and maintain high performance.
This document discusses Drush, a command line utility for administering Drupal sites. It begins with an introduction to the speaker and their experience with Drupal. The rest of the document covers what Drush is, how to install and use it, and examples of common Drush commands like downloading modules, installing Drupal, managing user passwords and variables, clearing caches, and more.
This document provides an overview of Drupal module development. It discusses Drupal architecture and the different types of modules, including core, contributed, and custom modules. It also covers the key components of a module like the .info, .module, and .inc files. The document introduces hooks and explains how they allow modules to extend Drupal's functionality by implementing callback functions. It provides examples of major hooks like hook_permission, hook_menu, and hook_nodeapi. Finally, it lists some common Drupal API functions that can be used when building custom modules.
LITA Preconference: Getting Started with Drupal (handout)Rachel Vacek
This document provides an overview of popular modules for the content management system Drupal, focusing on modules useful for libraries. It discusses modules for administration, content management, performance, navigation, user management, and library-specific functions. Popular modules are highlighted for tasks like custom fields, views, panels, web forms, images, editors, spam prevention, taxonomy, scheduling, groups, analytics, events, authentication, searching catalogs and databases. Resources for learning Drupal like books, tutorials, communities and publications are also listed.
Drupal is an open-source content management system (CMS) that allows users to build and manage websites. It provides features like blogs, galleries, and the ability to restrict content by user roles. Drupal is highly customizable through modules and themes and supports moving sites between development, test, and production environments. While it uses some technical terms like "nodes" and "taxonomy," Drupal is accessible to non-developers and can be installed on common web hosting with Apache, MySQL, and PHP. Resources for learning Drupal include books, training videos, online communities, and conferences.
Doing Drupal security right from Drupalcon LondonGábor Hojtsy
This document summarizes a presentation on doing Drupal security right. It discusses common security issues like SQL injection, cross-site scripting, authentication and session security. It provides the Drupal approach to addressing each issue through secure APIs and modules. It also discusses open source security in general and notes that Drupal security is supported by a volunteer team working to ensure the security of Drupal core and contributed projects.
Gábor Hojtsy gave a presentation on doing Drupal security right. He discussed common web application security risks like SQL injection, cross-site scripting, and insecure direct object references. He explained how Drupal addresses these issues through features like input filtering, form tokens, and access control. Hojtsy emphasized that while Drupal provides secure APIs, developers must use them properly. He also discussed Drupal's open security team that works to find and fix vulnerabilities in Drupal core and contributed modules.
Agile is one of the most misunderstood term in our industry today. Mostly it is considered synonymous with a lot of work, incorporating too many changes according to customer requirements and not following a plan. The focus of this workshop was to debunk these myths and get the audience to understand what true Agile is. Some activities were involved during the workshop with the intention to get the audience interactively participate and learn about Agile first-hand. Another key focus area of the workshop was to make the audience understand Agile practices and not entirely focus on one of the frameworks.
The session was about how to create the Restful Web Services with Laravel, a PHP framework with the minimal code. Topics discussed are:
-Laravel Philosophy
-Requirement
-Installation
-Basic Routing
-Requests & Input
-Request Lifecycle
-Creating A Migration
-Controller
-Controller Filters
-RESTful Controllers
-Database
-Eloquent ORM
DMAIC-Six sigma process Improvement ApproachConfiz
The document describes a Six Sigma DMAIC process improvement project conducted by a product development company on their Simobo product. It includes details of each DMAIC phase: Define, Measure, Analyze, Improve, and Control. In the Define phase, a project charter was created to reduce support issues and defects. The Measure phase involved data collection and determining the baseline defect rate. Analysis identified the root causes of defects. Improve developed solutions which were tested. Control created controls to maintain the solutions and reduced the defect rate to achieve a sigma level of 4.08.
What is UFT? HP's unified functional testing.Confiz
Unified Functional Testing (UFT) is HP's main automated functional testing tool that allows users to integrate QuickTest Pro with Service Test. UFT enables automated functional testing of applications. It provides various panes like the Solution Explorer, Toolbox, Canvas, and Output panes to design and run tests. Users can create simple tests with activities like Replace String and Concatenate String, connect the test steps, and map data from multiple sources to test functionality.
This document provides an overview of software testing concepts and definitions. It discusses key topics such as software quality, testing methods like static and dynamic testing, testing levels from unit to acceptance testing, and testing types including functional, non-functional, regression and security testing. The document is intended as an introduction to software testing principles and terminology.
This document provides an overview of software testing concepts and definitions. It discusses the primary purpose of testing as detecting software failures to find and fix defects. It also defines key testing terms like test scenarios versus test cases, the software testing cycle, testing methods and levels, and quality assurance versus testing. Sample login feature test scenarios and test cases are provided to illustrate these concepts.
The presentation discusses software design. It discusses the characteristics of a good and bad design. Then it talks about how to achieve a good design. Then finally we discuss the SOLID Principles of Object Oriented Design. These are 5 principles compiled by Rober Cecil Martin aka Uncle Bob. The benefit of these principles is to achieve a good OO design which is high in cohesion and low in coupling thus easily adaptable to change
This document provides an overview of Entity Framework Code First, including its basic workflow, database initialization strategies, configuring domain classes using data annotations and fluent API, modeling relationships like one-to-one, one-to-many and many-to-many, and performing migrations using automated and code-based approaches. Code First allows writing classes first and generating the database, starting from EF 4.1, and supports domain-driven design principles.
The document discusses security testing of software and applications. It defines security testing as testing the ability of a system to prevent unauthorized access to resources and data. It outlines common security risks like SQL injection, cross-site scripting, and insecure direct object references. It also describes different types of security testing like black box and white box testing and provides examples of security vulnerabilities like XSS and tools used for security testing.
The document provides an overview of SEO best practices presented in a 101 seminar. It discusses what SEO is, why it's important, and key tactics like optimizing titles, URLs, images and using sitemaps. Content is emphasized as the most important factor. Proper keyword research and inclusion in content is also covered. The seminar recommends evaluating sites and implementing techniques like improving backlinks to help with search engine optimization.
The document provides advice for creative professionals in 31 short sections. It discusses the importance of developing your own vision rather than solely listening to experts, taking client suggestions but ultimately driving your own creative direction. It also emphasizes the value of challenging yourself, developing aesthetic sensibilities, learning from mistakes, focusing on value over price, constantly creating new work, setting goals, having a positive self-image, and seeking criticism over praise.
A UX specialist provides advice on things every creative person should know based on their experience, with concise tips in short paragraphs. Some of the key tips include focusing on delivering value over price, developing your aesthetic sensibilities, aiming to be different rather than just better, and pushing yourself with big creative challenges. Clients cannot define the solution, so creative works should add their own vision.
The document discusses various techniques for archiving objects in Objective-C, including:
1. Archiving with XML property lists by writing objects like NSString, NSDictionary to a file.
2. Archiving with NSKeyedArchiver by adding encodeWithCoder: and initWithCoder: methods to custom classes to archive additional object types.
3. Encoding and decoding basic data types like integers and floats using encoder/decoder methods that correspond to the data type when archiving with NSKeyedArchiver.
This document discusses advanced text rendering techniques in iOS using Core Text. It covers background information on text rendering approaches in iOS like UIKit, Core Graphics, and Core Text. It then provides step-by-step instructions on how to use Core Text to render attributed strings onto paths, including creating an attributed string, framesetter, frame, and path and drawing the frame. Examples are given for writing text on shapes and playing with attributes on different parts of a string.
The document discusses various threading mechanisms in Android: the UI thread, loopers and handlers, async tasks, intent services, executors, executor services, and callables/futures. It explains that the UI thread manages interactions with UI widgets and should not perform long operations. Other mechanisms like async tasks, intent services, executors, and callables allow offloading work to background threads to avoid blocking the UI.
This document discusses supporting multiple screens on Android. It covers topics like target audiences, Android device dimensions and densities, screen sizes, solutions like alternative resources and nine-patch images, and tools to help with development. The presentation provides information on density independence, styles, dimensions and layouts to make apps adaptable to different screens.
The document is a presentation by Tanveer Alam on Photoshop manners. It covers various topics including files, layers, images, effects, practices, and quality assurance. The presentation provides guidance on best practices for organizing Photoshop files, using layers, handling images, applying effects, following proper techniques, and performing quality control.
Monkey Talk is an open source automated testing tool that allows recording, customizing, and managing test suites for iOS, Android, HTML5 and Adobe Flex applications. It includes a robust IDE, test agents for mobile platforms, and capabilities for test data parameterization, reusable scripts, and JavaScript extension. To use Monkey Talk, developers install agents into their mobile apps, connect the IDE to emulators or devices, and create test cases within the IDE to remotely automate apps.
The document discusses an overview of Microsoft development platforms presented by Tahir Rauf, a software architect. It covers tools like .NET, SQL Server, Azure, and Windows Phone. It also provides tips on using Visual Studio code samples and the Microsoft Research Community. Common Drupal hooks are explained like hook_help, hook_perm, hook_init, hook_theme, hook_block, and hook_menu.
This document summarizes a presentation on branching and merging in software development. It covers topics like what branching is, why and when to use branching, different branching plans like basic, standard and advanced, and examples of branching for features, hotfixes and service packs.
3. Drupal6 Module Development Guide
Topics covered in the presentation
• What is Module
• Collaboration Over Competition
• Telling Drupal About Your
Module
• Hooks
• Block Content
• Other Files
Furqan Razzaq | Drupal Mentor
4. Drupal6 Module Development Guide
What is a Module
A module simply is a collection of procedures that are
logically combined in a group of files.
These procedures can he hooks, menu callbacks,
forms, themes or your custom, or even
jquery/javascript snippets.
Furqan Razzaq | Drupal Mentor
5. Drupal6 Module Development Guide
Kinds of Module
There are three kinds of Drupal Modules
1. Core
2. Contributes
3. Custom
Furqan Razzaq | Drupal Mentor
6. Drupal6 Module Development Guide
Core Modules
• Core modules are the ones that are shipped with Drupal install and
are approved by the core developers and the community.
• The location of these modules is under [installation directory/modules]
• There are also a bunch of include files that these modules use.
Include files are located under [installation directory/includes]
Furqan Razzaq | Drupal Mentor
7. Drupal6 Module Development Guide
Custom Module Development
• Before we start, following are some helpful links to guide you through
the development process:
• http://drupal.org/node/326 [working with Drupal API]
• http://api.drupal.org/api/drupal [Drupal API reference]
• http://drupal.org/node/7765 [Best Practices on creating and maintaining
projects]
• http://drupal.org/coding-standards [coding standards]
• http://drupal.org/writing-secure-code [writing secure code]
We know its a lot to process in one go, but you will get to it eventually.
)
Furqan Razzaq | Drupal Mentor
8. Drupal6 Module Development Guide
Collaboration Over Competition
• Module Duplication is a growing concern with in Drupal community,
which values joining forces on improving one awesome project rather
than building several sub-standard ones that overwhelm end users
with choices.
• So what to do? Search existing modules before you start embarking
on your own quest.
Furqan Razzaq | Drupal Mentor
9. Drupal6 Module Development Guide
Let’s Jump Over Module Development
• So, what do you need:
• Basic PHP knowledge (of course ) including syntax and concept of
PHP Objects
• Basic understanding of database tables, fields, records and SQL
statements
• A working Drupal installation
• Webserver access (in our case, its any set of Apache/PHP/MySql)
Furqan Razzaq | Drupal Mentor
10. Drupal6 Module Development Guide
Let’s Develop a Single Module
• Module Name
• Telling Drupal about your module
• Declaring block content
Furqan Razzaq | Drupal Mentor
11. Drupal6 Module Development Guide
Getting Started
• Create Following files
• .info
• .module
Furqan Razzaq | Drupal Mentor
12. Drupal6 Module Development Guide
Telling Drupal About Your Module
1. How to let Drupal know the module exists?
2. Drupal hook described: hook_help
Furqan Razzaq | Drupal Mentor
13. Drupal6 Module Development Guide
How to Let Drupal Know That Module Exists
• Tell Drupal about your module in modulename.info file. File content
should be like…
• Name (Required) = Color
• Description (Required) = Allows the user to change the color scheme
of certain themes.
• package = Core - optional
• Core (Required) = 6.x
• version = "6.20"
• project = "drupal"
• datestamp = "1292447788"
Furqan Razzaq | Drupal Mentor
14. Drupal6 Module Development Guide
Telling Drupal About Your Module
1. How to let Drupal know the module exists?
2. Drupal hook described: hook_help
Furqan Razzaq | Drupal Mentor
16. Drupal6 Module Development Guide
Apparently Not
• Drupal's module system is based on the concept of "hooks".
• A hook is a PHP function.
• Hooks allow modules to interact with the Drupal core.
• Each hook has a defined set of parameters and a specified result
type.
• A module need simply implement a hook.
Furqan Razzaq | Drupal Mentor
17. Drupal6 Module Development Guide
How to Declare Hooks?
• modulename_hookname()
• color_help()
Furqan Razzaq | Drupal Mentor
18. Drupal6 Module Development Guide
Where/When Hooks are Used?
• Drupal determines which modules implement a hook and calls that
hook in all enabled modules that implement it.
Furqan Razzaq | Drupal Mentor
20. Drupal6 Module Development Guide
Help Hooks – a Module File Entry
/**
* Implementation of hook_help
*/
function modulename_help($path, $arg) {
switch ($path) {
case 'admin/help#color':
$output = '<p>'. t('The color module allows a site administrator to
quickly and easily change the color scheme of certain
themes.’ ).'</p>';
return $output;
}
}
Furqan Razzaq | Drupal Mentor
21. Drupal6 Module Development Guide
Specify the Available Permissions
• Tell Drupal who can use your module.
/**
* Implementation of hook_perm
*/
function modulename_perm() {
return array('access site-wide ', 'administer colors');
}
Furqan Razzaq | Drupal Mentor
22. Drupal6 Module Development Guide
Hook_init ()
• This hook is run at the beginning of the page request.
1. Add CSS or JS that should be present on every page.
2. Set up global parameters which are needed later in the request
Furqan Razzaq | Drupal Mentor
27. Drupal6 Module Development Guide
Hook Menu
• Define menu items and page callbacks.
• This hook enables modules to register paths in order to define how URL
requests are handled.
• This hook is rarely called (for example, when modules are enabled), and
its results are cached in the database.
Furqan Razzaq | Drupal Mentor