Skip to content

Latest commit

 

History

History
50 lines (36 loc) · 2.03 KB

File metadata and controls

50 lines (36 loc) · 2.03 KB

Directus Operation Extension: Unique Slugify

This Directus operation extension ensures that the slug (another field can be selected) field of a collection is unique by generating a slug based on the title (another field can be selected) field. If the generated slug already exists, it appends a numeric suffix to make it unique.

Features

  • Generates a slug from the title field.
  • Ensures the slug is unique by appending a numeric suffix.
  • Uses date_updated and date_created to determine the most recent slug for uniqueness.

Installation

  1. Package Installation:

    • Install the package using the choice of your package manager (please use the package manager that Directus uses in your Directus folder)
      • npm i directus-operation-unique-slugify
      • pnpm install directus-operation-unique-slugify
      • yarn add directus-operation-unique-slugify
    • For docker version of Directus please use below:
      • pnpm install directus-operation-unique-slugify
  2. Restart Directus:

    • Restart your Directus instance to load the new operation extension.

Configuration

  1. Navigate to Flows:

    • Go to the Directus Admin interface and navigate to Settings > Flows.
  2. Create a New Flow:

    • Click on Create Flow.
    • Add a trigger that fits your requirement, such as Create or Update event on your target collection.
  3. Add the Operation:

    • Add a new operation to the flow.
    • Select Unique Slugify from the list of available operations.
    • Configure the options:
      • Field to be used for slugging
      • Field that slug should be assigned
      • Define a character to be used space replacement
  4. Save and Activate:

    • Save the flow and ensure it is activated.

Example Configuration

If your base field name is title, your slug field is slug, and the space replacement separator you want to use is -, configure the options as follows:

  • Field to be used for slugging: title
  • Field that slug should be assigned: slug
  • Define a character to be used space replacement: -