PHPackages                             jessicadigital/drupalbase - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. jessicadigital/drupalbase

ActiveDrupal-module[Utility &amp; Helpers](/categories/utility)

jessicadigital/drupalbase
=========================

Drupal 8 base module providing assorted functionality.

v1.0.1(10y ago)1106GPL-2.0+PHP

Since Apr 27Pushed 9y ago2 watchersCompare

[ Source](https://github.com/jessicadigital/drupalbase)[ Packagist](https://packagist.org/packages/jessicadigital/drupalbase)[ Docs](https://github.com/jessicadigital/drupalbase)[ RSS](/packages/jessicadigital-drupalbase/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (2)DependenciesVersions (3)Used By (0)

Drupal 8 Base Module
====================

[](#drupal-8-base-module)

This module contains assorted functionality for Drupal 8. These snippets have been collected from various sources and projects, and are useful as a base for common implementations.

No guarantees can be made of the quality / reliability of any code.

Installation
------------

[](#installation)

Add the module via composer:

`composer require jessicadigital/drupalbase`

Then, visit the Modules page in your Drupal admin panel, and enable the drupalbase module.

Features
--------

[](#features)

### 1. OlderNewerBlock

[](#1-oldernewerblock)

This custom block adds a pair of "Older" / "Newer" buttons to the bottom of every node. Content types can be restricted within the admin panel.

To use a custom template, you can create a file at `/themes/yourtheme/templates/block/block--oldernewerblock.html.twig` using the `content.older` and `content.newer` variables to access page URLs, e.g.

```
{% if content.older is not empty %}
    Older article
{% endif %}
{% if content.newer is not empty %}
    Newer article
{% endif %}
```

Note that the block will need to be assigned to a region - normally the bottom of the Content region.

### 2. Query debugging

[](#2-query-debugging)

Drupal 8 does not come with a built in method for debugging EntityFieldQueries. By adding the tag `debugthis` to your query, the raw SQL will be dumped into the `/tmp/drupal_debug.txt` file.

### 3. Sitemap

[](#3-sitemap)

Automatically generates a sitemap of live Pages and Articles at the URL: `/sitemap`.

### 4. Throw a 404 with specific routes

[](#4-throw-a-404-with-specific-routes)

This adds functionality to throw a 404 on routes that begin with 'disable-direct-access' - in a basic sense this replicates the RabbitHole module functionality, which as yet has not been ported to D8. Use with Pathauto module, and set up appropriate patterns for the content you don't wish to be accessed directly.

### 5. Change Login and Logout URLs

[](#5-change-login-and-logout-urls)

By default, Drupal uses the `/user/login` and `/user/logout` URLs for login and logout functionality. For security purposes, it's generally a good idea to change these to something different. The drupalbase plugin changes these paths to `/mylogin` and `/mylogout`.

### 6. Hide default node page

[](#6-hide-default-node-page)

Drupal creates a WordPress-style feed page at the `/node` URL. Many websites do not hide this, allowing access to supposedly hidden content and an unstyled user experience. Drupalbase prevents access to the `/node` page.

###  Health Score

29

—

LowBetter than 60% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 75% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~9 days

Total

2

Last Release

3657d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/28f5332a75c6914b5df831fe4b86812dea2517ea21ffe03b973a0f2d53bf16e1?d=identicon)[jessicadigital](/maintainers/jessicadigital)

---

Top Contributors

[![brynj-digital](https://avatars.githubusercontent.com/u/13166627?v=4)](https://github.com/brynj-digital "brynj-digital (3 commits)")[![jessicadigital](https://avatars.githubusercontent.com/u/17479344?v=4)](https://github.com/jessicadigital "jessicadigital (1 commits)")

### Embed Badge

![Health badge](/badges/jessicadigital-drupalbase/health.svg)

```
[![Health](https://phpackages.com/badges/jessicadigital-drupalbase/health.svg)](https://phpackages.com/packages/jessicadigital-drupalbase)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
