Loading src/Plugin/Field/FieldFormatter/IframeDefaultFormatter.php +20 −12 Original line number Diff line number Diff line Loading @@ -43,13 +43,14 @@ class IframeDefaultFormatter extends FormatterBase { */ public function viewElements(FieldItemListInterface $items, $langcode) { $elements = []; $field_settings = $this->getFieldSettings(); // settings from type $settings = $this->getSettings(); $entity = $items->getEntity(); // field_settings on concrete field $field_settings = $this->getFieldSettings(); #\iframe_debug(3, __METHOD__, $settings); \iframe_debug(3, __METHOD__, $field_settings); \iframe_debug(3, __METHOD__, $settings); \iframe_debug(3, __METHOD__, $entity); // \iframe_debug(3, __METHOD__, $items->getValue()); \iframe_debug(3, __METHOD__, $items->getValue()); $allow_attributes = [ 'url', 'width', 'height', 'title' ]; foreach ($items as $delta => $item) { if (empty($item->url)) { continue; Loading @@ -57,6 +58,12 @@ class IframeDefaultFormatter extends FormatterBase { if (!isset($item->title)) { $item->title = ''; } foreach($field_settings as $field_key => $field_val) { if (in_array($field_key, $allow_attributes)) { continue; } $item->{$field_key} = $field_val; } $elements[$delta] = self::iframeIframe($item->title, $item->url, $item); // Tokens can be dynamic, so its not cacheable. if (isset($settings['tokensupport']) && $settings['tokensupport']) { Loading Loading @@ -123,18 +130,19 @@ class IframeDefaultFormatter extends FormatterBase { } // Policy attribute. if (!empty($item->allowfullscreen) && $item->allowfullscreen) { $allow[] = 'fullscreen'; } $allow[] = 'accelerometer'; $allow[] = 'autoplay'; $allow[] = 'camera'; $allow[] = 'microphone'; $allow[] = 'payment'; $allow[] = 'accelerometer'; $allow[] = 'geolocation'; $allow[] = 'encrypted-media'; $allow[] = 'geolocation'; $allow[] = 'gyroscope'; $allow[] = 'microphone'; $allow[] = 'payment'; $allow[] = 'picture-in-picture'; $options['allow'] = implode(';', $allow); if (!empty($item->allowfullscreen) && $item->allowfullscreen) { $options['allowfullscreen'] = 'allowfullscreen'; } if (\Drupal::moduleHandler()->moduleExists('token')) { // Token Support for field "url" and "title". Loading src/Plugin/Field/FieldFormatter/IframeOnlyFormatter.php +11 −0 Original line number Diff line number Diff line Loading @@ -21,11 +21,22 @@ class IframeOnlyFormatter extends IframeDefaultFormatter { */ public function viewElements(FieldItemListInterface $items, $langcode) { $elements = []; // settings from type $settings = $this->getSettings(); // field_settings on concrete field $field_settings = $this->getFieldSettings(); $allow_attributes = [ 'url', 'width', 'height', 'title' ]; foreach ($items as $delta => $item) { if (empty($item->url)) { continue; } foreach($field_settings as $field_key => $field_val) { if (in_array($field_key, $allow_attributes)) { continue; } $item->{$field_key} = $field_val; } if (!(property_exists($item, 'title') && $item->title !== null)) { $item->title = ''; } Loading Loading
src/Plugin/Field/FieldFormatter/IframeDefaultFormatter.php +20 −12 Original line number Diff line number Diff line Loading @@ -43,13 +43,14 @@ class IframeDefaultFormatter extends FormatterBase { */ public function viewElements(FieldItemListInterface $items, $langcode) { $elements = []; $field_settings = $this->getFieldSettings(); // settings from type $settings = $this->getSettings(); $entity = $items->getEntity(); // field_settings on concrete field $field_settings = $this->getFieldSettings(); #\iframe_debug(3, __METHOD__, $settings); \iframe_debug(3, __METHOD__, $field_settings); \iframe_debug(3, __METHOD__, $settings); \iframe_debug(3, __METHOD__, $entity); // \iframe_debug(3, __METHOD__, $items->getValue()); \iframe_debug(3, __METHOD__, $items->getValue()); $allow_attributes = [ 'url', 'width', 'height', 'title' ]; foreach ($items as $delta => $item) { if (empty($item->url)) { continue; Loading @@ -57,6 +58,12 @@ class IframeDefaultFormatter extends FormatterBase { if (!isset($item->title)) { $item->title = ''; } foreach($field_settings as $field_key => $field_val) { if (in_array($field_key, $allow_attributes)) { continue; } $item->{$field_key} = $field_val; } $elements[$delta] = self::iframeIframe($item->title, $item->url, $item); // Tokens can be dynamic, so its not cacheable. if (isset($settings['tokensupport']) && $settings['tokensupport']) { Loading Loading @@ -123,18 +130,19 @@ class IframeDefaultFormatter extends FormatterBase { } // Policy attribute. if (!empty($item->allowfullscreen) && $item->allowfullscreen) { $allow[] = 'fullscreen'; } $allow[] = 'accelerometer'; $allow[] = 'autoplay'; $allow[] = 'camera'; $allow[] = 'microphone'; $allow[] = 'payment'; $allow[] = 'accelerometer'; $allow[] = 'geolocation'; $allow[] = 'encrypted-media'; $allow[] = 'geolocation'; $allow[] = 'gyroscope'; $allow[] = 'microphone'; $allow[] = 'payment'; $allow[] = 'picture-in-picture'; $options['allow'] = implode(';', $allow); if (!empty($item->allowfullscreen) && $item->allowfullscreen) { $options['allowfullscreen'] = 'allowfullscreen'; } if (\Drupal::moduleHandler()->moduleExists('token')) { // Token Support for field "url" and "title". Loading
src/Plugin/Field/FieldFormatter/IframeOnlyFormatter.php +11 −0 Original line number Diff line number Diff line Loading @@ -21,11 +21,22 @@ class IframeOnlyFormatter extends IframeDefaultFormatter { */ public function viewElements(FieldItemListInterface $items, $langcode) { $elements = []; // settings from type $settings = $this->getSettings(); // field_settings on concrete field $field_settings = $this->getFieldSettings(); $allow_attributes = [ 'url', 'width', 'height', 'title' ]; foreach ($items as $delta => $item) { if (empty($item->url)) { continue; } foreach($field_settings as $field_key => $field_val) { if (in_array($field_key, $allow_attributes)) { continue; } $item->{$field_key} = $field_val; } if (!(property_exists($item, 'title') && $item->title !== null)) { $item->title = ''; } Loading