/** * We catch all field rendering request (from CMS\View\View) here, then we * dispatch to their corresponding FieldHandler. * * If the field object being rendered has been set to "hidden" for the current * view mode it will not be rendered. * * @param \Cake\Event\Event $event The event that was triggered * @param \Field\Model\Entity\Field $field Mock entity * @param array $options Additional array of options * @return string The rendered field */ public function renderField(Event $event, $field, $options = []) { $viewMode = $this->viewMode(); if (isset($field->metadata->view_modes[$viewMode]) && !$field->metadata->view_modes[$viewMode]['hidden']) { $event->stopPropagation(); // We don't want other plugins to catch this $result = (string) $field->render($event->subject()); if (!$field->metadata->view_modes[$viewMode]['shortcodes']) { $result = $event->subject()->stripShortcodes($result); } return $result; } return ''; }