Skip to content

vyg/silverstripe-sluggable

 
 

Repository files navigation

Sluggable

Build Status Scrutinizer Code Quality Build Status CircleCI

codecov.io

Latest Stable Version Latest Unstable Version Total Downloads License Monthly Downloads Daily Downloads composer.lock

GitHub Code Size GitHub Repo Size GitHub Last Commit GitHub Activity GitHub Issues

codecov.io

This SilverStripe module allows the developer to add a field that will be converted to a slug (kebab case) when saved

Configuration

For any given class that needs slugs, the extension Suilven\Sluggable\Extension\Sluggable needs added and also the name of the field name to slug, under the key slug. The slug is stored in a field called Slug on the data object after a write is executed.

---
Name: cricket-slugs
---

Suilven\CricketSite\Model\Club:
  extensions:
    - Suilven\Sluggable\Extension\Sluggable
  slug: Name

Suilven\CricketSite\Model\Player:
  extensions:
    - Suilven\Sluggable\Extension\Sluggable
  slug: DisplayName

Enable Configuration

vendor/bin/sake dev/build flush=all

Then reload the browser, <your site>/admin?flush=all

Now when the above models are saved, they will be saved with a slug associated with them.

Install

Via Composer

$ composer require suilven/sluggable

Usage

Assuming the configuration above:

$club = new Suilven\CricketSite\Model\Club();
$club->Name = 'GitHub Cricket Club';
$club->write();
echo $club->Slug

The value output will be github-cricket-club

Change log

Please see CHANGELOG for more information on what has changed recently.

Testing

$ composer test

Contributing

Please see CONTRIBUTING and CODE_OF_CONDUCT for details.

Security

If you discover any security related issues, please email gordon.b.anderson@gmail.com instead of using the issue tracker.

Credits

  • [Gordon Anderson][link-author]

License

The MIT License (MIT). Please see License File for more information.

About

Configure a field of a DataObject as sluggable, and when saved the slug is auto populated

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 73.1%
  • Dockerfile 21.5%
  • Shell 5.4%