From b355b96fc353f14b1874757c53417c19e8b0bcba Mon Sep 17 00:00:00 2001 From: Awilum Date: Tue, 24 May 2022 07:59:22 +0300 Subject: [PATCH] feat(directives): add ability to set `enabled_globaly` setting --- src/flextype/core/Entries/Directives/MarkdownDirective.php | 2 ++ src/flextype/core/Entries/Directives/PhpDirective.php | 4 ++++ .../core/Entries/Directives/ShortcodesDirective.php | 4 ++-- src/flextype/core/Entries/Directives/TextileDirective.php | 2 ++ src/flextype/settings.yaml | 7 ++++--- tests/fixtures/settings/settings.yaml | 4 +--- 6 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/flextype/core/Entries/Directives/MarkdownDirective.php b/src/flextype/core/Entries/Directives/MarkdownDirective.php index dbbc037f..af43ae96 100644 --- a/src/flextype/core/Entries/Directives/MarkdownDirective.php +++ b/src/flextype/core/Entries/Directives/MarkdownDirective.php @@ -28,6 +28,8 @@ emitter()->addListener('onEntriesFetchSingleField', static function (): void { if (is_string($field['value'])) { if (strings($field['value'])->contains('@markdown')) { $field['value'] = strings(parsers()->markdown()->parse($field['value']))->replace('@markdown', '')->trim()->toString(); + } elseif (registry()->get('flextype.settings.entries.directives.markdown.enabled_globally')) { + $field['value'] = parsers()->markdown()->parse($field['value']); } } diff --git a/src/flextype/core/Entries/Directives/PhpDirective.php b/src/flextype/core/Entries/Directives/PhpDirective.php index 5cf77a27..a5dee428 100644 --- a/src/flextype/core/Entries/Directives/PhpDirective.php +++ b/src/flextype/core/Entries/Directives/PhpDirective.php @@ -30,6 +30,10 @@ emitter()->addListener('onEntriesFetchSingleField', static function (): void { ob_start(); eval(strings($field['value'])->replace('@php', '')->trim()->toString()); $field['value'] = ob_get_clean(); + } elseif (registry()->get('flextype.settings.entries.directives.php.enabled_globally')) { + ob_start(); + eval(strings($field['value'])->replace('@php', '')->trim()->toString()); + $field['value'] = ob_get_clean(); } } diff --git a/src/flextype/core/Entries/Directives/ShortcodesDirective.php b/src/flextype/core/Entries/Directives/ShortcodesDirective.php index 429bfc5f..25659f33 100644 --- a/src/flextype/core/Entries/Directives/ShortcodesDirective.php +++ b/src/flextype/core/Entries/Directives/ShortcodesDirective.php @@ -24,11 +24,11 @@ emitter()->addListener('onEntriesFetchSingleField', static function (): void { } $field = entries()->registry()->get('methods.fetch.field'); - + if (is_string($field['value'])) { if (strings($field['value'])->contains('@shortcodes')) { $field['value'] = strings(parsers()->shortcodes()->parse($field['value']))->replace('@shortcodes', '')->trim()->toString(); - } elseif (registry()->get('flextype.settings.entries.parsers.shortcodes.enabled') !== false) { + } elseif (registry()->get('flextype.settings.entries.directives.shortcodes.enabled_globally')) { $field['value'] = parsers()->shortcodes()->parse($field['value']); } } diff --git a/src/flextype/core/Entries/Directives/TextileDirective.php b/src/flextype/core/Entries/Directives/TextileDirective.php index 5174ab3e..59a19a8b 100644 --- a/src/flextype/core/Entries/Directives/TextileDirective.php +++ b/src/flextype/core/Entries/Directives/TextileDirective.php @@ -28,6 +28,8 @@ emitter()->addListener('onEntriesFetchSingleField', static function (): void { if (is_string($field['value'])) { if (strings($field['value'])->contains('@textile')) { $field['value'] = strings(parsers()->textile()->parse($field['value']))->replace('@textile', '')->trim()->toString(); + } elseif (registry()->get('flextype.settings.entries.directives.textile.enabled_globally')) { + $field['value'] = parsers()->textile()->parse($field['value']); } } diff --git a/src/flextype/settings.yaml b/src/flextype/settings.yaml index a6a191fa..a966d023 100644 --- a/src/flextype/settings.yaml +++ b/src/flextype/settings.yaml @@ -74,14 +74,12 @@ errors: # Entries entries: directory: '/entries' - parsers: - shortcodes: - enabled: true vars: debug: false directives: shortcodes: enabled: true + enabled_globally: true path: "/src/flextype/core/Entries/Directives/ShortcodesDirective.php" constants: enabled: true @@ -97,12 +95,15 @@ entries: path: "/src/flextype/core/Entries/Directives/CalcDirective.php" markdown: enabled: true + enabled_globally: false path: "/src/flextype/core/Entries/Directives/MarkdownDirective.php" textile: enabled: true + enabled_globally: false path: "/src/flextype/core/Entries/Directives/TextileDirective.php" php: enabled: true + enabled_globally: false path: "/src/flextype/core/Entries/Directives/PhpDirective.php" types: enabled: true diff --git a/tests/fixtures/settings/settings.yaml b/tests/fixtures/settings/settings.yaml index 0e901a90..55ec625d 100644 --- a/tests/fixtures/settings/settings.yaml +++ b/tests/fixtures/settings/settings.yaml @@ -70,14 +70,12 @@ errors: # Entries entries: directory: '/entries' - parsers: - shortcodes: - enabled: true vars: debug: false directives: shortcodes: enabled: true + enabled_globally: true path: "/src/flextype/core/Entries/Directives/ShortcodesDirective.php" constants: enabled: true