Slugger plugin for Craft CMS 3.x hashes the Id of an entry when it is saved and replaces the slug.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src
.craftplugin
.gitignore
CHANGELOG.md
LICENSE.md
README.md
composer.json

README.md

Slugger for Craft CMS 3.x

Slugger is a Craft plugin that hashes the Id of an entry when it is saved and replaces the slug with the hash.

This plugin uses the Hashids library to generate the slugs.

This plugin copies heavily from Alec Ritson's Slugged plugin for Craft 2. Thanks, Alec. 😃 (The section override works in this version btw.)

Requirements

This plugin requires Craft CMS 3.0.0 or later.

Installation

Visit the Plugin Store in your Craft 3 control panel and install from there. Slugger costs nothing. Visit the Plugin Store in your Craft 3 control panel. It costs nothing.

Or...

  1. Open your terminal and go to your Craft project:

     cd /path/to/project
    
  2. Then tell Composer to load the plugin:

     composer require madhouse/slugger
    
  3. In the Control Panel, go to Settings → Plugins and click the “Install” button for Slugger.

Configuration

All configuration is done in the plugin settings page in the admin area.

Plugin settings

Salt
Set the salt to use when hashing

Default: Change me to something else

Default length
The length of the hash, this will be overwritten with any length defined for a section

Default: 8

Alphabet
The characters to use when generating the slug.

Default: abcdefghijklmnopqrstuvwxyz123456789

Sections
The only sections that will be listed are editable sections (no singles obvs). If you add a length to a section this will override the default set above. A section must be enabled for the hashing to happen, regardless of whether you add a length override or not.

Using Slugger

Enable your section in the settings. Make a new entry. Save it. Voila... hashed slug.

You can decode the hash using the decode template variable.

  {# get the hash value from the url #}
  {% set hash = craft.app.request.getSegment(2) %}
    
  {# use slugger’s decode method to get the ID #}
  {% set entryId = craft.slugger.decode(hash) %}

Support, issues, feedback

If you experience any problems please create a new issue here on the repo.

Brought to you by Madhouse