CINXE.COM
Developer documentation | Drupal.org
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" version="XHTML+RDFa 1.0" dir="ltr" xmlns:fb="http://ogp.me/ns/fb#" xmlns:og="http://ogp.me/ns#"> <head profile="http://www.w3.org/1999/xhtml/vocab"> <meta name="HandheldFriendly" content="true" /> <meta name="viewport" content="width=device-width" /> <meta name="MobileOptimized" content="width" /> <!--[if IE]><![endif]--> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="description" content="Documentation for developers that is not specific to a Drupal version." /> <meta name="generator" content="Drupal 7 (https://www.drupal.org)" /> <link rel="image_src" href="https://www.drupal.org/sites/all/themes/bluecheese/images/og.jpg" /> <link rel="canonical" href="https://www.drupal.org/docs/develop" /> <link rel="shortlink" href="https://www.drupal.org/node/2802989" /> <meta property="og:site_name" content="Drupal.org" /> <meta property="og:type" content="article" /> <meta property="og:url" content="https://www.drupal.org/docs/develop" /> <meta property="og:title" content="Develop" /> <meta property="og:description" content="Documentation for developers about tools, processes, and standards that are not specific to a major version of Drupal. For version specific documentation see the Drupal 10 and Drupal 7 documentation." /> <meta property="og:updated_time" content="2023-10-20T17:49:47+00:00" /> <meta property="article:published_time" content="2016-09-20T12:43:48+00:00" /> <meta property="article:modified_time" content="2023-10-20T17:49:47+00:00" /> <title>Developer documentation | Drupal.org</title> <link type="text/css" rel="stylesheet" href="/files/advagg_css/css__vwdslBVX8xVWQ4hx4mWxIC59-lKGPldWkMIm435ispk__msT4O19F5udTbXsVQpyNk2EFYlbaoLwufqq_ZcdDcB0__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.css" media="all" /> <link type="text/css" rel="stylesheet" href="/files/advagg_css/css__Xi-PZpvKTY78w7l1WNsqwUA52MIupHJebCMiX34Ugt0__D_EUHDAfEQdxcLiSDY7hREUWkG1Ge56_h2z3Er8V188__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.css" media="all" /> <link type="text/css" rel="stylesheet" href="/files/advagg_css/css__WF0PRotZAhCcl0aJjY5W2LYj8UwiYuB2dZEFluOh3Tc__FviX13FUB-Ppa2XB29BUIJQZ1Wg-F5XiDE7XD5y7mjQ__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.css" media="all" /> <link type="text/css" rel="stylesheet" href="/files/advagg_css/css__Fx0_w1L9q3nwzXnALG7UfjLF34FGYgJTz636-GWbM6k__0jWLTEHP3h5U5RcXuZcFhf0DdvRdzP3_wzCVNT015Ls__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.css" media="all" /> <link type="text/css" rel="stylesheet" href="/files/advagg_css/css__pWCOPcaPe71p3QyGrAeqEd6dwL_n27prYOjnWQj4jVI__fR6RV6fh70jWL18FMzdVQpGUyYT8iL9Vw8wnms1DdQA__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.css" media="all" /> <link type="text/css" rel="stylesheet" href="/files/advagg_css/css__mlCLWKqAJJ-E-mMVCEmFp-7SE_XsgAxpf7HS-FcVqB0__7Tgy6u_PBeTp3b4s5UumhQPx9mJ_jhs1Z-WvSrqxAHk__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.css" media="all" /> <link type="text/css" rel="stylesheet" href="/files/advagg_css/css__QPp1snPjYt_xYr0c_V0IORcEElkIUBBBrvOB4ZE0Gnw__8jkPtXCYcQv4spuNwtiMBMbZXgCS-2GouDqwnCBDPRE__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.css" media="all" /> </head> <body class="html not-front not-logged-in no-sidebars page-node page-node- page-node-2802989 node-type-guide drupalorg-site-main panels-layout og-context og-context-node og-context-node-2802989" > <div id="skip-link" tabindex="-1"> <a class="element-invisible element-focusable" href="#content">Skip to main content</a> <a class="element-invisible element-focusable skip-link-search" href="#search-block-form">Skip to search</a> </div> <div class="region region-page-top"> <noscript aria-hidden="true"><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W36H8DW" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <div id="drupalorg-crosssite-gdpr">Can we use first and third party cookies and web beacons to <a href="https://www.drupal.org/terms">understand our audience, and to tailor promotions you see</a>?<br><button class="yes">Yes, please</button><button class="no">No, do not track me</button></div> </div> <div id="nav-header"> <div class="menu-nav"> <a class="nav-btn" id="nav-open-btn" href="#block-system-main-menu"><img src="/sites/all/themes/bluecheese/images/icon-w-menu.svg" alt="Main menu"></a> </div> <nav id="navigation-inner" class="container-12" role="navigation"> <div class="region region-navigation"> <div id="block-system-main-menu" class="block block-system block-menu"> <div class="block-inner"> <div class="content"> <div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="/home" title="Drupal.org home page">Drupal.org home</a></li> <li class="expanded"><a href="/about" title="">Why Drupal?</a><div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="/about" title="Learn about Drupal">About Drupal</a></li> <li class="leaf"><a href="/docs/getting-started/understanding-drupal/overview-of-drupal" title="">Platform overview</a></li> <li class="leaf"><a href="/about/11" title="">Drupal 11</a></li> <li class="leaf"><a href="/features/content-authoring" title="">Content Authoring</a></li> <li class="leaf"><a href="/features/content-as-a-service" title="">Content as a Service</a></li> <li class="leaf"><a href="/features/decoupled" title="">Decoupled</a></li> <li class="leaf"><a href="/features/accessibility" title="">Accessibility</a></li> <li class="leaf"><a href="/features/marketing-automation" title="">Marketing Automation</a></li> <li class="leaf"><a href="/features/multilingual" title="">Multilingual</a></li> <li class="leaf"><a href="/features/security" title="">Security</a></li> <li class="leaf"><a href="/features/personalization" title="">Personalization</a></li> <li class="leaf"><a href="/case-studies" title="View case studies to see how your peers have built success on Drupal">Case studies</a></li> <li class="leaf"><a href="https://www.drupal.org/association/beyond-the-build" title="">Video series</a></li> <li class="last leaf"><a href="/about/in-the-news" title="">News</a></li> </ul></div></li> <li class="expanded"><a href="/industries" title="Examples of solutions built on Drupal">Use cases</a><div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="/developers" title="">For Developers</a></li> <li class="leaf"><a href="/marketers" title="Why marketers should choose Drupal for their ambitious digital experiences">For Marketers</a></li> <li class="leaf"><a href="/industries/ecommerce" title="">E-commerce</a></li> <li class="leaf"><a href="/industries/education" title="">Education</a></li> <li class="leaf"><a href="/industries/fintech" title="">FinTech</a></li> <li class="leaf"><a href="/industries/government" title="">Government</a></li> <li class="leaf"><a href="/industries/healthcare" title="">Healthcare</a></li> <li class="leaf"><a href="/industries/hightech" title="">High Tech</a></li> <li class="leaf"><a href="/industries/nonprofit" title="">Nonprofit</a></li> <li class="leaf"><a href="/industries/retail" title="">Retail</a></li> <li class="last leaf"><a href="/industries/travel" title="">Travel</a></li> </ul></div></li> <li class="expanded"><a href="/documentation" title="Resources to help you on your Drupal journey">Resources</a><div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="/docs/getting-started/installing-drupal" title="">Installing Drupal</a></li> <li class="leaf"><a href="/documentation" title="Drupal Documentation">Documentation</a></li> <li class="leaf"><a href="/docs/user_guide/en/index.html" title="The Drupal 8 user guide will get you up to speed in no time">User guide</a></li> <li class="leaf"><a href="/docs/official_docs/local-development-guide" title="">Local Development Guide</a></li> <li class="leaf"><a href="/security" title="Find information about security releases for Drupal">Security</a></li> <li class="leaf"><a href="/news" title="News about the Drupal ecosystem">News</a></li> <li class="leaf"><a href="/planet" title="">Blog</a></li> <li class="last leaf"><a href="/about/drupal-7/d7eol/partners" title="Find help for your Drupal 7 migration">Migrate from D7</a></li> </ul></div></li> <li class="expanded"><a href="/drupal-services" title="Buy Drupal Products and Services">Services</a><div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="/drupal-services" title="View the Drupal service provider marketplace">Find an Agency Partner</a></li> <li class="leaf"><a href="/hosting" title="Find trusted Drupal hosting providers">Find Integrations & Hosting</a></li> <li class="leaf"><a href="/training" title="Find expert Drupal training">Find Drupal Training</a></li> <li class="leaf"><a href="/association/become-a-drupal-certified-partner" title="">Become a Certified Partner</a></li> <li class="last leaf"><a href="/about/drupal-7/d7eol/migration-resource-center/enterprise" title="">Find a D7 migration partner</a></li> </ul></div></li> <li class="expanded"><a href="/community" title="Drupal Community">Community</a><div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="/community/contributor-guide" title="">How to Contribute</a></li> <li class="leaf"><a href="/community" title="View the community portal and find all the ways you can contribute to Drupal">About the Community</a></li> <li class="leaf"><a href="/support" title="">Support</a></li> <li class="leaf"><a href="/project/governance" title="">Community Governance</a></li> <li class="last leaf"><a href="https://jobs.drupal.org" title="">Jobs/Careers</a></li> </ul></div></li> <li class="expanded"><a href="/community/events" title="Find Drupal Events around the world, from the official DrupalCons, to community Camps and Meet-Ups">Events</a><div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="https://events.drupal.org/barcelona2024" title="">DrupalCon Barcelona 2024</a></li> <li class="leaf"><a href="https://events.drupal.org/singapore2024" title="">DrupalCon Singapore 2024</a></li> <li class="leaf"><a href="https://events.drupal.org/atlanta2025" title="">DrupalCon Atlanta 2025</a></li> <li class="last leaf"><a href="/community/events" title="">Community Events</a></li> </ul></div></li> <li class="expanded"><a href="/download" title="Download and Extend Drupal">Download</a><div class="menu-block"><ul class="menu button"><li class="first collapsed"><a href="/download" title="Build your solution on Drupal">Download</a></li> <li class="leaf"><a href="/project/modules" title="Find modules to extend Drupal to meet any need">Modules</a></li> <li class="leaf"><a href="/project/themes" title="Browse themes as a starting point for making your Drupal site your own">Themes</a></li> <li class="leaf"><a href="/project/distributions" title="Use a distribution to start with a version of Drupal customized to purpose">Distributions</a></li> <li class="leaf"><a href="/project/issues" title="Dive into the issues queues and contribute back to Drupal">Issue queues</a></li> <li class="last leaf"><a href="https://git.drupalcode.org/project/drupal" title="">Browse Repository</a></li> </ul></div></li> <li class="expanded"><a href="/association" title="About the Drupal Association - the non-profit that supports the Drupal project">Give</a><div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="/association" title="Learn about the Drupal Association - the nonprofit that supports the Drupal project">Drupal Association</a></li> <li class="leaf"><a href="/association/organization-membership" title="Learn more about the organizations that support the Drupal Association and our mission">Become an Organization Member</a></li> <li class="leaf"><a href="/association/become-a-drupal-certified-partner" title="">Become a Certified Partner</a></li> <li class="leaf"><a href="/association/RippleMakers" title="">Become a Ripple Maker</a></li> <li class="leaf"><a href="/association/donate" title="">Make a Donation</a></li> <li class="leaf"><a href="/association/discover-drupal" title="">Discover Drupal</a></li> <li class="last leaf"><a href="https://www.drupal.org/swag?utm_source=drupalorg&utm_medium=banner&utm_campaign=drupal_swag_shop_2020_09_17" title="Purchase Drupal merchandise and be the coolest kid on the block">Drupal Swag Shop</a></li> </ul></div></li> <li class="last expanded"><a href="/try-drupal" title="Try Drupal">Demo</a><div class="menu-block"><ul class="menu button"><li class="first leaf"><a href="/try-drupal" title="Demo Drupal online with a Drupal platform partner">Demo online</a></li> <li class="last leaf"><a href="/download" title="">Download</a></li> </ul></div></li> </ul></div><a class="close-btn" href="#top">Return to content</a> </div> </div> </div> <div id="block-search-form" class="block block-search"> <div class="block-inner"> <div class="content"> <form action="/docs/develop" method="post" id="search-block-form" accept-charset="UTF-8"><div><div class="container-inline"> <h2 class="element-invisible">Search form</h2> <div class="form-item form-type-textfield form-item-search-block-form"> <label class="element-invisible" for="edit-search-block-form--2">Search </label> <input placeholder="Search…" type="text" id="edit-search-block-form--2" name="search_block_form" value="" size="15" maxlength="128" class="form-text" /> </div> <div class="form-actions form-wrapper" id="edit-actions"><input alt="Search" type="image" id="edit-submit" name="submit" value="Search" src="/sites/all/themes/bluecheese/images/icon-w-search.svg" class="form-submit" /></div><input type="hidden" name="form_build_id" value="form-_hKzAkXzKulzCyR7RmHW6ZOv-Jxpm0viwRdWwijcFgs" /> <input type="hidden" name="form_id" value="search_block_form" /> </div> </div></form> </div> </div> </div> <div id="block-system-user-menu" class="block block-system block-menu"> <div class="block-inner"> <div class="content"> <div class="menu-block"><ul class="menu"><li class="button default"><a href="#block-system-user-menu"><img src="https://www.drupal.org/sites/all/themes/bluecheese/images/icon-w-user.svg" alt="Log in, view profile, and more"></a><ul><li class="first leaf"><a href="/user/login?destination=node/2802989" title="">Log in</a></li> <li class="last leaf"><a href="/user/register?destination=node/2802989" title="">Create account</a></li> </ul></li></ul></div> </div> </div> </div> </div> </nav> </div> <div id="header" class="clearfix"> <div id="header-inner" class="container-12 clearfix"> <div id="header-left"> <div id="site-name"><a href="/documentation">Documentation</a></div> </div> <div id="header-right"> <div class="region region-header"> <div id="block-drupalorg-search-documentation" class="block block-drupalorg"> <div class="block-inner"> <div class="content"> <form class="container-inline" action="/docs/develop" method="post" id="drupalorg-documentation-search-form" accept-charset="UTF-8"><div><input type="hidden" name="form_build_id" value="form-k0e0NJYvcpbwBvX1z6CG0vAsHxu9dPA0LFgnIWWtlZI" /> <input type="hidden" name="form_id" value="drupalorg_documentation_search_form" /> <div class="form-item form-type-textfield form-item-drupalorg-documentation-search-form"> <label class="element-invisible" for="edit-drupalorg-documentation-search-form--2">Search </label> <input placeholder="Search documentation…" type="text" id="edit-drupalorg-documentation-search-form--2" name="drupalorg_documentation_search_form" value="" size="15" maxlength="128" class="form-text" /> </div> <div class="form-actions form-wrapper" id="edit-actions--2"><input alt="Search" type="image" id="edit-submit--2" name="submit" value="Search" src="/sites/all/themes/bluecheese/images/icon-w-search.svg" class="form-submit" /></div></div></form> </div> </div> </div> </div> </div> </div> </div> <div id="banner" data-nosnippet> <div class="region region-banner"> <div id="block-drupalorg-announcements" class="block block-drupalorg"> <div class="block-inner"> <div class="content"> <div class="announcement"><img class="photo" src="https://www.drupal.org/files/styles/grid-2-2x-square/public/announcements/drupalcon-hexagon-icon-280X280px_2_0.png?itok=uzoGg7T8" width="280" height="280" alt="Announcement icon" title="Announcement icon" />Join us at DrupalCon Singapore from 9-11 December 2024, for three exciting days of Drupal content, training, contributions, networking, and the inaugural DrupalCon Splash Awards! Be part of this landmark event as we celebrate and expand Drupal's impact across Asia.</div> <div class="cta"><a href="https://events.humanitix.com/drupalcon-singapore-2024" class="global-announce-banner dc-singapore-registration">Get your tickets now</a></div> </div> </div> </div> </div> </div> <div id="page" class="clearfix"> <div class="breadbox"></div> <div id="main" role="main"> <div id="content" class="clearfix"> <div id="content-inner" class="clearfix"> <div class="region region-content"> <div id="block-system-main" class="block block-system"> <div class="block-inner"> <div class="content"> <div class="panelizer-view-mode node node-full node-guide node-2802989"> <div class="panel-display hydra panel-layout clearfix " > <div class="container preface clearfix panel-panel"> <div class="container-inner preface-inner panel-panel-inner"> </div> </div> <div class="container content clearfix"> <div class="container-inner content-inner panel-panel-inner"> <div class="column-content-region top-right-content column panel-panel"> <div class="column-content-region-inner top-right-content-inner column-inner panel-panel-inner"> <div class="panel-pane pane-custom pane-1 documentation-section-menu" > <div class="pane-content"> <h4>Curated Guides</h4> <ul> <li><a href="/docs/user_guide/en/index.html" rel="nofollow">Drupal User Guide</a></li> <li><a href="/docs/official_docs/en/_evaluator_guide.html" rel="nofollow">Evaluator Guide</a></li> <li><a href="/docs/official_docs/en/_local_development_guide.html" rel="nofollow">Local Development Guide</a></li> </ul> <h4>Drupal Wiki</h4> <ul> <li><a href="/docs" rel="nofollow">Drupal</a></li> <li><a href="/docs/develop" rel="nofollow">Develop</a></li> <li><a href="/docs/7" rel="nofollow">Drupal 7</a></li> </ul> <h4>API Info</h4> <ul> <li><a href="https://api.drupal.org/api/drupal" rel="nofollow">Complete API Reference</a></li> <li><a href="/docs/drupal-apis" rel="nofollow">Drupal APIs</a></li> </ul> <h4><a href="/books" rel="nofollow">Drupal books</a></h4> </div> </div> <div class="panel-separator"></div><div class="panel-pane pane-block pane-og-menu-og-single-menu-block" id="drupal-wiki" > <h2 class="pane-title"> <a href="/drupal-wiki">Drupal Wiki</a> </h2> <div class="pane-content"> <ul class="menu"><li class="first leaf"><a href="/docs">Drupal</a></li> <li class="leaf active-trail"><a href="/docs/develop" class="active-trail active">Develop</a></li> <li class="last leaf"><a href="/docs/7">Drupal 7</a></li> </ul> </div> </div> <div class="panel-separator"></div><div class="panel-pane pane-node-links" > <div class="pane-content"> </div> </div> </div> </div> <div class="column-content-region left-content column panel-panel "> <div class="column-content-region-inner left-content-inner column-inner panel-panel-inner"> <div class="panel-pane pane-page-title" > <div class="pane-content"> <h1>Develop</h1> </div> </div> <div class="panel-separator"></div><div class="panel-pane pane-entity-field pane-node-body" > <div class="pane-content"> <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even"><p>Documentation for developers about tools, processes, and standards that are not specific to a major version of Drupal. For version specific documentation see the <a href="https://www.drupal.org/docs" rel="nofollow">Drupal 10</a> and <a href="https://www.drupal.org/docs/7" rel="nofollow">Drupal 7</a> documentation.</p></div></div></div> </div> </div> <div class="panel-separator"></div><div class="panel-pane pane-section-contents" > <div class="pane-content"> <section><h2><a href="/docs/develop/development-tools">Development tools</a></h2><p>Commonly used tools to aid in Drupal development</p><ul class="guide-contents"><li><a href="/docs/develop/development-tools/development-tools-overview">Development tools overview</a></li> <li><a href="/docs/develop/development-tools/drush">Drush</a></li> <li><a href="/docs/develop/development-tools/editors-and-ides" title="">Editors and IDEs</a></li> <li><a href="/docs/develop/development-tools/drupalpod">DrupalPod</a></li> <li><a href="/docs/develop/development-tools/develop-on-windows">Develop on Windows</a></li> <li><a href="/docs/develop/development-tools/set-up-your-browser-to-make-your-work-easy">Set up your browser to make your work easy</a></li> <li><a href="/docs/develop/development-tools/xhprof-code-profiler">XHProf Code Profiler</a></li> <li><a href="/docs/develop/development-tools/xdebug-debugger">Xdebug debugger</a></li> <li><a href="/docs/develop/development-tools/disabling-and-debugging-caching">Disable caching</a></li> <li><a href="/docs/develop/development-tools/enable-verbose-error-logging-for-better-backtracing-and-debugging">Enable verbose error logging for better backtracing and debugging</a></li> <li><a href="/docs/develop/development-tools/phpstan" title="">PHPStan</a></li> <li><a href="/docs/develop/development-tools/working-efficiently-with-the-command-line">Working efficiently with the command line</a></li> <li><a href="/docs/develop/development-tools/cspell" title="Automated code spell checking via cspell">cspell</a></li> </ul></section><section><h2><a href="/docs/develop/using-composer">Using Composer</a></h2><p>Learn how to use Composer to manage Drupal projects and their dependencies.</p><ul class="guide-contents"><li><a href="/docs/develop/using-composer/using-composer-with-drupal">Using Composer in a Drupal project</a></li> <li><a href="/docs/develop/using-composer/composerjson-explained-in-relation-to-drush-make">Composer in relation to Drush Make</a></li> <li><a href="/docs/develop/using-composer/manage-dependencies">Using Composer to Install Drupal and Manage Dependencies</a></li> <li><a href="/docs/develop/using-composer/add-a-composerjson-file">Add a composer.json file</a></li> <li><a href="/docs/develop/using-composer/starting-a-site-using-drupal-composer-project-templates">Starting a Site Using Drupal Composer Project Templates</a></li> <li><a href="/docs/develop/using-composer/managing-dependencies-for-a-contributed-project">Managing dependencies for a contributed project</a></li> <li><a href="/docs/develop/using-composer/managing-dependencies-for-a-custom-project">Managing dependencies for a custom project</a></li> <li><a href="/docs/develop/using-composer/preparing-your-site-for-composer-2">Preparing your site for Composer 2</a></li> <li><a href="/docs/develop/using-composer/tricks-for-using-composer-in-local-development">Tricks for using Composer in local development</a></li> <li><a href="/docs/develop/using-composer/troubleshooting-composer">Troubleshooting Composer</a></li> <li><a href="/docs/develop/using-composer/using-drupals-composer-scaffold">Using Drupal's Composer Scaffold</a></li> <li><a href="/docs/develop/using-composer/using-packagesdrupalorg">Using packages.drupal.org</a></li> <li><a href="/docs/develop/using-composer/using-the-lenient-composer-plugin">Using the Lenient Composer Plugin</a></li> </ul></section><section><h2><a href="/docs/develop/git">Git version control system</a></h2><p>How to install and use Git for version control in Drupal projects</p><ul class="guide-contents"><li><a href="/docs/develop/git/introduction-to-drupal-git">Introduction to Drupal Git</a></li> <li><a href="/docs/develop/git/setting-up-git-for-drupal">Setting up Git for Drupal</a></li> <li><a href="/docs/develop/git/using-git-to-contribute-to-drupal">Using Git to Contribute to Drupal</a></li> <li><a href="/docs/develop/git/using-gitlab-to-contribute-to-drupal" title="">Using GitLab to Contribute to Drupal</a></li> <li><a href="/docs/develop/git/git-for-drupal-project-maintainers">Git for Drupal project maintainers</a></li> <li><a href="/docs/develop/git/common-development-workflow">Common development workflow</a></li> </ul></section><section><h2><a href="/docs/develop/managing-a-drupalorg-theme-module-or-distribution-project">Managing a drupal.org theme, module, or distribution project</a></h2><p>Information on how to create and manage a module, theme, or distribution project hosted on drupal.org</p><ul class="guide-contents"><li><a href="/docs/develop/managing-a-drupalorg-theme-module-or-distribution-project/creating-a-new-project">Creating a new project</a></li> <li><a href="/docs/develop/managing-a-drupalorg-theme-module-or-distribution-project/creating-distributions" title="">Creating distributions</a></li> <li><a href="/docs/develop/managing-a-drupalorg-theme-module-or-distribution-project/documenting-your-project">Documenting your project</a></li> <li><a href="/docs/develop/managing-a-drupalorg-theme-module-or-distribution-project/maintainership">Maintainership</a></li> <li><a href="/docs/develop/managing-a-drupalorg-theme-module-or-distribution-project/packaging-a-distribution">Packaging a distribution</a></li> <li><a href="/docs/develop/managing-a-drupalorg-theme-module-or-distribution-project/security-coverage">Security Coverage</a></li> </ul></section><section><h2><a href="/docs/develop/security">Security</a></h2><p>Best practices for secure sites and code.</p><ul class="guide-contents"><li><a href="/docs/develop/security/handle-user-input-with-care">Handle user input with care</a></li> <li><a href="/docs/develop/security/why-does-drupal-filter-on-output">Why does Drupal filter on output?</a></li> <li><a href="/docs/develop/security/hmac-best-practices">HMAC best practices</a></li> <li><a href="/docs/develop/security/information-disclosure-in-error-messages-not-a-weakness-path-disclosure-sql">Information disclosure in error messages not a weakness (Path disclosure, SQL error messages, etc.)</a></li> <li><a href="/docs/develop/security/your-drupal-site-got-hacked-now-what">Your Drupal site got hacked. Now what?</a></li> </ul></section><section><h2><a href="/docs/develop/issues">Drupal project issues</a></h2><p>All about how the Drupal project uses "issues" to keep track of bugs and feature requests</p><ul class="guide-contents"><li><a href="/docs/develop/issues/overview-of-projects-and-issues">Overview of projects and issues</a></li> <li><a href="/docs/develop/issues/fields-and-other-parts-of-an-issue">Fields and other parts of an issue</a></li> <li><a href="/docs/develop/issues/issue-procedures-and-etiquette">Issue procedures and etiquette</a></li> </ul></section><section><h2><a href="/docs/develop/local-server-setup">Local server setup</a></h2><p>Local server setup for Drupal.</p><ul class="guide-contents"><li><a href="/docs/develop/local-server-setup/docker-based-development-environments-for-macos-linux-and-windows">Docker-based development environments</a></li> <li><a href="/docs/develop/local-server-setup/linux-development-environment">Linux development environments</a></li> <li><a href="/docs/develop/local-server-setup/mac-os-development-environment">Mac OS development environment</a></li> <li><a href="/docs/develop/local-server-setup/windows-development-environment">Windows development environments</a></li> <li><a href="/docs/develop/local-server-setup/managing-mail-handling-for-development-or-testing">Managing Mail Handling for Development or Testing</a></li> <li><a href="/docs/develop/local-server-setup/how-to-create-a-test-site">How to create a test site</a></li> <li><a href="/docs/develop/local-server-setup/easy-installation-of-a-local-development-server-using-drush-and-aegir-up">Easy installation of a local development server using Drush and Aegir-up</a></li> <li><a href="/docs/develop/local-server-setup/docker-with-solr-cloud-integration">Docker with Solr Cloud Integration</a></li> </ul></section><section><h2><a href="/docs/develop/usability-testing">Usability testing</a></h2><p>Guidelines for conducting and recording usability tests and communicating their results. Also, the findings of previous tests.</p><ul class="guide-contents"><li><a href="/docs/develop/usability-testing/usability-testing">Usability testing</a></li> <li><a href="/docs/develop/usability-testing/results">Drupal usability test results</a></li> <li><a href="/docs/develop/usability-testing/conducting-a-usability-test">Tutorial how-to conduct usability testing</a></li> <li><a href="/docs/develop/usability-testing/recording-a-usability-test">Recording a usability test</a></li> <li><a href="/docs/develop/usability-testing/communicating-the-results">Communicate the results effectively with the community</a></li> </ul></section><section><h2><a href="/docs/develop/standards">Coding standards</a></h2><p>The Drupal Coding Standards apply to code within Drupal and its contributed modules.</p><ul class="guide-contents"><li><a href="/docs/develop/standards/php" title="">PHP</a></li> <li><a href="/docs/develop/standards/accessibility" title="">Accessibility</a></li> <li><a href="/docs/develop/standards/css">CSS</a></li> <li><a href="/docs/develop/standards/javascript-coding-standards">JavaScript</a></li> <li><a href="/docs/develop/coding-standards/markdown-coding-standards">Markdown coding standards</a></li> <li><a href="/docs/develop/standards/sql" title="">SQL</a></li> <li><a href="/docs/develop/coding-standards/twig-coding-standards">Twig coding standards</a></li> <li><a href="/docs/develop/coding-standards/drupal-markup-style-guide">Drupal Markup Style Guide</a></li> <li><a href="/docs/develop/standards/spelling">Spelling</a></li> <li><a href="/docs/develop/coding-standards/configuration-file-coding-standards">Configuration file coding standards</a></li> <li><a href="/docs/develop/coding-standards/composer-package-naming-conventions">Composer package naming conventions</a></li> </ul></section><section><h2><a href="/docs/develop/profiling-drupal">Profiling Drupal</a></h2><p>Benchmarking and profiling Drupal.</p><ul class="guide-contents"><li><a href="/docs/develop/profiling-drupal/benchmarking-and-profiling-drupal">Benchmarking and profiling Drupal</a></li> <li><a href="/docs/develop/profiling-drupal/apache-bench-ab">Apache Bench (ab)</a></li> <li><a href="/docs/develop/profiling-drupal/dummy-content-and-common-gotchas">Dummy content and common gotchas</a></li> <li><a href="/docs/develop/profiling-drupal/profiling-memory-usage">Profiling memory usage</a></li> </ul></section><section><h2><a href="/docs/develop/user-interface-standards">User interface standards</a></h2><p>User Interface standards for Drupal.</p><ul class="guide-contents"><li><a href="/docs/develop/user-interface-standards/form-elements">Form elements</a></li> <li><a href="/docs/develop/user-interface-standards/buttons">Buttons</a></li> <li><a href="/docs/develop/user-interface-standards/dropdown-buttons">Dropbutton</a></li> <li><a href="/docs/develop/user-interface-standards/radio-buttons">Radio buttons</a></li> <li><a href="/docs/develop/user-interface-standards/checkbox-and-checkboxes">Checkboxes</a></li> <li><a href="/docs/develop/user-interface-standards/select-list">Select list</a></li> <li><a href="/docs/develop/user-interface-standards/navigation">Navigation</a></li> <li><a href="/docs/develop/user-interface-standards/contextual-links">Contextual Links</a></li> <li><a href="/docs/develop/user-interface-standards/local-action">Local action</a></li> <li><a href="/docs/develop/user-interface-standards/tabs">Tabs</a></li> <li><a href="/docs/develop/user-interface-standards/details">Details</a></li> <li><a href="/docs/develop/user-interface-standards/fieldsets">Fieldsets</a></li> <li><a href="/docs/develop/user-interface-standards/vertical-tabs">Vertical tabs</a></li> <li><a href="/docs/develop/user-interface-standards/listings">Listings</a></li> <li><a href="/docs/develop/user-interface-standards/table">Table</a></li> <li><a href="/docs/develop/user-interface-standards/interface-text">Interface text</a></li> <li><a href="/docs/develop/user-interface-standards/machine-name">Machine name</a></li> <li><a href="/docs/develop/user-interface-standards/tours">Tours</a></li> <li><a href="/docs/extending-drupal/contributed-modules/contributed-module-documentation/tour/tour-text-standards">Tour text standards</a></li> </ul></section><section><h2><a href="/docs/develop/theming-drupal">Theming Drupal</a></h2><p>How to work with Drupal themes.</p><ul class="guide-contents"><li><a href="/docs/develop/theming-drupal/defining-a-theme-with-an-infoyml-file">Defining a theme with an .info.yml file</a></li> <li><a href="/docs/develop/theming-drupal/drupal-theme-folder-structure">Drupal theme folder structure</a></li> <li><a href="/docs/develop/theming-drupal/adding-regions-to-a-theme">Adding Regions to a Theme</a></li> <li><a href="/docs/develop/theming-drupal/adding-assets-css-js-to-a-drupal-theme-via-librariesyml">Adding stylesheets (CSS) and JavaScript (JS) to a Drupal theme</a></li> <li><a href="/docs/develop/theming-drupal/twig-in-drupal">Twig in Drupal</a></li> <li><a href="/docs/develop/theming-drupal/creating-sub-themes">Creating sub-themes</a></li> <li><a href="/docs/develop/theming-drupal/sub-theming-using-stablestable-9-as-a-base-theme">Using Stable/Stable 9 as a base theme</a></li> <li><a href="/docs/8/theming-drupal-8/classy-themes-css-selectors">Classy themes css selectors</a></li> <li><a href="/docs/develop/theming-drupal/using-single-directory-components" title="">Using Single-Directory Components</a></li> <li><a href="/docs/8/theming-drupal-8/including-default-image-styles-with-your-theme">Including Default Image Styles With Your Theme</a></li> <li><a href="/docs/8/theming-drupal-8/including-part-template">Including Part Template</a></li> <li><a href="/docs/8/theming-drupal-8/using-attributes-in-templates">Using attributes in templates</a></li> <li><a href="/docs/8/theming-drupal-8/modifying-attributes-in-a-theme-file">Modifying attributes in a .theme file</a></li> <li><a href="/docs/theming-drupal/working-with-breakpoints-in-drupal">Working with breakpoints in Drupal</a></li> <li><a href="/docs/8/theming-drupal-8/creating-advanced-theme-settings">Creating advanced theme settings</a></li> <li><a href="/docs/8/theming-drupal-8/theming-differences-between-drupal-6-7-8">Theming differences between Drupal 6, 7 & 8</a></li> <li><a href="/docs/theming-drupal/upgrading-classes-on-7x-themes-to-drupal-8-or-later">Upgrading 7.x themes to 8.x</a></li> <li><a href="/docs/theming-drupal/drupal-twig-conversion-instructions-tplphp-to-htmltwig">Drupal Twig conversion instructions (tpl.php to html.twig)</a></li> <li><a href="/docs/develop/theming-drupal/creating-automation-tools-for-custom-themes-gulpjs">Creating automation tools for custom themes (Gulpjs)</a></li> <li><a href="/docs/develop/theming-drupal/sub-theme-inheritance">Sub-Theme inheritance</a></li> <li><a href="/docs/develop/theming-drupal/update-the-throbber">Update the throbber</a></li> <li><a href="/docs/develop/theming-drupal/z-indexes-in-drupal-8">Z-indexes in Drupal 8</a></li> <li><a href="/docs/develop/theming-drupal/add-meta-description-and-title-programmatically">Add meta description and title programmatically</a></li> </ul></section><section><h2><a href="/docs/develop/creating-modules">Creating modules</a></h2><p>This guide includes tutorials and other information that you need to create modules for Drupal.</p><ul class="guide-contents"><li><a href="/docs/develop/creating-modules/getting-started-background-prerequisites">Getting Started - Background & Prerequisites</a></li> <li><a href="/docs/develop/creating-modules/naming-and-placing-your-drupal-module">Naming and placing your Drupal module</a></li> <li><a href="/docs/develop/creating-modules/let-drupal-know-about-your-module-with-an-infoyml-file">Let Drupal know about your module with an .info.yml file</a></li> <li><a href="/docs/develop/creating-modules/include-default-configuration-in-your-drupal-module">Include default configuration in your Drupal module</a></li> <li><a href="/docs/develop/creating-modules/defining-and-using-your-own-configuration-in-drupal">Defining and using your own configuration in Drupal</a></li> <li><a href="/docs/develop/creating-modules/create-a-custom-page-using-a-controller">Create a custom page</a></li> <li><a href="/docs/creating-modules/creating-custom-blocks" title="Turn https://www.drupal.org/node/2465705 into a sub-guide.">Creating custom blocks</a></li> <li><a href="/docs/creating-custom-modules/creating-custom-field-types-widgets-and-formatters" title="Added menu link.">Creating custom field types, widgets, and formatters</a></li> <li><a href="/docs/develop/creating-modules/subscribe-to-and-dispatch-events" title="Get to know Symfony events in Drupal 8 and find out how they relate to Drupal hooks.">Subscribe to and dispatch events</a></li> <li><a href="/docs/develop/creating-modules/building-a-views-display-style-plugin-for-drupal">Building a Views display style plugin for Drupal</a></li> <li><a href="/docs/develop/creating-modules/adding-assets-css-js-to-a-drupal-module-via-librariesyml">Adding stylesheets (CSS) and JavaScript (JS) to a Drupal module</a></li> <li><a href="/docs/develop/creating-modules/basic-module-building-tutorial-lorem-ipsum-generator">Step by step tutorial "Lorem Ipsum"</a></li> <li><a href="/docs/creating-custom-modules/step-by-step-tutorial-hello-world">Step by step tutorial: Hello World</a></li> <li><a href="/docs/develop/creating-modules/understanding-hooks">Understanding hooks</a></li> </ul></section><section><h2><a href="/docs/develop/drupal-apis">Drupal APIs</a></h2><p>Drupal has many APIs that make it easy to alter and extend, and to help developers with common tasks. Learn how to use them in your code</p><ul class="guide-contents"><li><a href="/docs/develop/drupal-apis/access-policy-api">Access Policy API</a></li> <li><a href="/docs/develop/drupal-apis/ajax-api">AJAX API</a></li> <li><a href="/docs/drupal-apis/authentication-api">Authentication API</a></li> <li><a href="/docs/drupal-apis/batch-api">Batch API</a></li> <li><a href="/docs/drupal-apis/block-api">Block API</a></li> <li><a href="/docs/drupal-apis/cache-api">Cache API</a></li> <li><a href="/docs/drupal-apis/deprecated-ckeditor-4-api-drupal-8-and-9" title="">(deprecated) CKEditor 4 API</a></li> <li><a href="/docs/drupal-apis/ckeditor-5-api">CKEditor 5 API</a></li> <li><a href="/docs/drupal-apis/configuration-api">Configuration API</a></li> <li><a href="/docs/develop/drupal-apis/database-api">Database API</a></li> <li><a href="/docs/drupal-apis/entity-api">Entity API</a></li> <li><a href="/docs/drupal-apis/filter-api">Filter API</a></li> <li><a href="/docs/drupal-apis/form-api">Form API</a></li> <li><a href="/docs/develop/drupal-apis/javascript-api">JavaScript API</a></li> <li><a href="/docs/drupal-apis/layout-api">Layout API</a></li> <li><a href="/docs/drupal-apis/logging-api">Logging API</a></li> <li><a href="/docs/drupal-apis/menu-api">Menu API</a></li> <li><a href="/docs/drupal-apis/middleware-api">Middleware API</a></li> <li><a href="/docs/drupal-apis/migrate-api">Migrate API</a></li> <li><a href="/docs/drupal-apis/plugin-api">Plugin API</a></li> <li><a href="/docs/drupal-apis/restful-web-services-api">RESTful Web Services API</a></li> <li><a href="/docs/drupal-apis/render-api">Render API</a></li> <li><a href="/docs/drupal-apis/responses">Responses</a></li> <li><a href="/docs/drupal-apis/routing-system">Routing system</a></li> <li><a href="/docs/develop/drupal-apis/runtime-assertions">Runtime Assertions</a></li> <li><a href="/docs/drupal-apis/serialization-api">Serialization API</a></li> <li><a href="/docs/drupal-apis/services-and-dependency-injection">Services and dependency injection</a></li> <li><a href="/docs/develop/drupal-apis/state-api">State API</a></li> <li><a href="/docs/drupal-apis/text-editor-api">Text Editor API</a></li> <li><a href="/docs/drupal-apis/tour-api">Tour API</a></li> <li><a href="/docs/develop/drupal-apis/translation-api-code-text">Translation API (Code text)</a></li> <li><a href="/docs/develop/drupal-apis/typed-data-api">Typed Data API</a></li> <li><a href="/docs/drupal-apis/update-api">Update API</a></li> </ul></section><section><h2><a href="/docs/develop/automated-testing">Automated testing</a></h2><p>The testing framework in Drupal (Testing module, previously SimpleTest).</p><ul class="guide-contents"><li><a href="/docs/develop/automated-testing/phpunit-in-drupal">PHPUnit in Drupal</a></li> <li><a href="/docs/develop/automated-testing/browser-testing-using-cypress">Browser testing using Cypress</a></li> <li><a href="/docs/automated-testing/converting-simpletests-to-phpunit-tests">Converting SimpleTests to PHPUnit tests</a></li> <li><a href="/docs/develop/automated-testing/javascript-testing-using-nightwatch">JavaScript testing using Nightwatch</a></li> <li><a href="/docs/develop/automated-testing/performance-tests">Performance tests</a></li> <li><a href="/docs/develop/automated-testing/run-core-development-checks">Run core development checks</a></li> <li><a href="/docs/develop/automated-testing/types-of-tests">Types of tests</a></li> </ul></section><section><h2><a href="/docs/develop/upgrading-and-converting-drupal-7-modules">Upgrading and converting Drupal 7 modules</a></h2><p>This guide provides information and specific steps for upgrading contributed and custom modules from Drupal 7 to the latest version.</p><ul class="guide-contents"><li><a href="/docs/converting-drupal-7-modules-to-drupal-8/intro-before-you-start-setting-up-a-drupal-8-module-dev" title="Helpful overall information and environment setup instructions">Intro & Before you start: Setting up a Drupal 8 module dev environment</a></li> <li><a href="/docs/converting-drupal-7-modules-to-drupal-8/step-1-convert-mymoduleinfo-to-mymoduleinfoyml">Step 1: Convert mymodule.info to mymodule.info.yml</a></li> <li><a href="/docs/8/converting-drupal-7-modules-to-drupal-8/step-2-convert-automated-tests-to-drupal-8">Step 2: Convert automated tests to Drupal 8</a></li> <li><a href="/docs/8/converting-drupal-7-modules-to-drupal-8/step-3-convert-hook_menu-and-forms">Step 3: Convert hook_menu() and forms</a></li> <li><a href="/docs/upgrading-and-converting-drupal-7-modules/step-4-convert-drupal-7-variables-to-drupal-8">Step 4: Convert Drupal 7 Variables to Drupal 8 Configuration</a></li> <li><a href="/docs/upgrading-and-converting-drupal-7-modules/step-5-how-to-upgrade-d7-variables-to-d8s-state">Step 5: How to upgrade D7 variables to D8's state system</a></li> <li><a href="/docs/upgrading-and-converting-drupal-7-modules/debugging-drupal-8-module-upgrades">Debugging Drupal 8 module upgrades</a></li> <li><a href="/docs/converting-drupal-7-modules-to-drupal-8/resources-and-tutorials">Resources and tutorials</a></li> <li><a href="/docs/8/converting-drupal-7-modules-to-drupal-8/d7-to-d8-upgrade-generated-html">D7 to D8 Upgrade: Generated HTML</a></li> <li><a href="/docs/develop/upgrading-and-converting-drupal-7-modules/d7-to-d8-tutorial-pathinfo-module">D7 to D8 tutorial: pathinfo module</a></li> <li><a href="/docs/converting-drupal-7-modules-to-drupal-8/d7-to-d8-upgrade-tutorial-pants-module">D7 to D8 upgrade tutorial: Pants module</a></li> <li><a href="/docs/8/converting-drupal-7-modules-to-drupal-8/d7-to-d8-upgrade-fields-widgets-and-formatters">D7 to D8 upgrade: fields, widgets and formatters</a></li> <li><a href="/docs/converting-drupal-7-modules-to-drupal-8/d7-to-d8-upgrade-tutorial-convert-hook_menu-and-hook">D7 to D8 upgrade tutorial: Convert hook_menu() and hook_menu_alter() to Drupal 8 APIs</a></li> <li><a href="/docs/converting-drupal-7-modules-to-drupal-8/wscci-conversion-guide">WSCCI Conversion Guide</a></li> <li><a href="/docs/converting-drupal-7-modules-to-drupal-8/wscci-conversion-guide-pass-1">WSCCI Conversion Guide - Pass 1</a></li> <li><a href="/docs/converting-drupal-7-modules-to-drupal-8/wscci-conversion-guide-pass-2">WSCCI Conversion Guide - Pass 2</a></li> <li><a href="/docs/8/converting-drupal-7-modules-to-drupal-8/wscci-conversion-guide-pass-3">WSCCI Conversion Guide - Pass 3</a></li> <li><a href="/docs/8/converting-drupal-7-modules-to-drupal-8/wscci-conversion-guide-best-practices">WSCCI Conversion Guide - Best practices</a></li> </ul></section><section><h2><a href="/docs/develop/core-modules-and-themes">Core modules and themes</a></h2><p>Drupal core structure and components.</p><ul class="guide-contents"><li><a href="/docs/core-modules-and-themes/basic-structure-of-drupal">Basic structure of Drupal</a></li> <li><a href="/docs/develop/core-modules-and-themes/core-modules">Core modules</a></li> <li><a href="/docs/core-modules-and-themes/core-themes">Core themes</a></li> <li><a href="/docs/core-modules-and-themes/experimental-extensions" title="">Experimental extensions</a></li> <li><a href="/docs/core-modules-and-themes/deprecated-and-obsolete">Deprecated and obsolete modules and themes</a></li> </ul></section><section><h2><a href="/docs/develop/external-libraries-in-core">External Libraries in Core</a></h2><p>Details about list of external PHP and JS libraries core depends on.</p><ul class="guide-contents"><li><a href="/docs/external-libraries-in-core/external-css-libraries">External CSS Libraries</a></li> <li><a href="/docs/develop/external-libraries-in-core/external-javascript-libraries">External JavaScript Libraries</a></li> <li><a href="/docs/external-libraries-in-core/external-php-libraries">External PHP Libraries</a></li> </ul></section><section><h2><a href="/docs/develop/mobile-drupal-sites">Mobile Drupal sites</a></h2><p>Mobile guide for Drupal 8</p><ul class="guide-contents"><li><a href="/docs/develop/mobile-drupal-sites/front-end-performance">Front-end performance</a></li> <li><a href="/docs/develop/mobile-drupal-sites/mobile-testing-tools">Mobile Testing Tools</a></li> <li><a href="/docs/mobile-drupal-sites/mobile-specific-website">Mobile-specific website</a></li> <li><a href="/docs/mobile-drupal-sites/native-mobile-application-development">Native mobile apps</a></li> <li><a href="/docs/mobile-drupal-sites/related-mobile-technologies">Related mobile technologies</a></li> <li><a href="/docs/mobile-drupal-sites/responsive-design-server-side-components-ress">Responsive Design + Server-side Components (RESS)</a></li> <li><a href="/docs/mobile-drupal-sites/responsive-images">Responsive Images</a></li> <li><a href="/docs/develop/mobile-drupal-sites/responsive-web-design">Responsive web design</a></li> <li><a href="/docs/mobile-drupal-sites/web-based-mobile-apps">Web-based mobile apps</a></li> </ul></section><section><h2><a href="/docs/develop/decoupled-drupal">Decoupled Drupal</a></h2><p>Provide content to decoupled front-ends that are responsible for presenting or displaying content.</p><ul class="guide-contents"><li><a href="/docs/develop/decoupled-drupal/what-is-decoupled">What is decoupled</a></li> <li><a href="/docs/develop/decoupled-drupal/info-for-decision-makers-evaluators">Info for Decision makers / evaluators</a></li> <li><a href="/docs/develop/decoupled-drupal/getting-started-guide-frontend">Getting Started Guide (Frontend)</a></li> <li><a href="/docs/develop/decoupled-drupal/getting-started-guide-backend">Getting Started Guide (Backend)</a></li> <li><a href="/docs/develop/decoupled-drupal/api-client">API Client</a></li> <li><a href="/docs/develop/decoupled-drupal/decoupled-menus" title="">Decoupled menus</a></li> </ul></section> </div> </div> </div> </div> <div class="column-content-region bottom-right-content column panel-panel"> <div class="column-content-region-inner bottom-right-content-inner column-inner panel-panel-inner"> <div class="panel-pane pane-views-panes pane-group-maintainers-panel-pane-1" id="group-maintainers" > <h2 class="pane-title"> Group maintainers </h2> <div class="pane-content"> <div class="view view-group-maintainers view-id-group_maintainers view-display-id-panel_pane_1 view-dom-id-d60e7ea9b6e2f460185f37dca5bb5e38"> <div class="view-content"> <div class="views-row views-row-1"> <a href="/user/79230" title="View eojthebrave's profile"><img src="https://www.drupal.org/files/styles/drupalorg_user_picture/public/user-pictures/picture-79230-1571363757.jpg?itok=wNLF6TzG" width="80" height="80" alt="eojthebrave's picture" /></a> </div> <div class="views-row views-row-2"> <a href="/user/40521" title="View hansfn's profile"><img src="https://www.drupal.org/files/styles/drupalorg_user_picture/public/user-pictures/picture-40521-1628754049.jpg?itok=ajPf510v" width="80" height="80" alt="hansfn's picture" /></a> </div> <div class="views-row views-row-3"> <a href="/user/999848" title="View tvn's profile"><img src="https://www.drupal.org/files/styles/drupalorg_user_picture/public/user-pictures/picture-999848-1465421309.png?itok=Dttibx9t" width="80" height="80" alt="tvn's picture" /></a> </div> </div> </div> </div> </div> </div> </div> </div> </div> <div class="container footer clearfix panel-panel"> <div class="container-inner footer-inner panel-panel-inner"> </div> </div> </div><!-- /.sutro --> </div> </div> </div> </div> </div> </div> </div> <!-- /#content --> </div> <!-- /#column-left --> </div> <!-- /#page --> <div id="footer" role="contentinfo"> <div class="region region-footer"> <div id="block-drupalorg-documentation-license" class="block block-drupalorg"> <div class="block-inner"> <div class="content"> Drupal’s online documentation is © 2000-2024 by the individual contributors and can be used in accordance with the <a href="/terms">Creative Commons License, Attribution-ShareAlike 2.0</a>. PHP code is distributed under the <a href="https://www.gnu.org/licenses/old-licenses/gpl-2.0.html">GNU General Public License</a>. </div> </div> </div> <div id="block-drupalorg-crosssite-infra-partner" class="block block-drupalorg-crosssite"> <div class="block-inner"> <div class="content"> <a href="https://tag1consulting.com" >Infrastructure management for Drupal.org provided by <img src="/files/cta/graphic/tag1_wht.svg" alt="Tag1 logo" ></a> <br /> <span style="font-size: .65em;"><a href="https://d7es.tag1.com/">Need a Drupal 7 extended support partner? Consider Tag1.</a></span> </div> </div> </div> <div id="block-drupalorg-crosssite-drupalorg-footer" class="block block-drupalorg-crosssite"> <div class="block-inner"> <div class="content"> <h4 class="element-invisible">News items</h4><ul class="drupal-news"><li class="0 first"><a href="https://www.drupal.org/news">News</a></li> <li class="1"><a href="https://www.drupal.org/planet" title="News from Drupal community members">Planet Drupal</a></li> <li class="2"><a href="https://www.drupal.org/about/media-kit/social-media" title="Drupal on social media">Social media</a></li> <li class="3"><a href="https://www.drupal.org/subscribe">Sign up for Drupal news</a></li> <li class="4"><a href="https://www.drupal.org/security" title="Announcements from the Drupal Security Team">Security advisories</a></li> <li class="5 last"><a href="https://jobs.drupal.org/" title="Drupal Jobs">Jobs</a></li> </ul><h4 class="element-invisible">Our community</h4><ul class="community"><li class="0 first"><a href="https://www.drupal.org/community">Community</a></li> <li class="1"><span><a href="https://www.drupal.org/drupal-services" title="People and organizations offering Drupal services">Services</a>, <a href="https://www.drupal.org/training" title="People and organizations offering Drupal training">Training</a> & <a href="https://www.drupal.org/hosting" title="Organizations offering Drupal hosting">Hosting</a></span></li> <li class="2"><a href="https://www.drupal.org/community/contributor-guide">Contributor guide</a></li> <li class="3"><a href="https://groups.drupal.org/groups" title="groups.drupal.org">Groups & meetups</a></li> <li class="4"><a href="https://events.drupal.org" title="Upcoming and past DrupalCons">DrupalCon</a></li> <li class="5 last"><a href="https://www.drupal.org/dcoc" title="Drupal code of conduct">Code of conduct</a></li> </ul><h4 class="element-invisible">Documentation</h4><ul class="get-started"><li class="0 first"><a href="https://www.drupal.org/documentation" title="Documentation for working with Drupal">Documentation</a></li> <li class="1"><a href="https://www.drupal.org/docs">Drupal Guide</a></li> <li class="2"><a href="https://www.drupal.org/docs/user_guide/en/index.html">Drupal User Guide</a></li> <li class="3"><a href="https://www.drupal.org/documentation/develop">Developer docs</a></li> <li class="4 last"><a href="https://api.drupal.org/" title="Drupal API reference">API.Drupal.org</a></li> </ul><h4 class="element-invisible">Drupal code base</h4><ul class="download-extend"><li class="0 first"><a href="https://www.drupal.org/download">Download & Extend</a></li> <li class="1"><a href="https://www.drupal.org/project/drupal" title="Download the latest version of the Drupal software">Drupal core</a></li> <li class="2"><a href="https://www.drupal.org/project/project_module" title="Download add-on features and functionality">Modules</a></li> <li class="3"><a href="https://www.drupal.org/project/project_theme" title="Download pre-designed styles for Drupal">Themes</a></li> <li class="4 last"><a href="https://www.drupal.org/project/project_distribution" title="Download a pre-packaged Drupal site">Distributions</a></li> </ul><h4 class="element-invisible">Governance of community</h4><ul class="about"><li class="0 first"><a href="https://www.drupal.org/about">About</a></li> <li class="1"><a href="https://www.drupal.org/about/features/accessibility" title="Our committment to accessibility">Web accessibility</a></li> <li class="2"><a href="https://www.drupal.org/association" title="About the Drupal Association">Drupal Association</a></li> <li class="3"><a href="https://www.drupal.org/drupalorg" title="About Drupal.org">About Drupal.org</a></li> <li class="4"><a href="https://www.drupal.org/terms" title="Drupal.org terms of service">Terms of service</a></li> <li class="5 last"><a href="https://www.drupal.org/privacy" title="Drupal.org privacy policy">Privacy policy</a></li> </ul> </div> </div> </div> <div id="block-block-77" class="block block-block"> <div class="block-inner"> <div class="content"> <p>Drupal is a <a href="/about/trademark">registered trademark</a> of <a href="https://dri.es">Dries Buytaert</a>.</p> </div> </div> </div> </div> </div> <div class="region region-page-bottom"> <script type="text/javascript"> (function(){ window._pxAppId = 'PXVnPBBfwe'; window._pxParam2 = ''; window._pxParam3 = '0'; var p = document.getElementsByTagName('script')[0], s = document.createElement('script'); s.async = 1; s.src = '/VnPBBfwe/init.js'; p.parentNode.insertBefore(s,p); }()); </script> <noscript> <div style="position:fixed; top:0; left:0; display:none" width="1" height="1"> <img src="/VnPBBfwe/xhr/api/v1/collector/noScript.gif?appId=PXVnPBBfwe"> </div> </noscript> </div> <script type="text/javascript" src="/files/advagg_js/js__B0FBwiP97ZnD38IFraZus4upS4KVkMXI3ou0fJ2ZXGA__pPDESRJz9GHsxqQIwQ_V8xnFYEH5jipG2eicsfrdWCs__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <!--[if lte IE 9]> <script type="text/javascript" src="/files/advagg_js/js__79M6UrZjAw3oNGnUjsWip12JsvnUZmJGA3h9LI0kuzE__J0sbXAJNry2-C_ZL2xd0RdVuzwTLvwN-UisIv5RNCvU__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js#ie9-" onload="if(jQuery.isFunction(jQuery.holdReady)){jQuery.holdReady(true);}"></script> <![endif]--> <!--[if gt IE 9]> <script type="text/javascript" src="/files/advagg_js/js__79M6UrZjAw3oNGnUjsWip12JsvnUZmJGA3h9LI0kuzE__J0sbXAJNry2-C_ZL2xd0RdVuzwTLvwN-UisIv5RNCvU__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js#ie10+" defer="defer" onload="if(jQuery.isFunction(jQuery.holdReady)){jQuery.holdReady(true);}"></script> <![endif]--> <!--[if !IE]><!--> <script type="text/javascript" src="/files/advagg_js/js__79M6UrZjAw3oNGnUjsWip12JsvnUZmJGA3h9LI0kuzE__J0sbXAJNry2-C_ZL2xd0RdVuzwTLvwN-UisIv5RNCvU__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer" onload="if(jQuery.isFunction(jQuery.holdReady)){jQuery.holdReady(true);}"></script> <!--<![endif]--> <script type="text/javascript" src="/files/advagg_js/js__pqoYaVR8NVhof-vNXe50j2TKhFv__IihVag_h4G6kus__B4mbn4wICLQjWm1m3-z1kw8F1FtP0cDAHKp00Xy_-88__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <script type="text/javascript" src="/files/advagg_js/js__H5AFmq1RrXKsrazzPq_xPQPy4K0wUKqecPjczzRiTgQ__wor4r9P8YTtQ7p6fbywTetZ47Z_orumIfrrhgxrpLus__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer" onload=" function advagg_mod_1() { // Count how many times this function is called. advagg_mod_1.count = ++advagg_mod_1.count || 1; try { if (advagg_mod_1.count <= 40) { init_drupal_core_settings(); // Set this to 100 so that this function only runs once. advagg_mod_1.count = 100; } } catch(e) { if (advagg_mod_1.count >= 40) { // Throw the exception if this still fails after running 40 times. throw e; } else { // Try again in 1 ms. window.setTimeout(advagg_mod_1, 1); } } } function advagg_mod_1_check() { if (window.init_drupal_core_settings && window.jQuery && window.Drupal) { advagg_mod_1(); } else { window.setTimeout(advagg_mod_1_check, 1); } } advagg_mod_1_check();"></script> <script type="text/javascript" src="/files/advagg_js/js__Oc0wwB7MVRfxtYw6EQM7d9sXj9PAQePoWSzQJ0uTk6c__iXqOGoaPhZHCPEspUr5BC8BwOx5P8B11xv7VOhoUii8__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <script type="text/javascript" src="/files/advagg_js/js__FabcJ6qluktliDejymsuV-FqaN_HyMKGe93c2rO9Ky0__el1ZLGkKneOoCS6OWa01WHuIEsTsXZ46MRLCF390Fbw__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <script type="text/javascript" src="/files/advagg_js/js__YT6D1B_BKxvm6JCH_t9sZNI5L6yITa_DlU5QcSlOkAU__OXobH7d1IP1o3WABlniIrU_-pcJacVSIPUv9bpD-6pQ__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <script type="text/javascript" src="/files/advagg_js/js__xNXZEl6CREO_N4cX50nXAG3o3PPW1f2SzBBHY8rEKV8__vTuPvw9kFyhvW1mq6Cl_PG3exxZo1gi4hMxmKe9QZUI__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <script type="text/javascript" src="/files/advagg_js/js__pLKQd4r7OrHglE7Qkqw53K2UXCqQdhqQ9v0cz7hMCQY__OErfYuQdGbFHcCoLoUW_ESSvaumApNojzjJit8-2xcw__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <script type="text/javascript" src="/files/advagg_js/js__hHUWFbMAa11eJtx5V0ym9o0YBsB1udk34qUT5wr1ihI__ntICfIdx3SsBpfvYB8AF0VuFk7gZjQgBaS1C9CyMj6o__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <script type="text/javascript"> <!--//--><![CDATA[//><!-- function init_drupal_core_settings() {jQuery.extend(Drupal.settings,{"basePath":"\/","pathPrefix":"","setHasJsCookie":0,"ajaxPageState":{"theme":"bluecheese","theme_token":"jf_marZTPH7WpcK5uLj9dJ_f8f5UcUXRVt89QUmDWnI"},"drupalorgGitlab":{"gitlab_base_url":"https:\/\/git.drupalcode.org","base_url":"https:\/\/www.drupal.org"},"better_exposed_filters":{"views":{"group_maintainers":{"displays":{"panel_pane_1":{"filters":[]}}},"documentation_related_content":{"displays":{"related_content_pane":{"filters":[]}}}}},"urlIsAjaxTrusted":{"\/docs\/develop":true},"drupalorgCrosssiteConsentNeeded":true,"ogContext":{"groupType":"node","gid":"2802989"}}); if(jQuery.isFunction(jQuery.holdReady)){jQuery.holdReady(false);}} if(window.jQuery && window.Drupal){init_drupal_core_settings();} //--><!]]> </script> <script type="text/javascript" src="/files/advagg_js/js__2k0CJ3KAQNFTFab3y6ZvNtxs3HLons0Brq7VwvPSkKo__RYlZCliQTuN7U7I5I1Xhn1dAop17g2hAft1wVGgKHGA__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> <script type="text/javascript" src="/files/advagg_js/js__vj0LjvNwl-3K1P9LGT4BGuXCZcAovYsVlVmoJN3TMRg__KW8SiGceRY3sjIKVrffDjf2MK4A5Vp3EDDxVO-4pegI__YaNGWokqa69Wq8hHbkE322PVJ8I-GmpfBsT8LGsMpcI.js" defer="defer"></script> </body> </html>