PHPackages                             reckless/starter - 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. reckless/starter

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

reckless/starter
================

A utility module for Drupal 8, adding useful generic functionality

1.1.12(5y ago)2250GPL-2.0+PHP

Since Feb 13Pushed 1y ago1 watchersCompare

[ Source](https://github.com/RecklessAgency/starter)[ Packagist](https://packagist.org/packages/reckless/starter)[ Docs](https://github.com/RecklessAgency/starter)[ RSS](/packages/reckless-starter/feed)WikiDiscussions master Synced 4d ago

READMEChangelog (10)DependenciesVersions (25)Used By (0)

Drupal 9 Starter Module
=======================

[](#drupal-9-starter-module)

A utility module for Drupal 9, adding useful generic functionality.

Functionality
-------------

[](#functionality)

The module provides a lot of useful functionality, some of which needs configuring and some which works without any set up. Here follows a brief summary of functionality.

### User login / logout paths

[](#user-login--logout-paths)

The module allows the default user login / logout paths to be customised - useful for security on a Drupal site with no front-facing user roles.

### Copy role permissions

[](#copy-role-permissions)

Allows a user role's permissions to be copied to another role, with the option of preserving any existing permissions in the destination role.

### Disable direct access of entities

[](#disable-direct-access-of-entities)

Many content types and taxonomy vocabulary terms should not be directly accessible, for example a banner content type that is used via an entry reference on another content type. This functionality allows entities with a specific path alias (configurable) - best set up via the pathauto module - to not be viewed directly (if attempted, a 404 response is generated).

### Redirect aliased entities

[](#redirect-aliased-entities)

If a url alias exists for an entity, the user will always be redirected to that alias (rather than viewing via /node/123, for example).

### Exclude content types / bundles from core search

[](#exclude-content-types--bundles-from-core-search)

Allows specific content types to be excluded from the Drupal core search.

### Pre-populate form fields via request parameters

[](#pre-populate-form-fields-via-request-parameters)

If enabled, passing a field name and value as a request parameter will pre-populate an entity form, if a matching field is found.

### Append vocabulary label to term reference autocomplete field results

[](#append-vocabulary-label-to-term-reference-autocomplete-field-results)

If enabled, an autocomplete taxonomy term reference field's results will have the vocabulary appended in square brackets for each match.

### Append bundle label to node reference autocomplete field results

[](#append-bundle-label-to-node-reference-autocomplete-field-results)

If enabled, an autocomplete node reference field's results will have the bundle appended in square brackets for each match.

### Twig theme suggestions

[](#twig-theme-suggestions)

Several additional theme suggestions / hooks are added by the module, based on the path alias of the current request - these are added at the page and region levels.

### Twig extensions

[](#twig-extensions)

The following Twig extensions are provided:

- `get_root()`: Returns the site base path.
- `get_theme_url()`: Returns the current theme URL.
- `display_menu(string $menu_name)`: Renders the passed menu name.
- `place_block(string $block_name)`: Renders the passed block name.
- `place_form(string $form_name)`: Renders the passed form class name.
- `place_webform(string $webform_name)`: Renders the passed webform.
- `place_node(int $node_id, string $display_type)`: Renders the passed node identifier and display type.
- `place_term(Taxonomy_term $term, string $display_type)`: Renders the passed taxonomy term and display type.
- `place_view(string $view_name, int $display_id)`: Renders the passed view name and display identifier.
- `place_paragraphs(string $field_name, obj $node = null)`: Returns a rendered 'Paragraphs' field. The node will be automatically grabbed from the current route unless you specify otherwise.
- `place_entity(string $entity, striong $view_mode = 'full')`: Returns the rendered entity.
- `place_responsive_image(ImageItem $image, string $image_style)`: Returns the render responsive image.
- `place_menu(string $menu_name, int $min_depth, int $max_depth, string $theme)`: Renders the passed menu, with an optional min and max depth, as well as a theme (Twig template).
- `get_taxonomy_terms(string $taxonomy_name, array $extra_fields)`: Returns an array of taxonomy terms from a taxonomy vocabulary name. You may also pass an array of the names of extra fields to pull through.
- `get_active_theme()`: Returns the active theme name.
- `get_image_path(string $image, string $style)`: Returns the image path for the passed image field, optionally for a specific image style.
- `get_url_segment(int $segment, bool underscores = false)`: Returns a segment of the current request's URL. Pass true as the second parameter to convert dashes to underscores.
- `get_current_path()`: Returns the current path.
- `get_theme_setting(string $theme_setting)`: Returns a theme setting's value.
- `get_variable(string $variable)`: Returns a $\_GET variable.
- `get_config(string $config)`: Returns a config.
- `dd($data, bool $exit = true)`: Dumps out `$data` and exits the script, unless a second parameter of false is passed.
- `set_meta({key: value, key: value}[, id])`: Sets meta tags, pass a second parameter to replace an already existing meta tag.
- `get_node_path($nid)`: Returns the path of a given node ID.
- `get_current_lang()`: Returns the current language code.
- `get_rendered_string($render_array)`: Returns a string containing markup for the passed render array
- `get_env($env)`: Wrapper for getenv() function

### Twig filters

[](#twig-filters)

The following Twig filters are provided:

- `slugify`: Makes a string URL-friendly.
- `debugstrip`: Strips HTML tags and trims a string whilst Drupal's in development mode. This stops you from having to litter your template files with `|striptags|trim` which will be ineffective when in production mode.
- `unescape`: decodes html entities in the passed string.

Install
-------

[](#install)

Use composer: `composer require reckless/starter`

**Note:** Drupal Composer Project () should be used.

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance29

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity70

Established project with proven stability

 Bus Factor1

Top contributor holds 55% 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 ~25 days

Total

24

Last Release

2072d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/a763569e7109341ab22c65b5de2021ab9f366f5681d1ba85449abb0288ffff18?d=identicon)[Reckless](/maintainers/Reckless)

---

Top Contributors

[![danjdewhurst](https://avatars.githubusercontent.com/u/25198612?v=4)](https://github.com/danjdewhurst "danjdewhurst (66 commits)")[![brynj-digital](https://avatars.githubusercontent.com/u/13166627?v=4)](https://github.com/brynj-digital "brynj-digital (52 commits)")[![J4Wx](https://avatars.githubusercontent.com/u/3397311?v=4)](https://github.com/J4Wx "J4Wx (2 commits)")

---

Tags

drupaldrupal-9

### Embed Badge

![Health badge](/badges/reckless-starter/health.svg)

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

###  Alternatives

[lullabot/amp

A set of useful classes and utilities to convert html to AMP html (See https://www.ampproject.org/)

3802.9M10](/packages/lullabot-amp)[drupal/core-composer-scaffold

A flexible Composer project scaffold builder.

5341.9M446](/packages/drupal-core-composer-scaffold)[drupal/core-project-message

Adds a message after Composer installation.

2122.6M172](/packages/drupal-core-project-message)[aleksip/plugin-data-transform

Data Transform Plugin for Pattern Lab PHP

34897.4k3](/packages/aleksip-plugin-data-transform)[acquia/drupal-recommended-settings

The composer plugin for adding drupal-recommended-settings for Acquia Cloud.

101.1M4](/packages/acquia-drupal-recommended-settings)[tripal/tripal

Tripal is a toolkit to facilitate construction of online genomic, genetic (and other biological) websites.

709.9k9](/packages/tripal-tripal)

PHPackages © 2026

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