mirror of
https://github.com/flextype/flextype.git
synced 2025-08-07 21:56:33 +02:00
feat(tokens): add basic fields for tokens entries
This commit is contained in:
34
src/flextype/Tokens/Fields/Fields/CreatedAtField.php
Normal file
34
src/flextype/Tokens/Fields/Fields/CreatedAtField.php
Normal file
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* Flextype (https://flextype.org)
|
||||
* Founded by Sergey Romanenko and maintained by Flextype Community.
|
||||
*/
|
||||
|
||||
emitter()->addListener('onTokensFetchSingleHasResult', static function (): void {
|
||||
|
||||
if (! registry()->get('flextype.settings.entries.tokens.fields.created_at.enabled')) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (tokens()->registry()->get('fetch.data.created_at') === null) {
|
||||
tokens()->registry()->set('fetch.data.created_at', (int) filesystem()->file(tokens()->getFileLocation(tokens()->registry()->get('fetch.id')))->lastModified());
|
||||
} else {
|
||||
tokens()->registry()->set('fetch.data.created_at', (int) strtotime((string) tokens()->registry()->get('fetch.data.created_at')));
|
||||
}
|
||||
});
|
||||
|
||||
emitter()->addListener('onTokensCreate', static function (): void {
|
||||
|
||||
if (! registry()->get('flextype.settings.entries.tokens.fields.created_at.enabled')) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (tokens()->registry()->get('create.data.created_at') !== null) {
|
||||
return;
|
||||
}
|
||||
|
||||
tokens()->registry()->set('create.data.created_at', date(registry()->get('flextype.settings.date_format'), time()));
|
||||
});
|
21
src/flextype/Tokens/Fields/Fields/CreatedByField.php
Normal file
21
src/flextype/Tokens/Fields/Fields/CreatedByField.php
Normal file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* Flextype (https://flextype.org)
|
||||
* Founded by Sergey Romanenko and maintained by Flextype Community.
|
||||
*/
|
||||
|
||||
emitter()->addListener('onTokensCreate', static function (): void {
|
||||
|
||||
if (! registry()->get('flextype.settings.entries.tokens.fields.created_by.enabled')) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (tokens()->registry()->get('create.data.created_by') !== null) {
|
||||
return;
|
||||
}
|
||||
|
||||
tokens()->registry()->set('create.data.created_by', '');
|
||||
});
|
21
src/flextype/Tokens/Fields/Fields/IdField.php
Normal file
21
src/flextype/Tokens/Fields/Fields/IdField.php
Normal file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* Flextype (https://flextype.org)
|
||||
* Founded by Sergey Romanenko and maintained by Flextype Community.
|
||||
*/
|
||||
|
||||
emitter()->addListener('onTokensFetchSingleHasResult', static function (): void {
|
||||
|
||||
if (! registry()->get('flextype.settings.entries.tokens.fields.id.enabled')) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (tokens()->registry()->get('fetch.data.id') !== null) {
|
||||
return;
|
||||
}
|
||||
|
||||
tokens()->registry()->set('fetch.data.id', strings(tokens()->registry()->get('fetch.id'))->trimSlashes()->toString());
|
||||
});
|
21
src/flextype/Tokens/Fields/Fields/ModifiedAtField.php
Normal file
21
src/flextype/Tokens/Fields/Fields/ModifiedAtField.php
Normal file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* Flextype (https://flextype.org)
|
||||
* Founded by Sergey Romanenko and maintained by Flextype Community.
|
||||
*/
|
||||
|
||||
emitter()->addListener('onTokensFetchSingleHasResult', static function (): void {
|
||||
|
||||
if (! registry()->get('flextype.settings.entries.tokens.fields.modified_at.enabled')) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (tokens()->registry()->get('fetch.data.modified_at') !== null) {
|
||||
return;
|
||||
}
|
||||
|
||||
tokens()->registry()->set('fetch.data.modified_at', (int) filesystem()->file(tokens()->getFileLocation(tokens()->registry()->get('fetch.id')))->lastModified());
|
||||
});
|
23
src/flextype/Tokens/Fields/Fields/UuidField.php
Normal file
23
src/flextype/Tokens/Fields/Fields/UuidField.php
Normal file
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* Flextype (https://flextype.org)
|
||||
* Founded by Sergey Romanenko and maintained by Flextype Community.
|
||||
*/
|
||||
|
||||
use Ramsey\Uuid\Uuid;
|
||||
|
||||
emitter()->addListener('onTokensCreate', static function (): void {
|
||||
|
||||
if (! registry()->get('flextype.settings.entries.tokens.fields.uuid.enabled')) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (tokens()->registry()->get('create.data.uuid') !== null) {
|
||||
return;
|
||||
}
|
||||
|
||||
tokens()->registry()->set('create.data.uuid', Uuid::uuid4()->toString());
|
||||
});
|
@@ -60,7 +60,22 @@ entries:
|
||||
filename: tokens
|
||||
extension: yaml
|
||||
serializer: yaml
|
||||
fields: []
|
||||
fields:
|
||||
modified_at:
|
||||
enabled: true
|
||||
path: "/src/flextype/Tokens/Fields/ModifiedAtField.php"
|
||||
created_at:
|
||||
enabled: true
|
||||
path: "/src/flextype/Tokens/Fields/CreatedAtField.php"
|
||||
created_by:
|
||||
enabled: true
|
||||
path: "/src/flextype/Tokens/Fields/CreatedByField.php"
|
||||
uuid:
|
||||
enabled: true
|
||||
path: "/src/flextype/Tokens/Fields/UuidField.php"
|
||||
id:
|
||||
enabled: true
|
||||
path: "/src/flextype/Tokens/Fields/IdField.php"
|
||||
media:
|
||||
directory: media
|
||||
filename: media
|
||||
|
Reference in New Issue
Block a user