CpMultiplane Docs

Search

1 result

UniqueSlugs
addon cockpit uniqueslugs created:

UniqueSlugs

Unique slugs for collections in Cockpit CMS

Installation

Copy this repository into /addons and name it UniqueSlugs or

cd path/to/cockpit
git clone https://github.com/raffaelj/cockpit_UniqueSlugs.git addons/UniqueSlugs

How to use

Use the GUI. If you are no admin, your user group needs manage rights.

uniqueslugs-gui

Or add these options to cockpit/config/config.yaml to specify the collections and field names for slug generation:

# UniqueSlugs example
unique_slugs:
    collections:
        pages     : title
        products  : name

# ACL example
groups:
    manager:
        cockpit:
            backend: true
        uniqueslugs:
            manage: true

all options:

# unique slugs
unique_slugs:
    slug_name      : slug        # default: "slug"
    placeholder    : page        # default: "entry"
    check_on_update: true        # default: false, unique checks on each update (if user changes slug by hand)
    delimiter      : |           # default: "|", is used for nested fields
    collections    :
        pages      : title
        products   : name
        something  :             # use multiple fields as fallbacks
            - title
            - name
            - image|meta|title   # use nested fields for slugs
    localize       :             # for localized fields, omitted if not set
        pages      : title       # field name without suffix ("_de")
        products   : name
        something  :             # use multiple fields as fallbacks
            - title
            - name
            - image|meta|title   # use nested fields for slugs

Notes:

Hardcoded settings in the config file will override gui settings.

Don't set slug_name: fieldname_slug if you also set {"slug": true} in the fieldname options for some reason. It should work, but it fails on multilingual setups (explanation).

Your collection can have a visible field named "slug", if you want to edit it by hand.

The builtin option to sluggify text fields via options {"slug": true} in the backend uses Javascript. If you want unique slugs, that option is not necessary anymore.

The code for this addon is inspired by a gist from fabianmu.

Thanks to fabianmu and aheinze