diff --git a/src/flextype/app/Foundation/Entries/Fields/IdField.php b/src/flextype/app/Foundation/Entries/Fields/IdField.php new file mode 100644 index 00000000..ad5ef9a7 --- /dev/null +++ b/src/flextype/app/Foundation/Entries/Fields/IdField.php @@ -0,0 +1,14 @@ +registry->get('flextype.settings.entries.fields.id.enabled')) { + $flextype->emitter->addListener('onEntryAfterInitialized', function () use ($flextype) : void { + $flextype->entries->entry['id'] = isset($flextype->entries->entry['id']) ? (string) $flextype->entries->entry['id'] : (string) ltrim(rtrim($flextype->entries->entry_path, '/'), '/'); + }); +} diff --git a/src/flextype/app/Foundation/Entries/Fields/SlugField.php b/src/flextype/app/Foundation/Entries/Fields/SlugField.php index 0f2f6bb1..c10a09c0 100644 --- a/src/flextype/app/Foundation/Entries/Fields/SlugField.php +++ b/src/flextype/app/Foundation/Entries/Fields/SlugField.php @@ -9,6 +9,7 @@ declare(strict_types=1); if ($flextype->registry->get('flextype.settings.entries.fields.slug.enabled')) { $flextype->emitter->addListener('onEntryAfterInitialized', function () use ($flextype) : void { - $flextype->entries->entry['slug'] = isset($flextype->entries->entry['slug']) ? (string) $flextype->entries->entry['slug'] : (string) ltrim(rtrim($flextype->entries->entry_path, '/'), '/'); + $parts = explode('/', ltrim(rtrim($flextype->entries->entry_path, '/'), '/')); + $flextype->entries->entry['slug'] = isset($flextype->entries->entry['slug']) ? (string) $flextype->entries->entry['slug'] : (string) end($parts); }); } diff --git a/src/flextype/settings.yaml b/src/flextype/settings.yaml index 612d005e..c661fff0 100644 --- a/src/flextype/settings.yaml +++ b/src/flextype/settings.yaml @@ -79,7 +79,9 @@ entries: enabled: true uuid: enabled: true - + id: + enabled: true + # Cache # # - enabled: Set to true to enable caching