Understanding Drupal 7
This guide gives you a big picture overview of Drupal 7 concepts, helping you to understand the framework behind Drupal 7.
Drupal 7 system requirements
Detailed system requirements for a Drupal 7 installation.
Installing Drupal 7
How to install Drupal 7.
- Before installation
- Step 1: Download and extract Drupal
- Step 2: Create the database
- Step 3: Create settings.php and the files directory
- Step 4: Run the installation script
- Setting up the files directory
- Install Drupal in another language
- Built-in Installation Profiles
- OS specific download notes
- Using an installation profile
Updating Drupal 7
How to update your Drupal 7 site
Administering Drupal 7 site
Administering Drupal 7 site
Contributed modules for Drupal 7
Documentation for contributed modules for Drupal 7.
- API module
- Accelerated Mobile Pages (AMP)
- Accessibility
- Accounting distribution
- Administration Views
- Advanced Views RSS Feed
- Advanced help
- Advanced help hint
- Affiliate-NG
- Agenda
- Album Photos
- Amazon Product Advertising API
- Amazon Wysiwyg
- Anonymous publishing
- Answers
- Apache Solr Popularity
- Attributions
- BACnet
- Backup and Migrate
- Bassets
- Bean
- Block in Block
- Brand
- Breeding API
- Brightcove Video Connect
- Bulk migrate taxonomy terms
- Bynder
- Bynder Orbit
- CDEK API
- CKEditor
- CKEditor LTS
- CRM Core
- Changed Fields API
- Charts
- CiviCRM Entity
- CiviCRM Starter Kit
- Cleaner
- Collapsiblock
- Comment mover
- Commerce Affirm Credit Payment Gateway
- Commerce Coupon (D7)
- Commerce Discount
- Commerce ECPay AllInOne
- Commerce Google Tag Manager
- Commerce License Cancel
- Commerce Login and Pay with Amazon
- Commerce Order Cleanup
- Commerce Point of Sale (POS)
- Commerce Square Connect
- Commerce TaxJar
- Conditional Fields
- Conditional Message
- Confident CAPTCHA
- CrowdRiff
- Customerror
- DAN Polaroid
- Devel
- Domain Access
- Drafty
- Drip Marketing Automation
- Drupal 8 upgrade evaluation
- Drupoint
- EU Cookie Compliance
- Email Field
- Entity List Field
- Entity Lister
- Entity Print
- Entity Share
- Entity Translation
- Entity Translation Copy
- Entity reference
- Epsilon Harmony Connector
- Extensions API
- Extra SiteInfo
- Features
- Feeds
- Feeds TD Fetcher
- Filebrowser
- FillPDF
- Fivestar
- Flag Notify
- Flexi access
- Freelinking
- General Data Protection Regulation
- Glossary
- GovCMS
- HTML2book
- Help Scout's Beacon
- Hiecor Secure Payment - Ubercart
- Human Presence Form Protection
- Image Replace
- Important Information block
- Instagram Block
- Invite
- Isotopia Documentation
- Journal
- Key
- Lazy-load
- Libraries API
- LiftIgniter
- Lightweight Directory Access Protocol (LDAP)
- Link
- Link block titles
- Linkit
- LoginToboggan
- Mandrill
- Markdown Exporter
- Maxlength
- Media
- Media Fotoweb
- Media: Panopto
- Metatag
- Mime Mail
- Mobile App Updater
- Mobile Number
- Mother May I
- Multipage Navigation
- Name redactor
- Node noindex
- Notify
- Numeric Field Filter
- OG Tasks
- Olark Chat
- OpenEDU
- Openlayers
- Organic Groups
- PHP Native password_hash for Drupal
- Panels Ajax Tabs
- Panels Ajax Tabs
- Panels Responsive Tabs
- Password Policy
- Payfast
- Phone field
- Progressive Web App (PWA)
- Protected node
- Quiz
- Quotes
- RBKmoney Checkout for Ubercart
- RabbitMQ
- Radioactivity
- Realname registration
- Reference field option limit
- RegEx Field Validation
- Registration Date
- Renderkit
- Revision Field Views
- Rotating Banner
- Rules
- SMS Framework
- Sailthru API Module
- Salesforce Suite
- Salsify
- Schema.org Metatag
- Scrambler
- Search API
- Search API Federated Solr
- Search API Pages
- Secure Site
- Semantic Connector modules
- Sharerich
- Sherpa Webform
- ShrinkTheWeb
- Simple FB Connect
- Simple Instagram feed
- Simple LinkedIn Autopost
- Single Page Apps documentation
- Siteimprove
- Snippets
- Soundslides
- Spam Detect
- Style Switcher
- Swift Mailer
- Taxonomy List
- The Better Mega Menu
- ToDoist API
- Two-factor Authentication (TFA)
- Ubercart
- Ubercart Addresses
- Ultimate Cron
- Units
- Update Rules
- User Data Connector
- Video
- Views Bootstrap
- Views Exposed Filters Summary
- Views FractionSlider
- Views Natural Sort
- Views PDF
- Views PHP
- Views Rules
- Views Save
- Views Send
- Views Slideshow
- Visitors
- Voting Rules
- Web Service Data
- Webform Default Fields
- Willibald Panelstyle
- Wordfilter
- Workbench Access
- Workflow
- Wysiwyg
- Wysiwyg Boxout
- Wysiwyg Smart Paging SEO
- YAML Configuration
- [Drupal 7] Views
- bootstrap 4 based subtheme
- miniOrange OpenID Connect Rest API
Theming Drupal 7
Theming guide for Drupal 7.
- Overview of theme files
- Writing theme .info files
- Default .info values
- Assigning content to regions
- Checking if a region is occupied
- Theme settings
- Global settings
- Integration with the Color module
- Creating a sub-theme
- Clearing the theme cache
- Sub Theme - Inheritance Summary
- Example: creating a Garland sub-theme that utilizes the Color module
- Working with CSS
- Working with JavaScript and jQuery
- Using Newer Versions of jQuery
- Core templates
- Template (theme hook) suggestions
- Theming blocks
- Advanced theming
- Overriding themable output
- Creating accessible themes
- Theming HowTos
- Tools and best practices
- Upgrading 6.x themes to 7.x
Extending Drupal 7
Extend your Drupal 7 site's functionality with contributed modules, or alter its appearance with contributed themes.
Multilingual guide for Drupal 7
Multilingual guide for Drupal 7.
Multisite Drupal 7
Drupal can serve many sites from a single codebase.
- Multi-site - Sharing the same code base
- Configuring a basic multi-site development environment in Linux
- Local multi-site installation of Drupal 7 on Linux
- Multi-site in subdirectories
- Multi-site on Linux - Configuring multi-site for a local user (UserDir)
- Multi-site on Linux
- Multi-site on Mac
- Multi-site on Windows - using IIS
- Multi-site on Windows - using WampServer
- Multi-site on Windows - using XAMPP
- Multi-site on Windows
- Multisite Mapping with Drupal
- Secure multi-site setup using shared code-base
- Some multi-site considerations
- Step 1: mono-site installation of Drupal 7
- Step 2: setting the databases
- Step 3: setting the subdirectories
- Step 4: setting the hostnames
- Step 5: troubleshooting
- Step 6: making your websites
- Step 7: backing up and restoring
- Move single site to multisite in Drupal 7
Version numbering scheme for Drupal 7 core and contributed modules
This guide explains Drupal’s version numbering scheme for both Drupal 7 core and contributed modules.
Upgrade to Drupal 7
Upgrade to Drupal 7 from previous major versions of Drupal.
- Upgrade procedure (major version change)
- Version upgrade considerations
- Before you begin
- Make a test site
- Copy your live site to a test site (GUI)
- Copying your live site to a test site (command line)
- Upgrading Drupal core
- Read UPGRADE.txt
- Make an Upgrade Plan
- Current Site Preparation
- New Site Preparation
- Upgrade process
- Test the site
- Copy the test site to a live site
- Copy your test site to a live site (GUI)
- Copying your test site to your live site (command line)
- After Upgrade Checklist
- Upgrading Drupal rapidly using SSH/Shell commands
- Upgrading Drupal using a patch file
- Upgrading contributed modules and themes from Drupal 6 to Drupal 7
- Drupal 6 contributed modules that are in Drupal 7 core
- Migrating D6 Content Construction Kit (CCK) to D7 Fields
- Updating and upgrading Drupal core
Setting up cron for Drupal 7
Setting up cron for Drupal 7
- Overview
- Configuring cron jobs using the cron command
- Running cron manually
- Multisite cron
- Troubleshooting cron
- Configuring cron without wget, lynx, or curl commands
- Configuring cron jobs with DreamHost
- Configuring cron jobs with MAMP localhost
- Configuring cron jobs with Mac OS X Server 10.5.x and later
- Configuring cron jobs with Media Temple Grid (gs) and DV servers
- Configuring cron jobs with Network Solutions
- Configuring cron jobs with Rackspace Cloud Sites
- Configuring cron jobs with Virtualmin and Webmin
- Configuring cron jobs with Windows
- Configuring cron jobs with cPanel
- Configuring cron jobs with hosteurope
- Configuring cron jobs with ixWebHosting
Configuring clean URLs in Drupal 7
The guidelines for clean URLs in Drupal 7
- Configure clean URLs
- Clean URLs with Apache 2 for performance
- Clean URLs with Apache 2 on Debian
- Clean URLs with Apache 2 on Ubuntu
- Clean URLs with Apache 2 - above DocumentRoot on virtual private servers
- Clean URLs with Hiawatha
- Clean URLs with IIS
- IIS CleanURLs using some of the available ISAPI filters.
- Clean URLs with Lighttpd
- Clean URLs with Mac OS X Server
- Clean URLs with WAMP
- Clean URLs with XAMPP
- Clean URLs in Wampserver 2
- Clean URLs with https for the backend and http for the front end
Migrating to Drupal 7
Migrating to Drupal
- Drupal modules equivalent to phpBB features
- Get started by creating a list
- How to migrate from many different forum systems
- Migrating from Discus
- Migrating from Invision Power Board
- Migrating from Joomla/Mambo
- Migrating from Wordpress
- Migrating from phpBB
- Migrating from static HTMLs with i18n
- Migrating from vBulletin
- Migrating to Drupal
- phpBB integration solution
- phpBB migration solution
Security in Drupal 7
Securing Drupal 7 site
Backing up and migrating a Drupal 7 site
Backing up and migrating a Drupal 7 site (for example, from one host to another).
Managing Drupal 7 site performance and scalability
Managing Drupal 7 site performance requires a mix of code optimisation, configuration, and server tuning.
- Planning for Performance
- Caching to improve performance
- Changing PHP memory limits
- Content Delivery Network [CDN]
- Design for Low Bandwidth
- Increase upload size in your php.ini
- Optimizing Drupal to load faster (Server, MySQL, caching, theming, HTML)
- Optimizing MySQL
- Randomizing MySQL Users For Exceeded max_questions Error
- Server tuning considerations
- Tuning php.ini for Drupal
Managing users in Drupal 7
How to add and remove Drupal 7 users and manage other user related functionality like roles, permissions, and fields.
- User Roles
- Managing access control with permissions and user roles
- Assigning permissions and users to roles
- Ban an IP address
- Enabling user pictures (avatars)
- Extending user profiles
- Hide user login
- HowTo Create a 'country' profile field
- Viewing unpublished content
- Working with user profile information
Monitoring a Drupal 7 site
Monitoring a Drupal 7 site
Drupal 7 nodes, content types, and fields
Drupal 7 nodes, content types, and fields
Organizing content with taxonomy in Drupal 7
Organizing content with taxonomy in Drupal 7
Drupal 7 site building best practices
Drupal 7 site building best practices
Accessibility tools and best practices for Drupal 7
Accessibility tools and best practices for Drupal 7
Drupal 7 SQL guidelines
These guidelines provide some tips for writing efficient SQL code for Drupal 7. Guidelines apply to MySQL and PostgreSQL.
- Install tools to measure performance of SQL queries
- Logging slow SQL queries server-side in PostgreSQL
- The Benefits of Indexing Large MySQL Tables
- Run EXPLAIN on slow queries to find sequential scans
- Using MySQL EXPLAIN
- Using PostgreSQL EXPLAIN
- Understanding the logic behind EXPLAIN ANALYSE
- Indexes are not symmetric
- Make sure that JOIN columns both carry indexes of the same type
- Conclusion and summary of the guidelines
- Writing code compliant with both MySQL and PostgreSQL
Mobile guide for Drupal 7
Mobile guide for Drupal 7.
Working with menus in Drupal 7
Managing Drupal 7 menus, menu links, and custom menu settings and options.
Creating custom modules in Drupal 7
Module developer's guide for Drupal 7.
- Getting started
- Telling Drupal about your module
- Writing module .info files (Drupal 7.x)
- Creating Drupal 7 hooks
- Writing comments and implementing your first hook
- Writing .install files (Drupal 7.x)
- Declaring the block
- Retrieving data
- Generating block content
- Testing and troubleshooting the module
- Preparing for a module configuration form
- Creating the configuration form
- Validating the data
- Specifying a custom permission for a new page
- Adapting the query
- Theming the page
- Adding a 'More' link
- Testing with SimpleTest
- Practicing patches
- Show all errors while developing
- Drupal 7's code registry
- Exportable configuration
- Suppress caching (for development) or to use an external page cache
- Using the theme layer (Drupal 7.x)
- Drupal 6/7 programming from an object-oriented perspective
- Making your custom data translatable
- Module development HowTos
- Understanding the hook system for Drupal modules
- Working with multilingual content
Drupal 7 contributed themes
Documentation for Drupal 7 contributed themes.
- 0 Zilch
- Adaptivetheme
- Andromeda
- Business
- Circle
- Corp
- Danland Theme Handbook
- Daycare
- Elimai
- FontFolio
- Fusion
- Groundwork
- Insurance
- Law
- LayoutStudio
- Marinelli
- Mayo
- Mix and Match
- Mothership
- Neptune
- Newswire
- Nucleus
- Omega
- Pets
- Photo
- Pro
- RootCandy
- Sasson
- Splendio
- Square Grid
- UIkit
- Whitebull
- Willibald
- Zen
- Zentropy
- Zero Point & Black Hole
- Zurb Foundation
Converting Drupal 6 modules to Drupal 7
Converting Drupal 6 modules to Drupal 7.
Creating Drupal 7 distributions
Developing installation profiles and distributions for Drupal 7.
Drupal 7 distributions
Documentation for various Drupal 7 distributions.
Drupal 7 APIs
How to use built-in Drupal core APIs like caching, javascript, entity, form as well as others.
Drupal 7 core
Drupal 7 core structure and components.
Site building and development HowTos for Drupal 7
Site building and development HowTos for Drupal 7.
- HowTos
- Add PHP code to the body of a Drupal 7 Block
- Accessing commerce order data from the send mail Rules action
- Add Google Webmasters Tools verification meta tag via the themes template.php file.
- Add a markup element to a Views Exposed Filter form
- Adding File Encryption to existing Drupal 7 site
- Book: Drupal 7 the Essentials
- Build a Drupal 7 HTML5 Video Subtitling/Closed-captioning System
- Build a simple conditional field in Views 7.x-3.x
- CTools Plugins without Panels, step by step
- Cascading select using views
- Change default strings (text) without using full translation system
- Control/modify display settings (author and date) on posts
- Copy the form buttons on node creation pages to the top
- Create a Node in Code
- Create a Rule to Evaluate If a Logged-in User Has Created Content of Type X
- Create a custom User Registration form with FAPI D7
- Create a fixed position customized information box
- Creating an activity newspaper website using D7
- Creating iFrame-ready Widgets with Views and Templates
- Customize the default user registration form
- Display User's Points of Specific Category in a Block on Content Profile
- Embed a date-specific event calendar
- FAQ using Views
- Flot Usage Example
- Future-proof your Drupal 7 site
- How to Create an Image Gallery in Drupal
- How to Make a Simple Module with a Form and Menu Link
- How to reset the administrator (user 1) password in Drupal 7
- How to Set up Google AdSense for Search without using a custom module
- How to add jQuery UI libraries to a page
- Image gallery with Imagefield and Taxonomy
- Making a Guestbook, a Gallery, a Status Wall, Chat Room ...
- Move field's help text (description) between the label and input element(s)
- Moving node settings on the edit form
- Subscribe a user to specific OG group using Rules
- Writing a module that handles node access
- Yin/Yang Multisite Staging
Automated testing for Drupal 7
The testing framework in Drupal 7 (Testing module, previously SimpleTest).
- Testing overview
- Testing module
- Testing tutorial
- Unit Testing with SimpleTest
- Organizing your test cases
- Selenium testing
- Testing setup and configuration
- Writing upgrade path tests
- Run tests
- Running tests through command-line
- Troubleshooting tests
- SimpleTest upload tests hanging
- SimpleTest [Browser] on Vista
- Improving SimpleTest performance
- Testing Reference
- API functions
- Assertions
- Why test
- Core tests
- Hidden modules and themes
- Comprehensive example
- Miscellaneous SimpleTest tips

