-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Official Drupal 7 support ended January 5, 2025. Drupal 7 LTSR is a long-term support fork aimed at providing long term security updates and modern PHP support for the platform in order to allow sites not needing new features to continue to be viable as time goes on.
All Drupal 7 documentation.
This guide gives you a big picture overview of Drupal concepts, helping you to understand the framework behind Drupal.
Detailed system requirements for a Drupal 7 installation.
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
How to update your Drupal 7 site
- Introduction
- Automatic Updates
- Update core (option 1)
- Update core (option 2)
- Update core (option 3)
- Update core using Drush
- Update modules
Administering Drupal 7 site
- Getting started with Drupal 7 administration
- Managing content
- Working with contextual links
- Working with the dashboard
- Working with the overlay
- Working with the shortcut bar
- Working with the toolbar
- Clearing or rebuilding Drupal's cache
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
- 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
- bootstrap 4 based subtheme
- miniOrange OpenID Connect Rest API
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
Extend your Drupal 7 site's functionality with contributed modules, or alter its appearance with contributed themes.
- Overview
- Installing modules
- Installing themes
- Moving modules and themes
- Uninstalling modules
- Directory precedence and multi-site considerations
- Comparison of contributed modules
Multilingual guide for 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
This guide explains Drupal’s version numbering scheme for both Drupal core and contributed modules.
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
- 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
The guidelines for clean URLs
- 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
- 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
Securing Drupal 7 site
Backing up and migrating a site (for example, from one host to another).
- Back up your site using the command line
- Backing up a site
- Backing up your site (GUI)
- Migrating a site
- Multisite Backup Script
- Restoring a database backup (command line)
Managing 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
How to add and remove Drupal 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 site
Nodes, content types and fields
- About nodes
- Working with content types and fields (Drupal 7 and later)
- Create a custom content type
- Add a field to a content type
- Rearrange the order of fields
- Specify how fields are displayed
- Import and Export of content-types, fields, panel or views-structure
Organizing content with taxonomy
- About taxonomies
- Add a field to a taxonomy term (Drupal 7 and later)
- Add a term to a vocabulary
- Add a vocabulary to a content type
- Create a vocabulary
- Guidelines for taxonomy design
- Organizing content with taxonomies
- Using taxonomy URLs to display sets of content
Site building best practices
- Best practices
- Backup your database and files
- Never hack core
- Avoid hardcoding
- Building Drupal 7 with Drupal 8 in mind
- Ensure that your site is secure
- Use test sites
- Taking your site live
- Avoiding too many modules
- Contributed versus custom code and everything in between
Accessibility tools and best practices
These guidelines provide some tips for writing efficient SQL code. 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.
- Native mobile apps
- Mobile-specific website
- Web-based mobile apps
- Responsive web design
- Responsive Design + Server-side Components (RESS)
- Related mobile technologies
- Configurations that work with the Mobile Codes module.
- Mobile Testing Tools
- Front-end performance
Managing Drupal menus, menu links, and custom menu settings and options.
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
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
- Professional
- RootCandy
- Sasson
- Splendio
- Square Grid
- UIkit
- Whitebull
- Willibald
- Zen
- Zentropy
- Zero Point & Black Hole
- Zurb Foundation
Converting Drupal 6 modules to Drupal 7.
- Converting 6.x modules to 7.x
- Converting 6.x modules to 7.x - Categorical
- Converting node access queries to 7.3
- Creating HTML formatted emails in Drupal 7
- Menu path changes from 6.x to 7.x
- New #ajax['prevent'] property added in 7.5
- Updating CCK Field Modules from D6 to D7
Developing installation profiles and distributions for Drupal 7.
- Distribution developers guide
- How to Write a Drupal 7 Installation Profile
- Installation Profile Utilities
- Managing Drush make files for an installation profile
- Usage statistics for distributions
Documentation for various Drupal 7 distributions.
- Introduction to distributions
- Additional distribution documentation
- Maintaining sites built with distributions
- Comparison of magazine and newspaper distributions
- Comparison of nonprofit distributions
- Comparison of social and community distributions
- Conference Organizing Distribution
How to use built-in Drupal core APIs like caching, javascript, entity, form as well as others.
- Batch API
- Cache API
- Database API
- Entity API
- Field API
- File API
- Form API
- JavaScript API
- Localization API
- RDF Mapping API
- Render Arrays
- Schema API
- Theme API
- XML-RPC API
Drupal 7 core structure and components.
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
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 Original content from drupal.org, licensed under Creative Commons Attribution-ShareAlike.