Top 43 Drupal Interview Questions You Must Prepare 19.May.2024

You can use your web browser to go to and download the newest version, or you can use any number of tools to do this for you. For example, you can use Drush, if you have it installed and configured in the Vagrant profile).

A minimum base installation requires at least 3MB of disk space but actual disk space is somewhat higher. If you install many contributed modules and contributed themes, the actual disk space for your installation could easily be 40 MB or more.

Drupal, Joomla, Wordpress, TYPO3.

Drupal has a system for classifying content, which is known as taxonomy and implemented in the core Taxonomy module. You can define your own vocabularies (groups of taxonomy terms), and add terms to each vocabulary. Vocabularies can be flat or hierarchical, can allow single or multiple selection, and can also be “free tagging” (meaning that when creating or editing content, you can add new terms on the fly). Each vocabulary can then be attached to one or more content types, and in this way, nodes on your site can be grouped into categories, tagged, or classified in any way you choose.

Drupal is the choice for many great web sites because it does a lot of different things very well, and allows different kinds of information to interact effectively through its flexible, open architecture. Drupal's feature set is far more economic and practical for most organization.

There are three ways to interact with the search system: Specifically for searching nodes, you can implement nodeapi(‘update index’) and nodeapi(‘search result’). However, note that the search system already indexes all visible output of a node, i.e. everything displayed normally by hook_view() and hook_nodeapi(‘view’). This is usually sufficient. You should only use this mechanism if you want additional, non-visible data to be indexed.

Implement hook_search(). This will create a search tab for your module on the /search page with a simple keyword search form. You may optionally implement hook_search_item() to customize the display of your results.

Implement hook_update_index(). This allows your module to use Drupal’s HTML indexing mechanism for searching full text efficiently.

If your module needs to provide a more complicated search form, then you need to implement it yourself without hook_search(). In that case, you should define it as a local task (tab) under the /search page so that users can easily find it.

Hooks in Drupal allows modules to interact with the Drupal core. Drupal’s module system is based on the concept of “hooks”. A hook is a PHP function that is named foo_bar(), where “foo” is the name of the module and “bar” is the name of the hook. Each hook has a defined set of parameters and a specified result type. To extend Drupal, a module need simply implement a hook. When Drupal wishes to allow intervention from modules, it determines which modules implement a hook and calls that hook in all enabled modules that implement it.

The Views module provides a flexible method for Drupal site designers to control how lists and tables of content (nodes in Views 1, almost anything in Views 2) are presented.

Traditionally, Drupal has hard-coded most of this, particularly in how taxonomy and tracker lists are formatted.

This tool is essentially a smart query builder that, given enough information, can build the proper query, execute it, and display the results. It has four modes, plus a special mode, and provides an impressive amount of functionality from these modes.

Among other things, Views can be used to generate reports, create summaries, and display collections of images and other content.

No, it is not possible to disable the core required modules.

Drupal core has two key features that assist with the integration of rich media, the Upload module and embedding. The Upload module allows users to attach different types of files to node types of your choosing. This feature allows for very basic integration with media files. There are two limitations that you will deal with when using the upload module. The size of file uploads may be limited by your web host which could limit what types of media you can upload to the site. If you are able to upload the file you want the upload function does not provide any post upload processing or embed the media within your posts.

Drupal core also allows you to embed media within nodes that is hosted on other websites. So if you have photos hosted on Flickr or videos hosted on YouTube you can paste the provided embed code into your posts. And you are also free to create a link to the original location of the media in your post. It is important to note that if you wish to embed media from other sites you must have the "Full HTML" input format selected. The standard "Filtered HTML" input format strips out the embed tags for security reasons.

PDO is an acronym for PHP Data Objects. PDO is a lean, consistent way to access databases. This me developers can write portable code much easier. PDO is not an abstraction layer like Pear DB. PDO is a more like a data access layer which uses a unified API (Application Programming Interface).

Pages on your Drupal site are laid out in regions, which can include the header, footer, sidebars, and main content section; your theme may define additional regions. Blocks are discrete chunks of information that are displayed in the regions of your site’s pages. Blocks can take the form of menus, the output from modules, or dynamic and static chunks of information that you’ve created yourself.

There are three standard menus in Drupal: Primary Links, Secondary Links, and Navigation. Primary and Secondary links are built by site administrators, and displayed automatically in the page header of many themes. Navigation is the catch-all menu that contains your administration menus, as well as links supplied by modules on your site. You can also create your own custom menus, and display them by enabling their blocks.

You can customise menus in several ways, such as reordering menu items by setting their “weight” or simply dragging into place, renaming menu items, and changing the link title. You can move a menu item into a different menu by editing the Parent property of the menu item.

You can also add custom menu items to a menu, from the Add menu item tab of the Menu administration screen. To create a menu item, you will need to provide the path to the content.

Here is a list of the Drupal benefits:

  • Easy to install.
  • Easy to use - no programming knowledge needed.
  • It has lots of features including Search Engine Friendly URLs(SEF), categories, search function.
  • It has lots of modules to extend your site's functionality.
  • Flexibility - you can easily turn your Drupal installation into a forum, blog, wiki and many other types of web sites.
  • It is free to use and it is open source. Drupal can be easily installed and modified to change the source code to fit your needs.
  • Lots of users and a large community find it easy to find solutions to your problems.

  1. Block — Controls the boxes that are displayed around the main content.
  2. Filter — Handles the filtering of content in preparation for display.
  3. Node — Allows content to be submitted to the site and displayed on pages.
  4. System — Handles general site configuration for administrators.
  5. User — Manages the user registration and login system.

Comments are another type of content you can have on your site (if you have enabled the core Comment module). Each comment is a typical small piece of content that a user submits, attached to a particular node. For example, each piece of discussion attached to a particular forum topic node is a comment.

There are two different "magnitudes" of upgrades. There are major upgrades and minor updates. A major upgrade updates Drupal from one major version. Because major Drupal versions indicate substantial changes, such upgrades are often time consuming, requiring many steps both before and after the actual installation of the software.

Minor updates move from one point release to another newer point release. A point release is a software update that contains only bug fixes and minor feature changes. Its major version number remains the same, but its minor version (its point number) is incremented.

Drupal's current major version number is 7, and its minor version number (as of time of writing) is 12, so we have version 7.@Updating minor releases is much simpler than major upgrades, and should also be done regularly. Since most minor versions are released for security or stability reasons, they are typically quite important. In this section, we will look at updating Drupal multi-site configurations. The process differs from upgrading a single-site instance in that there are more steps, and the order of steps must be done carefully. Since a multi-site runs only one copy of Drupal, all of the sites on a multi-site install must be updated at the same time. Multi-site updates differ from single-site updates in one crucial way: while Drupal's code needs to be updated only once, each individual site needs to go through the updating process. To keep site impact to a minimum (and to avoid catastrophes), doing these updates requires a special process.

The Dashboard module provides a Dashboard page in the administration menu. The intention of the Dashboard page is to give administrators a quick overview of important information on the website.

Content management system (CMS) is a collection of procedures used to manage work flow in a collaborative environment. These procedures can be manual or computer-based. The procedures are designed to allow large number of people to contribute and share stored data Control access to data, based on user roles. Reduce repetitive duplicate input Improve the ease of report writing Improve communication between users.

In a CMS, data can be defined as almost anything – documents, movies, pictures, phone numbers, etc. CMSs are frequently used for storing, controlling, revising, semantically enriching, and publishing documentation. Content that is controlled is industry-specific

Drupal core contains settings that allow you to moderate comments. Drupal's user access controls allow you to specify whether or not users must already have an account before they can post comments to the site. You can also specify whether a user (logged in or anonymous) may leave a comment without approval. Comment moderation is made simpler via the contributed module called Notify. Notify will send an email to the administrator whenever someone leaves a comment on their site.

diff creates patch In simple terms, the diff command is used to compare differences between two versions of a file. The resulting file is called a patch, and typically is given (by the user) a “.patch” suffix.

This patch file then can be used on other copies of the “old” file by using the patch command, thus updating their “old” file(s) to match the “new” file(s).

Why you would use diff When might one use diff to create a patch file? Let’s say you are customizing a module to fix a bug, and have saved a new version of the module. How will you pass on your bug fix to others? Simply passing on your version of the module may not work, because it’s quite possible someone else has modified some other aspect of the code at the same time and you both would be overwriting each others’ changes.

So instead, what you do is run diff between the two files, and then upload the resulting patch — which others can then apply to their files using the patch command. (And you can apply other people’s patches against your files, without losing your own changes.).

The added benefit of this type of workflow is that changes to the code can easily be tracked — and undone, if necessary — which is essential in a community-developed project such as Drupal.

Every visitor to your site, whether they have an account and log in or visit the site anonymously, is considered a user to Drupal. Each user has a numeric user ID, and non-anonymous users also have a user name and an email address. Other information can also be associated with users by modules; for instance, if you use the core Profile module, you can define user profile fields to be associated with each user.

Anonymous users have a user ID of zero (0). The user with user ID one (1), which is the user account you create when you install Drupal, is special: that user has permission to do absolutely everything on the site.

Other users on your site can be assigned permissions via roles. To do this, you first need to create a role, which you might call “Content editor” or “Member”. Next, you will assign permissions to that role, to tell Drupal what that role can and can’t do on the site. Finally, you will grant certain users on your site your new role, which will mean that when those users are logged in, Drupal will let them do the actions you gave that role permission to do.

You can also assign permissions for the special built-in roles of “anonymous user” and “authenticated user”. Drupal permissions are quite flexible — you are allowed to assign permission for any task to any role, depending on the needs of your site.

  1. Rock solid & high quality platform
  2. Powerful templating system. Any XHTML or CSS template can be easily converted to Drupal
  3. Real multi-site-feature (only one installation for several sites)
  4. Any Kind of user groups & user permissions, OpenId compliant in Version 6
  5. Can run membership and community sites, not only CMS etc
  6. Clear, high quality code and API (easy to integrate with other solutions etc)

Drupal sites are used in very demanding scenarios, serving millions of page views a day. Drupal scalability and performance optimization is one of our core competencies, and we often work with existing web properties to find ways to improve their performance.

A wide range of support services are available for organizations running Drupal sites. The Drupal community itself is an excellent resource for people looking to learn more about the platform or resolve specific issues that emerge using the system. Acquia offers an enterprise distribution of Drupal that includes uptime monitoring, email and telephone based troubleshooting support, and subscription pl for sites with varying performance requirements.

A node in Drupal is the generic term for a piece of content on your web site. (Note that the choice of the word “node” is not meant in the mathematical sense as part of a network.) Some examples of nodes:

  • Pages in books
  • Discussion topics in forums
  • Entries in blogs
  • News article stories

Each node on your site has a Content Type. It also has a Node ID, a Title, a creation date, an author (a user on the site), a Body (which may be ignored/omitted for some content types), and some other properties. By using modules such as the contributed Content Construction Kit (CCK) module, the core Taxonomy module, and the contributed Location module, you can add fields and other properties to your nodes.

Drupal stores information in a database; each type of information has its own database table. For instance, the basic information about the nodes of your site are stored in the Node table, and if you use the CCK module to add fields to your nodes, the field information is stored in separate tables. Comments and Users also have their own database tables, and roles, permissions, and other settings are also stored in database tables.

Comments are another type of content you can have on your site (if you have enabled the core Comment module). Each comment is a typically small piece of content that a user submits, attached to a particular node. For example, each piece of discussion attached to a particular forum topic node is a comment.

A node in Drupal is the generic term for a piece of content on your web site. (Note that the choice of the word “node” is not meant in the mathematical sense as part of a network.) Some examples of nodes:

  • Pages in books
  • Discussion topics in forums
  • Entries in blogs
  • News article stories

Each node on your site has a Content Type. It also has a Node ID, a Title, a creation date, an author (a user on the site), a Body (which may be ignored/omitted for some content types), and some other properties. By using modules such as the contributed Content Construction Kit (CCK) module, the core Taxonomy module, and the contributed Location module, you can add fields and other properties to your nodes.

Drupal is also often compared with other open source content management systems including Joomla, Plone, Scoop, Silver stripe, Typo3, Graffiti, Movable Type and Wordpress. There are characteristic features to all of these systems that make them appropriate in certain contexts, and most of them compare favorably to Drupal in one category of operation or another. But few of them are capable of offering the balance between performance and functionality found in Drupal.

A Web content management system is content management system software, implemented as a Web application, for creating and managing HTML content. It is used to manage and control a large dynamic collection of Web material. A WCMS facilitates content creation, content control, editing, and essential Web maintenance functions. The software provides authoring tools designed to allow users with little knowledge of programming languages or markup languages to create and manage content with relative ease. Most systems use a database to store content, metadata, or artifacts that might be needed by the system. Content is frequently, but not universally, stored as XML, to facilitate reuse and enable flexible presentation options.

Most systems use server side caching boosting performance. This works best when the WCMS is not changed often but visits happen on a regular basis. Administration is typically done through browser-based interfaces, but some systems require the use of a fat client.

Drupal is an open source content management system offering a toolset. With integrated social media and e-commerce functionality, it provides unique value as part of your social media strategy.

Drupal comes with a built in taxonomy system. The taxonomy system allows you to categorize the nodes on your site. The taxonomy system allows you to define vocabularies allow you to organize your terms into groups. Each term is essentially a category. There is no limit to the number of vocabularies you can create. There is also no limit to the number of terms that you can include in each vocabulary. Your vocabulary can also have free tagging. So instead of entering specific terms ahead of time users may enter tags freely at the time the post is written and those tags automatically become terms in that vocabulary.

This taxonomy system makes Drupal very flexible and very powerful because you can use your categories and terms to display the content on your site in a variety of different ways. For example, a contributed module called Tagadelic allows you to display categories as a tag cloud. You can also use your site categories to generate custom views and RSS feeds.

  1. Aggregator Aggregates syndicated content (RSS, RDF, and Atom feeds).
  2. Blog Enables keeping easily and regularly updated user web pages or blogs.
  3. Blog API Allows users to post content using applications that support XML-RPC blog APIs.
  4. Book Allows users to structure site pages in a hierarchy or outline.
  5. Color Allows the user to change the color scheme of certain themes.
  6. Comment Allows users to comment on and discuss published content.
  7. Contact Enables the use of both personal and site-wide contact forms.
  8. Content trlation Allows content to be trlated into different languages.
  9. Database logging Logs and records system events to the database.
  10. Forum Enables threaded discussions about general topics.
  11. Help Manages the display of online help.
  12. Locale Adds language handling functionality and enables the trlation of the user interface to languages other than English.
  13. Menu Allows administrators to customize the site navigation menu.
  14. OpenID Allows users to log into your site using OpenID.
  15. Path Allows users to rename URLs.
  16. PHP filter Allows embedded PHP code/snippets to be evaluated.
  17. Ping Alerts other sites when your site has been updated.
  18. Poll Allows your site to capture votes on different topics in the form of multiple choice questions.
  19. Profile Supports configurable user profiles.
  20. Search Enables site-wide keyword searching.
  21. Statistics Logs access statistics for your site.
  22. Syslog Logs and records system events to syslog.
  23. Taxonomy Enables the categorization of content.
  24. Throttle Handles the auto-throttling mechanism, to control site congestion.
  25. Tracker Enables tracking of recent posts for users.
  26. Trigger Enables actions to be fired on certain system events, such as when new content is created.
  27. Update status Checks the status of available updates for Drupal and your installed modules and themes.
  28. Upload Allows users to upload and attach files to content.


Here are some typical Drupal usages:

  • Content management - Using a simple, browser-based interface, members can publish stories, blogs, polls, images, forums, etc. Administrators can easily customize the design of their Drupal installation.
  • Hierarchical ordering- The Drupal classification system allows hierarchical ordering, cross-indexing of posts and multiple category sets for most content types. Access to content is controlled through administrator-defined user roles. A search option is also available.
  • Weblog - A single installation can be configured as an individual personal weblog site or multiple individual weblogs. Drupal supports the Blogger API, provides RSS feeds for each individual blog and can be set to ping weblog directories when new content is posted on the home page.
  • Discussion-based community - A Drupal web site can be successfully used as a discussion forum. Comment boards, attached to most content types, make it simple for members to discuss new posts. Administrators can control whether content and comments are posted without approval, with administrator approval or through community moderation. Collaboration - Used for managing the construction of Drupal, the project module is suitable for supporting other open source software projects. The collaborative book module includes versions control, making it simple for a group to create, revise and maintain documentation or any type of text.

A module is software (code) that extends Drupal features and/or functionality. Core modules are those included with the main download of Drupal, and you can turn on their functionality without installing additional software. Contributed modules are downloaded from the Modules download section of, and installed within your Drupal installation. You can also create your own modules; this requires a thorough understanding of Drupal, PHP programming, and Drupal module API.

Not at all—there are many other free software licenses. We have an incomplete list. Any license that provides the user certain specific freedoms is a free software license.

A patch is a file that consists of a list of differences between one set of files and another. All code changes, additions, or deletions to Drupal core and contributed modules/themes between developers are done through patches.

The differences are presented in a structured, standard way, which me that a program (also named patch) can be used to apply the changes to another copy of the original file.

Yes, you can use drush – drush is a command line shell and Unix scripting interface for Drupal

Drupal is often compared to a number of commercial content management systems including Crown Peak, ExpressionEngine, Clickability and Site Life in terms of capabilities. None of these systems offer the range of features that can be found in Drupal or the flexible, developer-friendly architecture that allows us to rapidly deploy dynamic web sites. In terms of sustainability, these platforms lack the innovative approach to development, with updates and new features continually being added to the platform. These systems typically do surpass Drupal in terms of out-of-the-box reporting and metrics tools, generally providing views of data that is also stored in other systems.

The standard Drupal installation contains a sample .htaccess file which supports clean URLs. It is easy to miss copying this file, because of the leading “dot”. So before trying to enable Clean URLs, make sure this file exists in your Drupal installation.

Yes, you can use drush.

drush is a command line shell and Unix scripting interface for Drupal.

Allow the use of different database servers using the same code base.

Drupal provides a slim database abstraction layer to provide developers with the ability to support multiple database servers easily. The intent of this layer is to preserve the syntax and power of SQL as much as possible, while letting Drupal control the pieces of queries that need to be written differently for different servers and provide basic security checks.

Most Drupal database queries are performed by a call to db_query() or db_query_range(). Module authors should also consider using pager_query() for queries that return results that need to be presented on multiple pages, and tablesort_sql() for generating appropriate queries for sortable tables.