diff --git a/src/flextype/Foundation/Entries.php b/src/flextype/Foundation/Entries.php index a3b5004e..5d5743e3 100755 --- a/src/flextype/Foundation/Entries.php +++ b/src/flextype/Foundation/Entries.php @@ -171,6 +171,7 @@ class Entries // Entry Routable $entry_decoded['routable'] = isset($entry_decoded['routable']) ? (bool) $entry_decoded['routable'] : true; + // Entry Visibility if (isset($entry_decoded['visibility']) && in_array($entry_decoded['visibility'], $this->visibility)) { $entry_decoded['visibility'] = (string) $this->visibility[$entry_decoded['visibility']]; @@ -179,53 +180,38 @@ class Entries } // Parsers - if (isset($entry_decoded['parsers'])) { - foreach ($entry_decoded['parsers'] as $parser_name => $parser_data) { - if (! in_array($parser_name, ['markdown', 'shortcodes'])) { - continue; - } + if (isset($entry_decoded['parsers'])) { + foreach ($entry_decoded['parsers'] as $parser_name => $parser_data) { + if (in_array($parser_name, ['markdown', 'shortcodes'])) { + if (isset($entry_decoded['parsers'][$parser_name]['enabled']) && $entry_decoded['parsers'][$parser_name]['enabled'] === true) { + if (isset($entry_decoded['parsers'][$parser_name]['cache']) && $entry_decoded['parsers'][$parser_name]['cache'] === true) { + $cache = true; + } else { + $cache = false; + } + if (isset($entry_decoded['parsers'][$parser_name]['fields'])) { + if (is_array($entry_decoded['parsers'][$parser_name]['fields'])) { + foreach ($entry_decoded['parsers'][$parser_name]['fields'] as $field) { + if (! in_array($field, $this->system_fields)) { + if ($parser_name == 'markdown') { + if (ArrayDots::keyExists($entry_decoded, $field)) { + ArrayDots::set($entry_decoded, $field, $this->flextype->markdown->parse(ArrayDots::get($entry_decoded, $field), $cache)); + } + } + if ($parser_name == 'shortcodes') { + if (ArrayDots::keyExists($entry_decoded, $field)) { + ArrayDots::set($entry_decoded, $field, $this->flextype->shortcode->parse(ArrayDots::get($entry_decoded, $field), $cache)); + } + } + } + } + } + } + } + } + } + } - if (! isset($entry_decoded['parsers'][$parser_name]['enabled']) || $entry_decoded['parsers'][$parser_name]['enabled'] !== true) { - continue; - } - - if (isset($entry_decoded['parsers'][$parser_name]['cache']) && $entry_decoded['parsers'][$parser_name]['cache'] === true) { - $cache = true; - } else { - $cache = false; - } - - if (! isset($entry_decoded['parsers'][$parser_name]['fields'])) { - continue; - } - - if (! is_array($entry_decoded['parsers'][$parser_name]['fields'])) { - continue; - } - - foreach ($entry_decoded['parsers'][$parser_name]['fields'] as $field) { - if (in_array($field, $this->system_fields)) { - continue; - } - - if ($parser_name === 'markdown') { - if (ArrayDots::has($entry_decoded, $field)) { - ArrayDots::set($entry_decoded, $field, $this->flextype['parser']->parse(ArrayDots::get($entry_decoded, $field), 'markdown', $cache)); - } - } - - if ($parser_name !== 'shortcodes') { - continue; - } - - if (! ArrayDots::has($entry_decoded, $field)) { - continue; - } - - ArrayDots::set($entry_decoded, $field, $this->flextype['parser']->parse(ArrayDots::get($entry_decoded, $field), 'shortcodes', $cache)); - } - } - } // Save decoded entry content into the cache $this->flextype['cache']->save($entry_cache_id, $entry_decoded);