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.
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
This introduction to Drupal 6 was presented to the Chicago Web Professionals meetup as the third in a series of CMS introductions (following WordPress and Joomla)
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.
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
This introduction to Drupal 6 was presented to the Chicago Web Professionals meetup as the third in a series of CMS introductions (following WordPress and Joomla)
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.
Pantheon's Greg Anderson presents on the topic of using Composer with Drupal and Drush. Composer is a dependency manager that has become the de-facto standard for managing the components used in any sort of PHP library or application. Drupal is no exception to this, and in this presentation, Greg showed that the future is already here: it is completely possible to use native Composer functions to manage the modules and themes used in a Drupal site. In this capacity, Composer can take over the functions usually performed with drush make, drush pm-download, and drush pm-update.
How a Content Delivery Network Can Help Speed Up Your WebsiteMediacurrent
In this day and age, time is money—both for website developers and site visitors. Page load times can be the difference that impacts search engine rankings, ad revenue, and overall sales. Content Delivery Networks (CDNs) will cut the load time of assets between 20-50%, especially for users outside of the United States which amounts to an improved customer experience.
By speeding up CDNs, with geographically distributed servers, you can help deliver the fastest possible download for all users. In the past, CDNs were cost prohibitive and mostly reserved for sizable organizations who could afford to pay thousands of dollars per month. Recently, there has been an overall shift in CDNs that even the lowest traffic web sites can afford.
Evolution of Drupal and the Drupal communityAngela Byron
The Drupal project has experienced phenomenal growth over its more than 14 years, growing from a small hobby project to over 1 million known installations, over 1 million Drupal.org users, and more than doubling the active contributors and commits in Drupal core between Drupal 7 and Drupal 8, as well as thousands of people who depend on Drupal in some way for a living.
This talk will "de-mystify" some recent developments in the community, from the technical direction of Drupal 8, to various project governance changes, to the increasing role of the Drupal Association on Drupal.org. We'll look at both the historical context that brought those changes about, and talk about how they'll help us scale to the next 1 million sites and users.
Video: http://www.youtube.com/watch?v=8ocFBRpoGTs
Working as a Drupal theming/development consultant on many "rescue mission" projects I seen many different mistakes web developers do when facing with Drupal for the first time. This presentations points out those mistakes and gives solutions for them.
Walks through the top 8 improvements coming to Drupal 8, including videos and code samples to demonstrate "before vs. after."
Given to the @DrupalNS meet up in Bedford, Nova Scotia on July 28, 2014.
Undine: Turnkey Drupal Development EnvironmentsDavid Watson
Undine is a cross-platform, fully-featured development VM (virtual machine) for Drupalistas of all experience levels. Sponsored by Stevens Institute of Technology, it is a turnkey solution to many of the common pain points encountered in developing for Drupal.
Download Undine: http://drupal.org/project/undine
Everything You Need to Know About the Top Changes in Drupal 8Acquia
<p>Drupal 8 is on the way. And we know you want to know -- what does this mean for me?!</p>
<p>Don't fear, Angie 'webchick' Byron is here! This one hour webinar will provide you with detailed overviews on the major changes in Drupal 8, as well as several short video demos that will give you a glimpse into a few of the newest features and capabilities. Angie will explain what D8 means for:</p>
<ul>
<li>Site Builders: See Views in Core, more (and better) blocks, improved entity and field features...the list goes on!</li>
<li>Front-end Developers: We're talking HTML5, libraries, accessibility enhancements, new themes and UI elements, and faster performance, to name a few.</li>
<li>Back-end Developers: A new configuration management system, a completely rehauled Entity API, improved caching, and new built-in web services features.</li></ul>
[drupalday2017] - Speed-up your Drupal instance!DrupalDay
Perchè la tua istanza Drupal non performa e cosa puoi fare per invertire la rotta. D'altronde è una questione complessa: i moduli, la qualità del codice, l'uso delle cache, ma anche la versione di PHP, il proxy-cacher, il tuo hosting e, in ultimo, le cavallette...
di Daniele Piaggesi
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.
Pantheon's Greg Anderson presents on the topic of using Composer with Drupal and Drush. Composer is a dependency manager that has become the de-facto standard for managing the components used in any sort of PHP library or application. Drupal is no exception to this, and in this presentation, Greg showed that the future is already here: it is completely possible to use native Composer functions to manage the modules and themes used in a Drupal site. In this capacity, Composer can take over the functions usually performed with drush make, drush pm-download, and drush pm-update.
How a Content Delivery Network Can Help Speed Up Your WebsiteMediacurrent
In this day and age, time is money—both for website developers and site visitors. Page load times can be the difference that impacts search engine rankings, ad revenue, and overall sales. Content Delivery Networks (CDNs) will cut the load time of assets between 20-50%, especially for users outside of the United States which amounts to an improved customer experience.
By speeding up CDNs, with geographically distributed servers, you can help deliver the fastest possible download for all users. In the past, CDNs were cost prohibitive and mostly reserved for sizable organizations who could afford to pay thousands of dollars per month. Recently, there has been an overall shift in CDNs that even the lowest traffic web sites can afford.
Evolution of Drupal and the Drupal communityAngela Byron
The Drupal project has experienced phenomenal growth over its more than 14 years, growing from a small hobby project to over 1 million known installations, over 1 million Drupal.org users, and more than doubling the active contributors and commits in Drupal core between Drupal 7 and Drupal 8, as well as thousands of people who depend on Drupal in some way for a living.
This talk will "de-mystify" some recent developments in the community, from the technical direction of Drupal 8, to various project governance changes, to the increasing role of the Drupal Association on Drupal.org. We'll look at both the historical context that brought those changes about, and talk about how they'll help us scale to the next 1 million sites and users.
Video: http://www.youtube.com/watch?v=8ocFBRpoGTs
Working as a Drupal theming/development consultant on many "rescue mission" projects I seen many different mistakes web developers do when facing with Drupal for the first time. This presentations points out those mistakes and gives solutions for them.
Walks through the top 8 improvements coming to Drupal 8, including videos and code samples to demonstrate "before vs. after."
Given to the @DrupalNS meet up in Bedford, Nova Scotia on July 28, 2014.
Undine: Turnkey Drupal Development EnvironmentsDavid Watson
Undine is a cross-platform, fully-featured development VM (virtual machine) for Drupalistas of all experience levels. Sponsored by Stevens Institute of Technology, it is a turnkey solution to many of the common pain points encountered in developing for Drupal.
Download Undine: http://drupal.org/project/undine
Everything You Need to Know About the Top Changes in Drupal 8Acquia
<p>Drupal 8 is on the way. And we know you want to know -- what does this mean for me?!</p>
<p>Don't fear, Angie 'webchick' Byron is here! This one hour webinar will provide you with detailed overviews on the major changes in Drupal 8, as well as several short video demos that will give you a glimpse into a few of the newest features and capabilities. Angie will explain what D8 means for:</p>
<ul>
<li>Site Builders: See Views in Core, more (and better) blocks, improved entity and field features...the list goes on!</li>
<li>Front-end Developers: We're talking HTML5, libraries, accessibility enhancements, new themes and UI elements, and faster performance, to name a few.</li>
<li>Back-end Developers: A new configuration management system, a completely rehauled Entity API, improved caching, and new built-in web services features.</li></ul>
[drupalday2017] - Speed-up your Drupal instance!DrupalDay
Perchè la tua istanza Drupal non performa e cosa puoi fare per invertire la rotta. D'altronde è una questione complessa: i moduli, la qualità del codice, l'uso delle cache, ma anche la versione di PHP, il proxy-cacher, il tuo hosting e, in ultimo, le cavallette...
di Daniele Piaggesi
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.
Hong kong drupal user group nov 8th - drupal 7.32 security vulnerabilityAnn Lam
For the monthly Meetup Event on Nov. 8, we discussed the topic about the security issue of Drupal 7 and shared Drupal 8 preview (https://www.youtube.com/watch?v=ktCgVopf7D0). Enjoined the time with you all. Thanks for coming!!! Look forward to see you next time!
Drupal 8 improvements for developer productivity php symfony and moreAcquia
This was a webinar hosted by Acquia. Ron Northcutt, a solutions architect at Acquia discussed improvements in Drupal 8 that will surely boost productivity for Drupal developers.
Choosing Drupal as your Content Management FrameworkMediacurrent
In Kendall Totten's presentation, "Choosing Drupal as a Content Management Framework for Your Next Project" she covered questions such as:
-What is Drupal and what makes it great?
-What is involved with building & theming a Drupal site?
-How to get a Drupal site off the ground quickly
-The difference between a base theme and a regular theme
-Modules that make theming easier
# Internet Security: Safeguarding Your Digital World
In the contemporary digital age, the internet is a cornerstone of our daily lives. It connects us to vast amounts of information, provides platforms for communication, enables commerce, and offers endless entertainment. However, with these conveniences come significant security challenges. Internet security is essential to protect our digital identities, sensitive data, and overall online experience. This comprehensive guide explores the multifaceted world of internet security, providing insights into its importance, common threats, and effective strategies to safeguard your digital world.
## Understanding Internet Security
Internet security encompasses the measures and protocols used to protect information, devices, and networks from unauthorized access, attacks, and damage. It involves a wide range of practices designed to safeguard data confidentiality, integrity, and availability. Effective internet security is crucial for individuals, businesses, and governments alike, as cyber threats continue to evolve in complexity and scale.
### Key Components of Internet Security
1. **Confidentiality**: Ensuring that information is accessible only to those authorized to access it.
2. **Integrity**: Protecting information from being altered or tampered with by unauthorized parties.
3. **Availability**: Ensuring that authorized users have reliable access to information and resources when needed.
## Common Internet Security Threats
Cyber threats are numerous and constantly evolving. Understanding these threats is the first step in protecting against them. Some of the most common internet security threats include:
### Malware
Malware, or malicious software, is designed to harm, exploit, or otherwise compromise a device, network, or service. Common types of malware include:
- **Viruses**: Programs that attach themselves to legitimate software and replicate, spreading to other programs and files.
- **Worms**: Standalone malware that replicates itself to spread to other computers.
- **Trojan Horses**: Malicious software disguised as legitimate software.
- **Ransomware**: Malware that encrypts a user's files and demands a ransom for the decryption key.
- **Spyware**: Software that secretly monitors and collects user information.
### Phishing
Phishing is a social engineering attack that aims to steal sensitive information such as usernames, passwords, and credit card details. Attackers often masquerade as trusted entities in email or other communication channels, tricking victims into providing their information.
### Man-in-the-Middle (MitM) Attacks
MitM attacks occur when an attacker intercepts and potentially alters communication between two parties without their knowledge. This can lead to the unauthorized acquisition of sensitive information.
### Denial-of-Service (DoS) and Distributed Denial-of-Service (DDoS) Attacks
Multi-cluster Kubernetes Networking- Patterns, Projects and GuidelinesSanjeev Rampal
Talk presented at Kubernetes Community Day, New York, May 2024.
Technical summary of Multi-Cluster Kubernetes Networking architectures with focus on 4 key topics.
1) Key patterns for Multi-cluster architectures
2) Architectural comparison of several OSS/ CNCF projects to address these patterns
3) Evolution trends for the APIs of these projects
4) Some design recommendations & guidelines for adopting/ deploying these solutions.
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024APNIC
Ellisha Heppner, Grant Management Lead, presented an update on APNIC Foundation to the PNG DNS Forum held from 6 to 10 May, 2024 in Port Moresby, Papua New Guinea.
1.Wireless Communication System_Wireless communication is a broad term that i...JeyaPerumal1
Wireless communication involves the transmission of information over a distance without the help of wires, cables or any other forms of electrical conductors.
Wireless communication is a broad term that incorporates all procedures and forms of connecting and communicating between two or more devices using a wireless signal through wireless communication technologies and devices.
Features of Wireless Communication
The evolution of wireless technology has brought many advancements with its effective features.
The transmitted distance can be anywhere between a few meters (for example, a television's remote control) and thousands of kilometers (for example, radio communication).
Wireless communication can be used for cellular telephony, wireless access to the internet, wireless home networking, and so on.
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptxBrad Spiegel Macon GA
Brad Spiegel Macon GA’s journey exemplifies the profound impact that one individual can have on their community. Through his unwavering dedication to digital inclusion, he’s not only bridging the gap in Macon but also setting an example for others to follow.
2. About me...
● Working with Drupal since 2007.
● Run my own consultancy.
● Implemented sites of all sizes on
Drupal 5, 6, 7, and 8.
● Have inherited many Drupal sites. paul@turbojettech.com
Twitter: @paulmckibben
3.
4. Don’t panic! You can figure this out.
We will cover:
● Drupal basics.
● Determining the state of your inherited
Drupal site.
● Learning how your site works.
● Pitfalls, bad behavior, and war stories.
7. Terminology
● Module: code package that extends Drupal’s capabilities.
(Panels, Webform, Views …)
● Theme: code package that influences what Drupal’s output looks like.
● Install profile: a packaged distribution of Drupal core plus extra
modules and themes for a specific purpose.
(Commerce Kickstart, Panopoly, OpenPublic …)
8. Most common versions of Drupal
● Drupal 8 was released about a year ago. Latest release is 8.2.1.
● Drupal 7 was released in 2011. Latest release is 7.51. Community
support continues until Drupal 9 is released, years from now.
● Drupal 6 is end-of-life. Final release was 6.38, early this year. Some
companies still provide long-term support and provide security patches
on https://www.drupal.org/project/d6lts
9. Drupal 7 code structure (Drupal 6 is similar)
includes
misc
modules
profiles
scripts
themes
sites
authorize.php
cron.php
index.php
install.php
update.php
Drupal
core files
all
modules
contrib
custom
themes
default
files
settings.php
(may have multisite directories too)
Modules downloaded
from drupal.org
Custom-coded
modules
This is where you extend and
customize Drupal’s functionality
Contributed and
custom themes
Uploaded files (images,
documents, etc.)
Site configuration (database
connection settings, etc.)
Install profile code
goes here if
applicable
10. Drupal 8 code structure
core
profiles
vendor
sites
autoload.php
index.php
Drupal
core files
modules
contrib
custom
themes
default
files
settings.php
(may have multisite directories too)
Modules downloaded
from drupal.org
Custom-coded
modules
This is where you extend and
customize Drupal’s functionality
Contributed and
custom themes
Uploaded files (images,
documents, etc.)
Site configuration (database
connection settings, etc.)
services.yml
Service container settings
Install profile code
goes here if
applicable
11. Drush: the Drupal Shell
● Drush is a command line tool for managing your Drupal installation.
● Useful for accomplishing administrative tasks quickly.
● Essential for auditing and accessing a Drupal site you have inherited.
● Drush resources:
○ Drush homepage: http://www.drush.org/
○ FAQ: https://www.drupal.org/drush-faq
○ Drupalize.me drush series: https://drupalize.me/videos/what-drush?p=1156
13. State of Your Site: First Look
● Can you log in?
● Drupal version
● Install profile?
● Installed modules
● Status report
14. Logging in - becoming User 1
● Only the Drupal user with uid=1 is
guaranteed full privileges.
● Get User 1 credentials from
previous developer, if you can.
● Try drush commands such as
drush user-login.
15. Logging in - becoming User 1
● If you have database access:
○ Change the user 1 email address
○ Go to /user/password and mail yourself a reset link.
UPDATE users SET mail="myaddress@example.com" WHERE uid=1;
● More ideas from Drupal.org documentation:
https://www.drupal.org/node/201871
16. What version of Drupal do I have?
Go to the status report
page,
admin/reports/status
This report will also tell you if you have an install profile.
17. Another way to see the Drupal core version
Look at the .info or .info.yml file for a
core module (I use “node”):
Drupal 6 or 7:
[root]/modules/node/node.info
Drupal 8:
[root]/core/modules/node/node.
info.yml
18. What else is in the status report?
● When was cron last run?
● Are updates available for core or contributed code?
● Are security updates required?
● Are any database updates outstanding?
● PHP version and link to “phpinfo” configuration information
● Database type and version
● Some Drupal modules also add messages to this screen.
21. State of Your Site: Digging Deeper
● Setting up a local copy of your site
● Site audit tools
● Has any code been hacked?
● Are there security issues?
● Are updates available?
22. Setting up a local copy of your site
● Why? Because you can test changes and make mistakes without affecting the
live site.
● Need a local *AMP stack: Apache, MySQL, PHP. Options include:
○ Install Apache, MySQL, and PHP directly.
○ Tools such as MAMP, WAMP, Acquia Dev Desktop, etc.
○ Virtual machine: run a virtual Linux server on your PC or Mac. The
drupal-vm project is excellent for this.
● See https://www.drupal.org/docs/develop/local-server-setup for guidance.
23. Setting up a local copy of your site
Once you have your *AMP stack set up, you’ll need:
● The entire Drupal code tree, except (optional) sites/default/files
○ Transferring large file uploads to your local copy is time/bandwidth consuming.
○ Use the stage_file_proxy module to access your hosted files from your local site
● A database dump from your live site
○ The backup/migrate module may be helpful
○ phpMyAdmin, mysqldump, and drush sql-dump are also great
24. Site Audit Tools
Great tools to help you find problems on your site:
Project URL Type Drupal Versions
Hacked https://www.drupal.org/project/hacked Drupal module 6, 7, 8
Site Audit https://www.drupal.org/project/site_audit Drush tool 7, 8
Security Review https://www.drupal.org/project/security_review Drupal module 6, 7, 8
Drupalgeddon https://www.drupal.org/project/drupalgeddon Drush tool 7
25. Has any code been hacked?
● Hacked means: Drupal core
or contributed module code
has been modified from the
downloaded version.
● Strongly discouraged (think
of the kittens).
● The “Hacked” module allows
you to detect modified code.
(But it’s not perfect.)
26. Example report from Hacked module
Drush version of hacked
project report:
drush hacked-list-projects
27. FAQs about hacks
● If hacking is so bad, why does it happen?
○ Desperation
○ Inexperienced developer
● Why is hacked code a problem?
○ Makes updating Drupal code difficult.
○ Must either preserve the hack or build the
equivalent change correctly.
● What’s the right way instead of hacking?
○ Use a custom module or theme to override
functionality.
I will not hack Drupal...
I will not hack Drupal...
30. The Drupageddon Exploit
● Drupal 7 exploit announced October 15, 2014,
corrected in Drupal version 7.32. See
https://www.drupal.org/SA-CORE-2014-005
● Many sites not promptly updated or patched
got exploited. See
https://www.drupal.org/PSA-2014-003
● Your inherited site may be a victim, even if it is
on 7.32 or higher.
31. What is Drupageddon?
● A security hole in Drupal 7 core (prior to 7.32) allowed SQL
injection. (Also Drupal 8 prior to 8.0.0 beta 2)
● Made it possible for a malicious user to modify the database
from (e.g.) the login page and gain complete access.
● Exploiters installed malicious backdoor code and then covered
their tracks.
32. Detecting Drupageddon
● Use the drupalgeddon (with an L) tool.
https://www.drupal.org/project/drupalgeddon
● If it shows issues, your site is (or was) infected.
● If it does not show issues, it doesn’t mean your site is not infected.
● Any site that was publicly-accessible October 15, 2014 and did not get promptly
patched was probably impacted.
If your site was exploited, recovery is not easy.
A good discussion of what you can do: https://www.drupal.org/node/2365547 -
“Your Drupal site got hacked. Now what?”
33. Check Available Updates: admin/reports/updates
Make sure the core
“Update Manager”
module is enabled.
34. Should I update?
Imperative: have the latest security release of core and contributed modules.
Recommended: have the latest stable release of core and contributed modules.
Drupal core
major version
6 7 8
Latest security release 6.38 7.44 8.1.10
Latest release 6.38 7.51 8.2.1
Information current as of October 19, 2016
35. Update vs. Upgrade
Definitions:
● Update: installing the latest software for your major version (e.g. 7.44 to 7.51)
● Upgrade: moving to a newer major version of Drupal (e.g. 7.44 to 8.2.1)
Updating Drupal core is usually straightforward:
● Replace old core files with new core files, but preserve site-specific changes to .htaccess,
robots.txt, settings.php, etc.
● Run the database update script (update.php or drush updb).
Upgrading Drupal core is usually not straightforward. In most cases, best approach is to
rebuild and migrate.
36. How to update Drupal core
Where to find instructions for updating:
● ALWAYS test your update in a non-production environment first.
● Drupal 6: https://www.drupal.org/node/390448 - also, see UPGRADE.txt
● Drupal 7: https://www.drupal.org/docs/7/update - also, see UPGRADE.txt
● Drupal 8: https://www.drupal.org/docs/8/update - also, see core/UPDATE.txt
37. How to update contributed modules
Updating contributed modules is similar to updating Drupal core:
● Replace the old module code with the new module code.
● Run the database update script (update.php or drush updb).
39. Reverse Engineering Your Site
● Identifying common Drupal constructs
● How modules work (overview)
● How themes work (overview)
40. Get to know your browser’s developer tools
● Major browsers all have built-in
web inspection tools
● Chrome/Firefox/Safari:
right-click over the HTML element
and select the “Inspect” menu
item (Safari: may need to enable
developer tools first).
● Internet Explorer: hit F12
41. Common Construct: Node
● Most common way to represent content.
● A node is an instance of a content type:
○ Article
○ Page
○ Press Release
○ Video
○ Whatever else you may define
● A node can be represented as a page
● A node can appear in a listing, e.g. a view
44. Common Construct: Block
● Blocks are boxes of content, e.g. a search form or a copyright statement.
● A block is displayed in a selected region on a page, e.g. a sidebar, header, or
footer.
● Modules can define blocks, e.g. the core search module defines a Search block
● A site administrator can also define custom blocks.
46. Common Construct: View
● A view is a list of entities, usually nodes.
● Requires the Views module, a contributed module in Drupal 7 and earlier.
● In Drupal 8, Views is part of core.
● A View might be used for:
○ A list of press releases or blog posts
○ A page that lists the executives of a company
○ A map with several location plotted on it (requires accompanying geocoding and map modules)
○ A slideshow (requires custom theming/javascript or the Views Slideshow module)
● Views documentation: https://www.drupal.org/documentation/modules/views
48. Common Construct: Panels
● Panels is a contributed module (actually a set of modules).
● Makes it easy to layout content within a page.
● A Panel is divided into a set of Panes.
● Related to Panels:
○ Mini-panels
○ Panelizer
● Panels documentation: https://www.drupal.org/node/496278
50. Is a custom module doing this?
● Sometimes a Drupal page is not a node, a view, a panel, or something else
where an administrator configures the URL path.
● You can find out if a custom module (or any other module) is responsible for a
page by seeing if the module implements the URL path as a route:
○ Drupal 6 and 7: Look for implementations of hook_menu: a function named
[modulename_menu].
○ Drupal 8: Look at the [modulename].routing.yml file.
55. Pitfalls, Bad Behavior, and War Stories
● Improperly installed modules
● Questionable, impostor, and abandoned contrib
modules
● Business logic in theme template
● Your war stories?
57. Questionable contrib modules
An Acquia module?
● Acquia is the company founded by Drupal creator
Dries Buytaert.
● But I had never heard of a module called Acquia.
● I couldn’t find a Drupal.org project that matched the
Acquia module or any of its submodules.
● Further research: this module came from an
independent developer in Italy and was sold on Envato.
58. Complex php logic in theme templates
● Theme templates are supposed to be for markup.
● However, since they are PHP files in Drupal 6 and 7, it’s possible to put any
PHP code in them.
● Too much PHP in the template files leads to maintainability problems. (What if
you want to change the theme?)
● Violates the separation of business logic from presentation logic.
60. Remember, Don’t Panic
We covered a lot, but you now have
resources to learn more.
If you need help:
● https://www.drupal.org/community
lists where you can ask questions, e.g
IRC and the drupal.org forums
● You can seek professional support
from a Drupal expert or an agency.