Browse Source

added iframe content type

bach 1 year ago
parent
commit
e85622f927

+ 1 - 0
composer.json

@@ -26,6 +26,7 @@
         "drupal/geocoder": "^3.20",
         "drupal/geofield": "^1.22",
         "drupal/hreflang": "^1.9",
+        "drupal/iframe": "^2.21",
         "drupal/image_field_caption": "^1.1",
         "drupal/imce": "^2.4",
         "drupal/leaflet": "^2.1",

+ 56 - 1
composer.lock

@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "8ce19b9b3d6c361bfc8cd8ceac3ad67f",
+    "content-hash": "6e11ee7deda8667c1f02cea8f0ac98e3",
     "packages": [
         {
             "name": "ajgl/breakpoint-twig-extension",
@@ -5896,6 +5896,61 @@
                 "source": "https://git.drupalcode.org/project/hreflang"
             }
         },
+        {
+            "name": "drupal/iframe",
+            "version": "2.21.0",
+            "source": {
+                "type": "git",
+                "url": "https://git.drupalcode.org/project/iframe.git",
+                "reference": "8.x-2.21"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://ftp.drupal.org/files/projects/iframe-8.x-2.21.zip",
+                "reference": "8.x-2.21",
+                "shasum": "9eab9a2473fbc9c9717a4d8bd5d49a182e3dd32a"
+            },
+            "require": {
+                "drupal/core": "^8.8 || ^9 || ^10"
+            },
+            "require-dev": {
+                "drupal/token": "^1.0",
+                "mglaman/phpstan-drupal": "^1.1",
+                "palantirnet/drupal-rector": "^0.12",
+                "phpspec/prophecy-phpunit": "^2.0",
+                "phpstan/phpstan": "^1.3",
+                "phpunit/phpunit": "^9.5",
+                "symfony/phpunit-bridge": "^6.0"
+            },
+            "type": "drupal-module",
+            "extra": {
+                "drupal": {
+                    "version": "8.x-2.21",
+                    "datestamp": "1671581281",
+                    "security-coverage": {
+                        "status": "covered",
+                        "message": "Covered by Drupal's security advisory policy"
+                    }
+                }
+            },
+            "notification-url": "https://packages.drupal.org/8/downloads",
+            "license": [
+                "GPL-2.0-or-later"
+            ],
+            "authors": [
+                {
+                    "name": "Steffen Schuessler",
+                    "homepage": "https://www.drupal.org/user/340152",
+                    "email": "drupal@neffets.de",
+                    "role": "Developer"
+                }
+            ],
+            "description": "Defines a simple iframe field type.",
+            "homepage": "http://drupal.org/project/iframe",
+            "support": {
+                "source": "https://git.drupalcode.org/project/iframe"
+            }
+        },
         {
             "name": "drupal/image_field_caption",
             "version": "1.2.0",

+ 22 - 0
config/sync/core.base_field_override.node.iframe.promote.yml

@@ -0,0 +1,22 @@
+uuid: 0c02dd41-2dec-4cbf-b889-d0941b4fcb92
+langcode: fr
+status: true
+dependencies:
+  config:
+    - node.type.iframe
+id: node.iframe.promote
+field_name: promote
+entity_type: node
+bundle: iframe
+label: 'Promu en page d''accueil'
+description: ''
+required: false
+translatable: true
+default_value:
+  -
+    value: 0
+default_value_callback: ''
+settings:
+  on_label: Activé
+  off_label: Désactivé
+field_type: boolean

+ 95 - 0
config/sync/core.entity_form_display.node.iframe.default.yml

@@ -0,0 +1,95 @@
+uuid: 52d6640e-1538-4982-9b6f-4bdc3715879f
+langcode: fr
+status: true
+dependencies:
+  config:
+    - field.field.node.iframe.field_iframe
+    - node.type.iframe
+  module:
+    - iframe
+    - path
+id: node.iframe.default
+targetEntityType: node
+bundle: iframe
+mode: default
+content:
+  created:
+    type: datetime_timestamp
+    weight: 10
+    region: content
+    settings: {  }
+    third_party_settings: {  }
+  field_iframe:
+    type: iframe_urlwidthheight
+    weight: 121
+    region: content
+    settings:
+      headerlevel: '3'
+      class: ''
+      frameborder: '0'
+      scrolling: auto
+      transparency: '0'
+      allowfullscreen: '0'
+      tokensupport: '0'
+      width: ''
+      height: ''
+      expose_class: false
+    third_party_settings: {  }
+  langcode:
+    type: language_select
+    weight: 2
+    region: content
+    settings:
+      include_locked: true
+    third_party_settings: {  }
+  path:
+    type: path
+    weight: 30
+    region: content
+    settings: {  }
+    third_party_settings: {  }
+  promote:
+    type: boolean_checkbox
+    weight: 15
+    region: content
+    settings:
+      display_label: true
+    third_party_settings: {  }
+  status:
+    type: boolean_checkbox
+    weight: 120
+    region: content
+    settings:
+      display_label: true
+    third_party_settings: {  }
+  sticky:
+    type: boolean_checkbox
+    weight: 16
+    region: content
+    settings:
+      display_label: true
+    third_party_settings: {  }
+  title:
+    type: string_textfield
+    weight: -5
+    region: content
+    settings:
+      size: 60
+      placeholder: ''
+    third_party_settings: {  }
+  uid:
+    type: entity_reference_autocomplete
+    weight: 5
+    region: content
+    settings:
+      match_operator: CONTAINS
+      match_limit: 10
+      size: 60
+      placeholder: ''
+    third_party_settings: {  }
+  url_redirects:
+    weight: 50
+    region: content
+    settings: {  }
+    third_party_settings: {  }
+hidden: {  }

+ 44 - 0
config/sync/core.entity_view_display.node.iframe.default.yml

@@ -0,0 +1,44 @@
+uuid: 081de4d4-1ad7-4163-857d-4e8226cf82a3
+langcode: fr
+status: true
+dependencies:
+  config:
+    - field.field.node.iframe.field_iframe
+    - node.type.iframe
+  module:
+    - iframe
+    - panelizer
+    - user
+third_party_settings:
+  panelizer:
+    enable: false
+    custom: false
+    allow: false
+    default: default
+id: node.iframe.default
+targetEntityType: node
+bundle: iframe
+mode: default
+content:
+  field_iframe:
+    type: iframe_only
+    label: hidden
+    settings:
+      url: ''
+      title: ''
+      headerlevel: '3'
+      class: ''
+      frameborder: '0'
+      scrolling: ''
+      transparency: '0'
+      allowfullscreen: '0'
+      tokensupport: '0'
+      width: ''
+      height: ''
+    third_party_settings: {  }
+    weight: 101
+    region: content
+hidden:
+  langcode: true
+  links: true
+  search_api_excerpt: true

+ 24 - 0
config/sync/core.entity_view_display.node.iframe.teaser.yml

@@ -0,0 +1,24 @@
+uuid: f021abc2-af88-46e6-b661-5afea3651e4a
+langcode: fr
+status: true
+dependencies:
+  config:
+    - core.entity_view_mode.node.teaser
+    - field.field.node.iframe.field_iframe
+    - node.type.iframe
+  module:
+    - user
+id: node.iframe.teaser
+targetEntityType: node
+bundle: iframe
+mode: teaser
+content:
+  links:
+    settings: {  }
+    third_party_settings: {  }
+    weight: 100
+    region: content
+hidden:
+  field_iframe: true
+  langcode: true
+  search_api_excerpt: true

+ 1 - 0
config/sync/core.extension.yml

@@ -65,6 +65,7 @@ module:
   help: 0
   honeypot: 0
   hreflang: 0
+  iframe: 0
   image: 0
   image_field_caption: 0
   imce: 0

+ 31 - 0
config/sync/field.field.node.iframe.field_iframe.yml

@@ -0,0 +1,31 @@
+uuid: d0f0bd5d-107d-47a3-bacc-ebee877ca405
+langcode: fr
+status: true
+dependencies:
+  config:
+    - field.storage.node.field_iframe
+    - node.type.iframe
+  module:
+    - iframe
+id: node.iframe.field_iframe
+field_name: field_iframe
+entity_type: node
+bundle: iframe
+label: Iframe
+description: ''
+required: true
+translatable: false
+default_value: {  }
+default_value_callback: ''
+settings:
+  title: null
+  headerlevel: '3'
+  class: ''
+  frameborder: '0'
+  scrolling: auto
+  transparency: '0'
+  allowfullscreen: '1'
+  tokensupport: '2'
+  width: null
+  height: null
+field_type: iframe

+ 19 - 0
config/sync/field.storage.node.field_iframe.yml

@@ -0,0 +1,19 @@
+uuid: 84e70d62-831e-496f-a7a9-e6225d2dd1a4
+langcode: fr
+status: true
+dependencies:
+  module:
+    - iframe
+    - node
+id: node.field_iframe
+field_name: field_iframe
+entity_type: node
+type: iframe
+settings: {  }
+module: iframe
+locked: false
+cardinality: 1
+translatable: true
+indexes: {  }
+persist_with_no_fields: false
+custom_storage: false

+ 11 - 0
config/sync/language.content_settings.node.iframe.yml

@@ -0,0 +1,11 @@
+uuid: 6ab4b8d1-9c74-4a9a-95de-7d6b27a129d9
+langcode: fr
+status: true
+dependencies:
+  config:
+    - node.type.iframe
+id: node.iframe
+target_entity_type_id: node
+target_bundle: iframe
+default_langcode: site_default
+language_alterable: false

+ 20 - 0
config/sync/node.type.iframe.yml

@@ -0,0 +1,20 @@
+uuid: 1e7594b5-4cd0-4ee9-9fab-45a537169d0e
+langcode: fr
+status: true
+dependencies:
+  module:
+    - menu_ui
+third_party_settings:
+  menu_ui:
+    available_menus:
+      - main
+      - tools
+      - footer
+    parent: 'main:'
+name: Iframe
+type: iframe
+description: ''
+help: ''
+new_revision: true
+preview_mode: 1
+display_submitted: false

+ 23 - 0
config/sync/pathauto.pattern.static_iframe.yml

@@ -0,0 +1,23 @@
+uuid: 6a174966-dddf-4f90-96e9-09817460a3ef
+langcode: fr
+status: true
+dependencies:
+  module:
+    - node
+id: static_iframe
+label: 'Static & iframe'
+type: 'canonical_entities:node'
+pattern: '[node:title]'
+selection_criteria:
+  178283d5-16a2-40ce-b88d-2d9ac55b321b:
+    id: 'entity_bundle:node'
+    negate: false
+    uuid: 178283d5-16a2-40ce-b88d-2d9ac55b321b
+    context_mapping:
+      node: node
+    bundles:
+      iframe: iframe
+      static: static
+selection_logic: and
+weight: -5
+relationships: {  }

+ 8 - 0
config/sync/user.role.admin.yml

@@ -6,6 +6,7 @@ dependencies:
     - filter.format.wysiwyg
     - node.type.actualite
     - node.type.evenement
+    - node.type.iframe
     - node.type.programme
     - node.type.projet
     - node.type.ressource
@@ -75,14 +76,17 @@ permissions:
   - 'delete all revisions'
   - 'delete any actualite content'
   - 'delete any evenement content'
+  - 'delete any iframe content'
   - 'delete any programme content'
   - 'delete any projet content'
   - 'delete any ressource content'
   - 'delete any static content'
   - 'delete any theme content'
   - 'delete evenement revisions'
+  - 'delete iframe revisions'
   - 'delete own actualite content'
   - 'delete own evenement content'
+  - 'delete own iframe content'
   - 'delete own programme content'
   - 'delete own projet content'
   - 'delete own ressource content'
@@ -100,6 +104,7 @@ permissions:
   - 'delete theme revisions'
   - 'edit any actualite content'
   - 'edit any evenement content'
+  - 'edit any iframe content'
   - 'edit any programme content'
   - 'edit any projet content'
   - 'edit any ressource content'
@@ -107,6 +112,7 @@ permissions:
   - 'edit any theme content'
   - 'edit own actualite content'
   - 'edit own evenement content'
+  - 'edit own iframe content'
   - 'edit own programme content'
   - 'edit own projet content'
   - 'edit own ressource content'
@@ -135,6 +141,7 @@ permissions:
   - 'revert actualite revisions'
   - 'revert all revisions'
   - 'revert evenement revisions'
+  - 'revert iframe revisions'
   - 'revert programme revisions'
   - 'revert projet revisions'
   - 'revert ressource revisions'
@@ -148,6 +155,7 @@ permissions:
   - 'view actualite revisions'
   - 'view all revisions'
   - 'view evenement revisions'
+  - 'view iframe revisions'
   - 'view own unpublished content'
   - 'view programme revisions'
   - 'view projet revisions'

+ 4 - 0
config/sync/user.role.editeur.yml

@@ -6,6 +6,7 @@ dependencies:
     - filter.format.wysiwyg
     - node.type.actualite
     - node.type.evenement
+    - node.type.iframe
     - node.type.programme
     - node.type.projet
     - node.type.ressource
@@ -52,6 +53,7 @@ permissions:
   - 'delete any ressource content'
   - 'edit any actualite content'
   - 'edit any evenement content'
+  - 'edit any iframe content'
   - 'edit any programme content'
   - 'edit any projet content'
   - 'edit any ressource content'
@@ -65,6 +67,7 @@ permissions:
   - 'revert actualite revisions'
   - 'revert all revisions'
   - 'revert evenement revisions'
+  - 'revert iframe revisions'
   - 'revert programme revisions'
   - 'revert projet revisions'
   - 'revert ressource revisions'
@@ -74,6 +77,7 @@ permissions:
   - 'view actualite revisions'
   - 'view all revisions'
   - 'view evenement revisions'
+  - 'view iframe revisions'
   - 'view own unpublished content'
   - 'view programme revisions'
   - 'view projet revisions'

+ 4 - 2
config/sync/views.view.content.yml

@@ -27,6 +27,7 @@ dependencies:
     - image.style.thumbnail
     - node.type.actualite
     - node.type.evenement
+    - node.type.iframe
     - node.type.programme
     - node.type.projet
     - node.type.ressource
@@ -3473,7 +3474,7 @@ display:
     display_plugin: page
     position: 1
     display_options:
-      title: Statiques
+      title: 'Statiques & Iframe'
       fields:
         node_bulk_form:
           id: node_bulk_form
@@ -3785,6 +3786,7 @@ display:
           plugin_id: bundle
           operator: in
           value:
+            iframe: iframe
             static: static
           group: 1
           exposed: false
@@ -3936,7 +3938,7 @@ display:
       path: admin/content/Statics
       menu:
         type: tab
-        title: Statics
+        title: 'Statics & Iframe'
         description: ''
         weight: -10
         expanded: false

+ 8 - 0
web/modules/custom/editors_menus/editors_menus.links.action.yml

@@ -30,6 +30,14 @@ editors_menus.static_add:
   appears_on:
     - view.content.page_4
 
+editors_menus.iframe_add:
+  route_name: node.add
+  route_parameters:
+    node_type: 'iframe'
+  title: 'Add Iframe'
+  appears_on:
+    - view.content.page_4
+
 editors_menus.ressource_add:
   route_name: node.add
   route_parameters: