diff --git a/composer.patches.json b/composer.patches.json
index 2e33699c..cc72d452 100644
--- a/composer.patches.json
+++ b/composer.patches.json
@@ -4,10 +4,11 @@
"Disable drupal/core from scaffolding without being in composer.extra.drupal-scaffold.allowed-packages in that way one has more control of when new scaffolding is added.": "./patches/drupal.core-composer-scaffold.implicit-drupal-core-disable.patch"
},
"drupal/default_content": {
- "/project/default_content/issues/2698425:: Do not reimport existing entities (patch download b/c of it being from an MR)": "patches/deafult_content_2698425.patch",
"/project/default_content/issues/3203014: BaseFieldOverride cause inconsistencies during export": "https://www.drupal.org/files/issues/2022-12-13/base_field_override_inconsistencies-3203014-9.patch",
- "/project/default_content/issues/3200212: Import should overwrite files": "https://www.drupal.org/files/issues/2024-08-27/default_content-3200212-25.patch",
- "/project/default_content/issues/2943458: Exporting passwords": "https://www.drupal.org/files/issues/2022-02-18/default_content-2943458-9.patch"
+ "/project/default_content/issues/2943458: Exporting passwords": "https://www.drupal.org/files/issues/2022-02-18/default_content-2943458-9.patch",
+ "/project/default_content/issues/3180348: Profile entities have circular dependencies": "https://www.drupal.org/files/issues/2025-01-01/default_content-profile-entities-have-circular-dependencies-3180348-7.patch",
+ "/project/default_content/issues/3200212: Import should overwrite files": "patches/default_content-3200212-25.patch",
+ "Created hook to exclude content from being exported": "patches/default_content-hook-exclude-content.patch"
},
"drupal/embedded_content": {
"Convert html to valid xml": "patches/embedded_content-convert-html-valid-xml.patch"
diff --git a/config/sync/core.base_field_override.node.guide_navigation.promote.yml b/config/sync/core.base_field_override.node.guide_navigation.promote.yml
new file mode 100644
index 00000000..0b83b82a
--- /dev/null
+++ b/config/sync/core.base_field_override.node.guide_navigation.promote.yml
@@ -0,0 +1,22 @@
+uuid: a1068024-c5f1-416f-8bc9-28048fbcd2e2
+langcode: en
+status: true
+dependencies:
+ config:
+ - node.type.guide_navigation
+id: node.guide_navigation.promote
+field_name: promote
+entity_type: node
+bundle: guide_navigation
+label: 'Promoted to front page'
+description: ''
+required: false
+translatable: true
+default_value:
+ -
+ value: 0
+default_value_callback: ''
+settings:
+ on_label: 'On'
+ off_label: 'Off'
+field_type: boolean
diff --git a/config/sync/core.base_field_override.node.guide_navigation.status.yml b/config/sync/core.base_field_override.node.guide_navigation.status.yml
new file mode 100644
index 00000000..dd99fe40
--- /dev/null
+++ b/config/sync/core.base_field_override.node.guide_navigation.status.yml
@@ -0,0 +1,22 @@
+uuid: d930a71d-81af-45a1-99f4-18db2af2d1d4
+langcode: en
+status: true
+dependencies:
+ config:
+ - node.type.guide_navigation
+id: node.guide_navigation.status
+field_name: status
+entity_type: node
+bundle: guide_navigation
+label: Published
+description: ''
+required: false
+translatable: true
+default_value:
+ -
+ value: 0
+default_value_callback: ''
+settings:
+ on_label: 'On'
+ off_label: 'Off'
+field_type: boolean
diff --git a/config/sync/core.entity_form_display.node.guide_navigation.default.yml b/config/sync/core.entity_form_display.node.guide_navigation.default.yml
new file mode 100644
index 00000000..c43647c1
--- /dev/null
+++ b/config/sync/core.entity_form_display.node.guide_navigation.default.yml
@@ -0,0 +1,139 @@
+uuid: 31864a7f-f8df-4e04-bd14-f8b75be8f6fe
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.field.node.guide_navigation.field_guide_navigation
+ - field.field.node.guide_navigation.field_guide_start_page
+ - field.field.node.guide_navigation.field_parent_guide
+ - field.field.node.guide_navigation.field_show_in_page_nav
+ - field.field.node.guide_navigation.field_show_next_previous
+ - field.field.node.guide_navigation.field_show_read_time
+ - node.type.guide_navigation
+ module:
+ - content_moderation
+ - field_group
+ - paragraphs
+third_party_settings:
+ field_group:
+ group_settings:
+ children:
+ - field_guide_start_page
+ - field_show_next_previous
+ - field_show_read_time
+ - field_show_in_page_nav
+ - field_parent_guide
+ label: Settings
+ region: content
+ parent_name: ''
+ weight: 2
+ format_type: fieldset
+ format_settings:
+ classes: ''
+ show_empty_fields: false
+ id: ''
+ label_as_html: false
+ description: ''
+ required_fields: true
+id: node.guide_navigation.default
+targetEntityType: node
+bundle: guide_navigation
+mode: default
+content:
+ created:
+ type: datetime_timestamp
+ weight: 5
+ region: content
+ settings: { }
+ third_party_settings: { }
+ field_guide_navigation:
+ type: paragraphs
+ weight: 3
+ region: content
+ settings:
+ title: Paragraph
+ title_plural: Paragraphs
+ edit_mode: open
+ closed_mode: summary
+ autocollapse: none
+ closed_mode_threshold: 0
+ add_mode: dropdown
+ form_display_mode: default
+ default_paragraph_type: ''
+ features:
+ collapse_edit_all: collapse_edit_all
+ duplicate: duplicate
+ third_party_settings: { }
+ field_guide_start_page:
+ type: options_select
+ weight: 1
+ region: content
+ settings: { }
+ third_party_settings: { }
+ field_parent_guide:
+ type: options_select
+ weight: 5
+ region: content
+ settings: { }
+ third_party_settings: { }
+ field_show_in_page_nav:
+ type: boolean_checkbox
+ weight: 4
+ region: content
+ settings:
+ display_label: true
+ third_party_settings: { }
+ field_show_next_previous:
+ type: boolean_checkbox
+ weight: 2
+ region: content
+ settings:
+ display_label: true
+ third_party_settings: { }
+ field_show_read_time:
+ type: boolean_checkbox
+ weight: 3
+ region: content
+ settings:
+ display_label: true
+ third_party_settings: { }
+ moderation_state:
+ type: moderation_state_default
+ weight: 6
+ region: content
+ settings: { }
+ third_party_settings: { }
+ status:
+ type: boolean_checkbox
+ weight: 7
+ region: content
+ settings:
+ display_label: true
+ third_party_settings: { }
+ title:
+ type: string_textfield
+ weight: 0
+ region: content
+ settings:
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+ uid:
+ type: entity_reference_autocomplete
+ weight: 4
+ region: content
+ settings:
+ match_operator: CONTAINS
+ match_limit: 10
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+hidden:
+ path: true
+ promote: true
+ publish_on: true
+ publish_state: true
+ sticky: true
+ unpublish_on: true
+ unpublish_state: true
+ url_redirects: true
diff --git a/config/sync/core.entity_form_display.node.guides.default.yml b/config/sync/core.entity_form_display.node.guides.default.yml
index 3bc94997..ad19980a 100644
--- a/config/sync/core.entity_form_display.node.guides.default.yml
+++ b/config/sync/core.entity_form_display.node.guides.default.yml
@@ -7,6 +7,8 @@ dependencies:
- field.field.node.guides.field_deck
- field.field.node.guides.field_featured_image
- field.field.node.guides.field_glossary
+ - field.field.node.guides.field_guide_nav_ref
+ - field.field.node.guides.field_guide_nav_title
- field.field.node.guides.field_guide_weight
- field.field.node.guides.field_kicker
- field.field.node.guides.field_page_weight
@@ -18,11 +20,30 @@ dependencies:
- workflows.workflow.editorial
module:
- content_moderation
+ - field_group
- inline_entity_form
- maxlength
- media_library
- path
- text
+third_party_settings:
+ field_group:
+ group_guide_navigation:
+ children:
+ - field_guide_nav_title
+ - field_guide_nav_ref
+ label: 'Guide Navigation'
+ region: content
+ parent_name: ''
+ weight: 14
+ format_type: fieldset
+ format_settings:
+ classes: ''
+ show_empty_fields: false
+ id: ''
+ label_as_html: false
+ description: ''
+ required_fields: true
id: node.guides.default
targetEntityType: node
bundle: guides
@@ -30,7 +51,7 @@ mode: default
content:
body:
type: text_textarea_with_summary
- weight: 3
+ weight: 4
region: content
settings:
rows: 9
@@ -40,7 +61,7 @@ content:
third_party_settings: { }
created:
type: datetime_timestamp
- weight: 6
+ weight: 7
region: content
settings: { }
third_party_settings: { }
@@ -58,7 +79,7 @@ content:
maxlength_js_enforce: true
field_featured_image:
type: media_library_widget
- weight: 12
+ weight: 13
region: content
settings:
media_types: { }
@@ -69,16 +90,30 @@ content:
region: content
settings: { }
third_party_settings: { }
+ field_guide_nav_ref:
+ type: options_select
+ weight: 26
+ region: content
+ settings: { }
+ third_party_settings: { }
+ field_guide_nav_title:
+ type: string_textfield
+ weight: 18
+ region: content
+ settings:
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
field_guide_weight:
type: number
- weight: 10
+ weight: 11
region: content
settings:
placeholder: ''
third_party_settings: { }
field_kicker:
type: string_textfield
- weight: 1
+ weight: 2
region: content
settings:
size: 60
@@ -86,21 +121,21 @@ content:
third_party_settings: { }
field_page_weight:
type: number
- weight: 9
+ weight: 10
region: content
settings:
placeholder: ''
third_party_settings: { }
field_primary_image:
type: media_library_widget
- weight: 11
+ weight: 12
region: content
settings:
media_types: { }
third_party_settings: { }
field_summary:
type: text_textarea
- weight: 2
+ weight: 3
region: content
settings:
rows: 1
@@ -112,14 +147,14 @@ content:
maxlength_js_enforce: true
field_summary_box:
type: boolean_checkbox
- weight: 4
+ weight: 5
region: content
settings:
display_label: true
third_party_settings: { }
field_topics:
type: inline_entity_form_complex
- weight: 13
+ weight: 15
region: content
settings:
form_mode: default
@@ -137,19 +172,19 @@ content:
third_party_settings: { }
moderation_state:
type: moderation_state_default
- weight: 7
+ weight: 8
region: content
settings: { }
third_party_settings: { }
path:
type: path
- weight: 30
+ weight: 16
region: content
settings: { }
third_party_settings: { }
status:
type: boolean_checkbox
- weight: 8
+ weight: 9
region: content
settings:
display_label: true
@@ -164,7 +199,7 @@ content:
third_party_settings: { }
uid:
type: inline_entity_form_complex
- weight: 5
+ weight: 6
region: content
settings:
form_mode: default
@@ -181,7 +216,7 @@ content:
removed_reference: optional
third_party_settings: { }
url_redirects:
- weight: 50
+ weight: 17
region: content
settings: { }
third_party_settings: { }
diff --git a/config/sync/core.entity_form_display.paragraph.guide_pages.default.yml b/config/sync/core.entity_form_display.paragraph.guide_pages.default.yml
new file mode 100644
index 00000000..b8236ac2
--- /dev/null
+++ b/config/sync/core.entity_form_display.paragraph.guide_pages.default.yml
@@ -0,0 +1,36 @@
+uuid: 873ef0b3-fe5e-40e5-85a4-40aaec2cb332
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.field.paragraph.guide_pages.field_guide_link
+ - field.field.paragraph.guide_pages.field_guide_subnav
+ - paragraphs.paragraphs_type.guide_pages
+id: paragraph.guide_pages.default
+targetEntityType: paragraph
+bundle: guide_pages
+mode: default
+content:
+ field_guide_link:
+ type: entity_reference_autocomplete
+ weight: 0
+ region: content
+ settings:
+ match_operator: CONTAINS
+ match_limit: 10
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+ field_guide_subnav:
+ type: entity_reference_autocomplete
+ weight: 1
+ region: content
+ settings:
+ match_operator: CONTAINS
+ match_limit: 10
+ size: 60
+ placeholder: ''
+ third_party_settings: { }
+hidden:
+ created: true
+ status: true
diff --git a/config/sync/core.entity_view_display.node.guide_navigation.default.yml b/config/sync/core.entity_view_display.node.guide_navigation.default.yml
new file mode 100644
index 00000000..472fc86a
--- /dev/null
+++ b/config/sync/core.entity_view_display.node.guide_navigation.default.yml
@@ -0,0 +1,54 @@
+uuid: b0fbf982-3c1c-4cd7-a506-b56032a701e6
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.field.node.guide_navigation.field_guide_navigation
+ - field.field.node.guide_navigation.field_guide_start_page
+ - field.field.node.guide_navigation.field_parent_guide
+ - field.field.node.guide_navigation.field_show_in_page_nav
+ - field.field.node.guide_navigation.field_show_next_previous
+ - field.field.node.guide_navigation.field_show_read_time
+ - node.type.guide_navigation
+ module:
+ - entity_reference_revisions
+ - user
+id: node.guide_navigation.default
+targetEntityType: node
+bundle: guide_navigation
+mode: default
+content:
+ field_guide_navigation:
+ type: entity_reference_revisions_entity_view
+ label: hidden
+ settings:
+ view_mode: default
+ link: ''
+ third_party_settings: { }
+ weight: 2
+ region: content
+ field_guide_start_page:
+ type: entity_reference_label
+ label: hidden
+ settings:
+ link: true
+ third_party_settings: { }
+ weight: 1
+ region: content
+ field_parent_guide:
+ type: entity_reference_label
+ label: above
+ settings:
+ link: true
+ third_party_settings: { }
+ weight: 3
+ region: content
+ links:
+ settings: { }
+ third_party_settings: { }
+ weight: 0
+ region: content
+hidden:
+ field_show_in_page_nav: true
+ field_show_next_previous: true
+ field_show_read_time: true
diff --git a/config/sync/core.entity_view_display.node.guide_navigation.teaser.yml b/config/sync/core.entity_view_display.node.guide_navigation.teaser.yml
new file mode 100644
index 00000000..aa57ed66
--- /dev/null
+++ b/config/sync/core.entity_view_display.node.guide_navigation.teaser.yml
@@ -0,0 +1,32 @@
+uuid: 59bc9e44-b5bd-4d4e-9ba4-28f435b0e764
+langcode: en
+status: true
+dependencies:
+ config:
+ - core.entity_view_mode.node.teaser
+ - field.field.node.guide_navigation.field_guide_navigation
+ - field.field.node.guide_navigation.field_guide_start_page
+ - field.field.node.guide_navigation.field_parent_guide
+ - field.field.node.guide_navigation.field_show_in_page_nav
+ - field.field.node.guide_navigation.field_show_next_previous
+ - field.field.node.guide_navigation.field_show_read_time
+ - node.type.guide_navigation
+ module:
+ - user
+id: node.guide_navigation.teaser
+targetEntityType: node
+bundle: guide_navigation
+mode: teaser
+content:
+ links:
+ settings: { }
+ third_party_settings: { }
+ weight: 100
+ region: content
+hidden:
+ field_guide_navigation: true
+ field_guide_start_page: true
+ field_parent_guide: true
+ field_show_in_page_nav: true
+ field_show_next_previous: true
+ field_show_read_time: true
diff --git a/config/sync/core.entity_view_display.node.guides.default.yml b/config/sync/core.entity_view_display.node.guides.default.yml
index 715bfda7..810e3643 100644
--- a/config/sync/core.entity_view_display.node.guides.default.yml
+++ b/config/sync/core.entity_view_display.node.guides.default.yml
@@ -7,6 +7,8 @@ dependencies:
- field.field.node.guides.field_deck
- field.field.node.guides.field_featured_image
- field.field.node.guides.field_glossary
+ - field.field.node.guides.field_guide_nav_ref
+ - field.field.node.guides.field_guide_nav_title
- field.field.node.guides.field_guide_weight
- field.field.node.guides.field_kicker
- field.field.node.guides.field_page_weight
@@ -28,19 +30,19 @@ content:
label: hidden
settings: { }
third_party_settings: { }
- weight: 101
+ weight: 2
region: content
content_moderation_control:
settings: { }
third_party_settings: { }
- weight: -20
+ weight: 0
region: content
field_deck:
type: text_default
label: above
settings: { }
third_party_settings: { }
- weight: 108
+ weight: 5
region: content
field_featured_image:
type: entity_reference_entity_view
@@ -73,7 +75,7 @@ content:
settings:
link_to_entity: false
third_party_settings: { }
- weight: 116
+ weight: 7
region: content
field_page_weight:
type: number_integer
@@ -82,7 +84,7 @@ content:
thousand_separator: ''
prefix_suffix: true
third_party_settings: { }
- weight: 102
+ weight: 3
region: content
field_primary_image:
type: entity_reference_entity_view
@@ -91,24 +93,14 @@ content:
view_mode: default
link: false
third_party_settings: { }
- weight: 114
+ weight: 6
region: content
field_summary:
type: text_default
label: above
settings: { }
third_party_settings: { }
- weight: 104
- region: content
- field_summary_box:
- type: boolean
- label: above
- settings:
- format: default
- format_custom_false: ''
- format_custom_true: ''
- third_party_settings: { }
- weight: 126
+ weight: 4
region: content
field_topics:
type: entity_reference_label
@@ -116,11 +108,15 @@ content:
settings:
link: true
third_party_settings: { }
- weight: 125
+ weight: 9
region: content
links:
settings: { }
third_party_settings: { }
- weight: 100
+ weight: 1
region: content
-hidden: { }
+hidden:
+ field_guide_nav_ref: true
+ field_guide_nav_title: true
+ field_guide_weight: true
+ field_summary_box: true
diff --git a/config/sync/core.entity_view_display.node.guides.teaser.yml b/config/sync/core.entity_view_display.node.guides.teaser.yml
index e052bdee..7808c7ca 100644
--- a/config/sync/core.entity_view_display.node.guides.teaser.yml
+++ b/config/sync/core.entity_view_display.node.guides.teaser.yml
@@ -8,6 +8,8 @@ dependencies:
- field.field.node.guides.field_deck
- field.field.node.guides.field_featured_image
- field.field.node.guides.field_glossary
+ - field.field.node.guides.field_guide_nav_ref
+ - field.field.node.guides.field_guide_nav_title
- field.field.node.guides.field_guide_weight
- field.field.node.guides.field_kicker
- field.field.node.guides.field_page_weight
@@ -46,6 +48,8 @@ hidden:
field_deck: true
field_featured_image: true
field_glossary: true
+ field_guide_nav_ref: true
+ field_guide_nav_title: true
field_guide_weight: true
field_kicker: true
field_page_weight: true
diff --git a/config/sync/core.entity_view_display.paragraph.guide_pages.default.yml b/config/sync/core.entity_view_display.paragraph.guide_pages.default.yml
new file mode 100644
index 00000000..184e3f52
--- /dev/null
+++ b/config/sync/core.entity_view_display.paragraph.guide_pages.default.yml
@@ -0,0 +1,30 @@
+uuid: 37db2c21-cb3e-4961-b3b7-ef7c0c848f88
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.field.paragraph.guide_pages.field_guide_link
+ - field.field.paragraph.guide_pages.field_guide_subnav
+ - paragraphs.paragraphs_type.guide_pages
+id: paragraph.guide_pages.default
+targetEntityType: paragraph
+bundle: guide_pages
+mode: default
+content:
+ field_guide_link:
+ type: entity_reference_label
+ label: hidden
+ settings:
+ link: true
+ third_party_settings: { }
+ weight: 0
+ region: content
+ field_guide_subnav:
+ type: entity_reference_label
+ label: hidden
+ settings:
+ link: true
+ third_party_settings: { }
+ weight: 1
+ region: content
+hidden: { }
diff --git a/config/sync/field.field.node.guide_navigation.field_guide_navigation.yml b/config/sync/field.field.node.guide_navigation.field_guide_navigation.yml
new file mode 100644
index 00000000..4c9b4372
--- /dev/null
+++ b/config/sync/field.field.node.guide_navigation.field_guide_navigation.yml
@@ -0,0 +1,43 @@
+uuid: 7fd2919b-bfcc-4056-9891-ae4163e33c7f
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.node.field_guide_navigation
+ - node.type.guide_navigation
+ - paragraphs.paragraphs_type.guide_pages
+ module:
+ - entity_reference_revisions
+id: node.guide_navigation.field_guide_navigation
+field_name: field_guide_navigation
+entity_type: node
+bundle: guide_navigation
+label: Navigation
+description: ''
+required: false
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings:
+ handler: 'default:paragraph'
+ handler_settings:
+ target_bundles:
+ guide_pages: guide_pages
+ negate: 0
+ target_bundles_drag_drop:
+ external_content:
+ weight: 6
+ enabled: false
+ featured_links:
+ weight: 7
+ enabled: false
+ guide_pages:
+ weight: 8
+ enabled: true
+ internal_content:
+ weight: 9
+ enabled: false
+ venue:
+ weight: 10
+ enabled: false
+field_type: entity_reference_revisions
diff --git a/config/sync/field.field.node.guide_navigation.field_guide_start_page.yml b/config/sync/field.field.node.guide_navigation.field_guide_start_page.yml
new file mode 100644
index 00000000..ba6b73f7
--- /dev/null
+++ b/config/sync/field.field.node.guide_navigation.field_guide_start_page.yml
@@ -0,0 +1,25 @@
+uuid: e52fac26-5aa5-45b6-a870-c98f5e32b81b
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.node.field_guide_start_page
+ - node.type.guide_navigation
+id: node.guide_navigation.field_guide_start_page
+field_name: field_guide_start_page
+entity_type: node
+bundle: guide_navigation
+label: 'Start Page'
+description: "The guide that will be as the 'Header' for all guides that use this guide navigation."
+required: true
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings:
+ handler: views
+ handler_settings:
+ view:
+ view_name: parent_guide_nav_pages_ref
+ display_name: entity_reference_1
+ arguments: { }
+field_type: entity_reference
diff --git a/config/sync/field.field.node.guide_navigation.field_parent_guide.yml b/config/sync/field.field.node.guide_navigation.field_parent_guide.yml
new file mode 100644
index 00000000..0a4bc956
--- /dev/null
+++ b/config/sync/field.field.node.guide_navigation.field_parent_guide.yml
@@ -0,0 +1,25 @@
+uuid: 2e9e93c2-3d30-4a49-be9c-3124e243fda8
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.node.field_parent_guide
+ - node.type.guide_navigation
+id: node.guide_navigation.field_parent_guide
+field_name: field_parent_guide
+entity_type: node
+bundle: guide_navigation
+label: 'Parent Guide'
+description: 'A guide that will be linked to in the header of all guides that use this guide navigation.'
+required: false
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings:
+ handler: views
+ handler_settings:
+ view:
+ view_name: parent_guide_nav_pages_ref
+ display_name: entity_reference_1
+ arguments: { }
+field_type: entity_reference
diff --git a/config/sync/field.field.node.guide_navigation.field_show_in_page_nav.yml b/config/sync/field.field.node.guide_navigation.field_show_in_page_nav.yml
new file mode 100644
index 00000000..13dd3c92
--- /dev/null
+++ b/config/sync/field.field.node.guide_navigation.field_show_in_page_nav.yml
@@ -0,0 +1,21 @@
+uuid: e9ed03e7-d570-4b50-8af8-64fdb8815f6e
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.node.field_show_in_page_nav
+ - node.type.guide_navigation
+id: node.guide_navigation.field_show_in_page_nav
+field_name: field_show_in_page_nav
+entity_type: node
+bundle: guide_navigation
+label: 'Show In-page Nav'
+description: 'If selected, this will show the left hand navigation that has links to all headers of the current page as well as links to the subnav links for the current guide.'
+required: false
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings:
+ on_label: 'Yes'
+ off_label: 'No'
+field_type: boolean
diff --git a/config/sync/field.field.node.guide_navigation.field_show_next_previous.yml b/config/sync/field.field.node.guide_navigation.field_show_next_previous.yml
new file mode 100644
index 00000000..39980e13
--- /dev/null
+++ b/config/sync/field.field.node.guide_navigation.field_show_next_previous.yml
@@ -0,0 +1,21 @@
+uuid: fb40b5b7-673e-4a23-9db2-5b211be2c3b6
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.node.field_show_next_previous
+ - node.type.guide_navigation
+id: node.guide_navigation.field_show_next_previous
+field_name: field_show_next_previous
+entity_type: node
+bundle: guide_navigation
+label: 'Show Next/Previous'
+description: 'If selected, show links at the bottom of the guides allow navigation between the previous and next page.'
+required: false
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings:
+ on_label: 'Yes'
+ off_label: 'No'
+field_type: boolean
diff --git a/config/sync/field.field.node.guide_navigation.field_show_read_time.yml b/config/sync/field.field.node.guide_navigation.field_show_read_time.yml
new file mode 100644
index 00000000..69e5b68f
--- /dev/null
+++ b/config/sync/field.field.node.guide_navigation.field_show_read_time.yml
@@ -0,0 +1,21 @@
+uuid: d214ed7e-b3f9-43e7-be71-da1197e36d91
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.node.field_show_read_time
+ - node.type.guide_navigation
+id: node.guide_navigation.field_show_read_time
+field_name: field_show_read_time
+entity_type: node
+bundle: guide_navigation
+label: 'Show Read Time'
+description: 'If selected, the average time to read the current guide will be created and shown.'
+required: false
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings:
+ on_label: 'Yes'
+ off_label: 'No'
+field_type: boolean
diff --git a/config/sync/field.field.node.guides.field_guide_nav_ref.yml b/config/sync/field.field.node.guides.field_guide_nav_ref.yml
new file mode 100644
index 00000000..dcf66969
--- /dev/null
+++ b/config/sync/field.field.node.guides.field_guide_nav_ref.yml
@@ -0,0 +1,29 @@
+uuid: c401a03f-21ab-4bdc-942a-ae789b8f255f
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.node.field_guide_nav_ref
+ - node.type.guide_navigation
+ - node.type.guides
+id: node.guides.field_guide_nav_ref
+field_name: field_guide_nav_ref
+entity_type: node
+bundle: guides
+label: 'Guide Navigation'
+description: ''
+required: false
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings:
+ handler: 'default:node'
+ handler_settings:
+ target_bundles:
+ guide_navigation: guide_navigation
+ sort:
+ field: title
+ direction: ASC
+ auto_create: false
+ auto_create_bundle: ''
+field_type: entity_reference
diff --git a/config/sync/field.field.node.guides.field_guide_nav_title.yml b/config/sync/field.field.node.guides.field_guide_nav_title.yml
new file mode 100644
index 00000000..8ce4ed13
--- /dev/null
+++ b/config/sync/field.field.node.guides.field_guide_nav_title.yml
@@ -0,0 +1,19 @@
+uuid: 11762898-05a4-4286-9c85-293fa9cdb4da
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.node.field_guide_nav_title
+ - node.type.guides
+id: node.guides.field_guide_nav_title
+field_name: field_guide_nav_title
+entity_type: node
+bundle: guides
+label: 'Navigation Title'
+description: 'Override the title in the guide navigation'
+required: false
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings: { }
+field_type: string
diff --git a/config/sync/field.field.node.guides.field_kicker.yml b/config/sync/field.field.node.guides.field_kicker.yml
index 87149ffe..3bf711ce 100644
--- a/config/sync/field.field.node.guides.field_kicker.yml
+++ b/config/sync/field.field.node.guides.field_kicker.yml
@@ -10,7 +10,7 @@ field_name: field_kicker
entity_type: node
bundle: guides
label: Kicker
-description: 'Highlight the relevant topic. This displays above the title on the /gudes/ page. Should always be included. Use only one or two words.'
+description: 'Highlight the relevant topic. This displays above the title on the /guides/ page. Should always be included. Use only one or two words.'
required: false
translatable: false
default_value: { }
diff --git a/config/sync/field.field.paragraph.guide_pages.field_guide_link.yml b/config/sync/field.field.paragraph.guide_pages.field_guide_link.yml
new file mode 100644
index 00000000..db5988ee
--- /dev/null
+++ b/config/sync/field.field.paragraph.guide_pages.field_guide_link.yml
@@ -0,0 +1,29 @@
+uuid: db848e3c-3b5b-453a-88c5-b8f00c9836fd
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.paragraph.field_guide_link
+ - node.type.guides
+ - paragraphs.paragraphs_type.guide_pages
+id: paragraph.guide_pages.field_guide_link
+field_name: field_guide_link
+entity_type: paragraph
+bundle: guide_pages
+label: 'Guide Link'
+description: ''
+required: false
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings:
+ handler: 'default:node'
+ handler_settings:
+ target_bundles:
+ guides: guides
+ sort:
+ field: title
+ direction: ASC
+ auto_create: false
+ auto_create_bundle: ''
+field_type: entity_reference
diff --git a/config/sync/field.field.paragraph.guide_pages.field_guide_subnav.yml b/config/sync/field.field.paragraph.guide_pages.field_guide_subnav.yml
new file mode 100644
index 00000000..02d70b7e
--- /dev/null
+++ b/config/sync/field.field.paragraph.guide_pages.field_guide_subnav.yml
@@ -0,0 +1,29 @@
+uuid: 85ea25cf-07d7-4a6c-a0e4-8f0e78ba87bd
+langcode: en
+status: true
+dependencies:
+ config:
+ - field.storage.paragraph.field_guide_subnav
+ - node.type.guides
+ - paragraphs.paragraphs_type.guide_pages
+id: paragraph.guide_pages.field_guide_subnav
+field_name: field_guide_subnav
+entity_type: paragraph
+bundle: guide_pages
+label: 'Subnav Links'
+description: ''
+required: false
+translatable: false
+default_value: { }
+default_value_callback: ''
+settings:
+ handler: 'default:node'
+ handler_settings:
+ target_bundles:
+ guides: guides
+ sort:
+ field: title
+ direction: ASC
+ auto_create: false
+ auto_create_bundle: guides
+field_type: entity_reference
diff --git a/config/sync/field.storage.node.field_guide_nav_ref.yml b/config/sync/field.storage.node.field_guide_nav_ref.yml
new file mode 100644
index 00000000..57d4059a
--- /dev/null
+++ b/config/sync/field.storage.node.field_guide_nav_ref.yml
@@ -0,0 +1,19 @@
+uuid: e9ed8dfb-c0e4-4831-b20c-05f3c719773a
+langcode: en
+status: true
+dependencies:
+ module:
+ - node
+id: node.field_guide_nav_ref
+field_name: field_guide_nav_ref
+entity_type: node
+type: entity_reference
+settings:
+ target_type: node
+module: core
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/sync/field.storage.node.field_guide_nav_title.yml b/config/sync/field.storage.node.field_guide_nav_title.yml
new file mode 100644
index 00000000..815b6363
--- /dev/null
+++ b/config/sync/field.storage.node.field_guide_nav_title.yml
@@ -0,0 +1,21 @@
+uuid: 5bcbb22a-edbf-4ee0-a931-f07b06629911
+langcode: en
+status: true
+dependencies:
+ module:
+ - node
+id: node.field_guide_nav_title
+field_name: field_guide_nav_title
+entity_type: node
+type: string
+settings:
+ max_length: 255
+ case_sensitive: false
+ is_ascii: false
+module: core
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/sync/field.storage.node.field_guide_navigation.yml b/config/sync/field.storage.node.field_guide_navigation.yml
new file mode 100644
index 00000000..92016d60
--- /dev/null
+++ b/config/sync/field.storage.node.field_guide_navigation.yml
@@ -0,0 +1,21 @@
+uuid: e9b23774-f2bd-4fb6-bbe8-84e721999b67
+langcode: en
+status: true
+dependencies:
+ module:
+ - entity_reference_revisions
+ - node
+ - paragraphs
+id: node.field_guide_navigation
+field_name: field_guide_navigation
+entity_type: node
+type: entity_reference_revisions
+settings:
+ target_type: paragraph
+module: entity_reference_revisions
+locked: false
+cardinality: -1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/sync/field.storage.node.field_guide_start_page.yml b/config/sync/field.storage.node.field_guide_start_page.yml
new file mode 100644
index 00000000..a152fb0e
--- /dev/null
+++ b/config/sync/field.storage.node.field_guide_start_page.yml
@@ -0,0 +1,19 @@
+uuid: 018b471d-d699-4ad6-adac-e5e404c49ba9
+langcode: en
+status: true
+dependencies:
+ module:
+ - node
+id: node.field_guide_start_page
+field_name: field_guide_start_page
+entity_type: node
+type: entity_reference
+settings:
+ target_type: node
+module: core
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/sync/field.storage.node.field_parent_guide.yml b/config/sync/field.storage.node.field_parent_guide.yml
new file mode 100644
index 00000000..6f784124
--- /dev/null
+++ b/config/sync/field.storage.node.field_parent_guide.yml
@@ -0,0 +1,19 @@
+uuid: 71eab602-c462-4dec-95e7-2c7a234d9915
+langcode: en
+status: true
+dependencies:
+ module:
+ - node
+id: node.field_parent_guide
+field_name: field_parent_guide
+entity_type: node
+type: entity_reference
+settings:
+ target_type: node
+module: core
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/sync/field.storage.node.field_show_in_page_nav.yml b/config/sync/field.storage.node.field_show_in_page_nav.yml
new file mode 100644
index 00000000..6f5285ef
--- /dev/null
+++ b/config/sync/field.storage.node.field_show_in_page_nav.yml
@@ -0,0 +1,18 @@
+uuid: cb81e9df-7bc7-4b0c-a2fa-a0dd68278a32
+langcode: en
+status: true
+dependencies:
+ module:
+ - node
+id: node.field_show_in_page_nav
+field_name: field_show_in_page_nav
+entity_type: node
+type: boolean
+settings: { }
+module: core
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/sync/field.storage.node.field_show_next_previous.yml b/config/sync/field.storage.node.field_show_next_previous.yml
new file mode 100644
index 00000000..39f69979
--- /dev/null
+++ b/config/sync/field.storage.node.field_show_next_previous.yml
@@ -0,0 +1,18 @@
+uuid: 47112105-f2e2-4a78-99d8-3bfc19ae723a
+langcode: en
+status: true
+dependencies:
+ module:
+ - node
+id: node.field_show_next_previous
+field_name: field_show_next_previous
+entity_type: node
+type: boolean
+settings: { }
+module: core
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/sync/field.storage.node.field_show_read_time.yml b/config/sync/field.storage.node.field_show_read_time.yml
new file mode 100644
index 00000000..d41e0372
--- /dev/null
+++ b/config/sync/field.storage.node.field_show_read_time.yml
@@ -0,0 +1,18 @@
+uuid: 9b0a6caa-e257-489e-9484-4b3ca7a71479
+langcode: en
+status: true
+dependencies:
+ module:
+ - node
+id: node.field_show_read_time
+field_name: field_show_read_time
+entity_type: node
+type: boolean
+settings: { }
+module: core
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/sync/field.storage.paragraph.field_guide_link.yml b/config/sync/field.storage.paragraph.field_guide_link.yml
new file mode 100644
index 00000000..82ac1b27
--- /dev/null
+++ b/config/sync/field.storage.paragraph.field_guide_link.yml
@@ -0,0 +1,20 @@
+uuid: 30e8adf0-be45-4eaf-bd9f-43d254771eb8
+langcode: en
+status: true
+dependencies:
+ module:
+ - node
+ - paragraphs
+id: paragraph.field_guide_link
+field_name: field_guide_link
+entity_type: paragraph
+type: entity_reference
+settings:
+ target_type: node
+module: core
+locked: false
+cardinality: 1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/sync/field.storage.paragraph.field_guide_subnav.yml b/config/sync/field.storage.paragraph.field_guide_subnav.yml
new file mode 100644
index 00000000..f2e872a6
--- /dev/null
+++ b/config/sync/field.storage.paragraph.field_guide_subnav.yml
@@ -0,0 +1,20 @@
+uuid: 88c0fe3c-2a87-40a3-b854-85f9ab307f1a
+langcode: en
+status: true
+dependencies:
+ module:
+ - node
+ - paragraphs
+id: paragraph.field_guide_subnav
+field_name: field_guide_subnav
+entity_type: paragraph
+type: entity_reference
+settings:
+ target_type: node
+module: core
+locked: false
+cardinality: -1
+translatable: true
+indexes: { }
+persist_with_no_fields: false
+custom_storage: false
diff --git a/config/sync/node.type.guide_navigation.yml b/config/sync/node.type.guide_navigation.yml
new file mode 100644
index 00000000..5a081a56
--- /dev/null
+++ b/config/sync/node.type.guide_navigation.yml
@@ -0,0 +1,31 @@
+uuid: 97071e38-c55d-41f6-ad89-8ece83da5316
+langcode: en
+status: true
+dependencies:
+ module:
+ - menu_ui
+ - scheduler
+third_party_settings:
+ menu_ui:
+ available_menus: { }
+ parent: ''
+ scheduler:
+ expand_fieldset: when_required
+ fields_display_mode: vertical_tab
+ publish_enable: false
+ publish_past_date: error
+ publish_past_date_created: false
+ publish_required: false
+ publish_revision: false
+ publish_touch: false
+ show_message_after_update: true
+ unpublish_enable: false
+ unpublish_required: false
+ unpublish_revision: false
+name: 'Guide Navigation'
+type: guide_navigation
+description: null
+help: null
+new_revision: false
+preview_mode: 1
+display_submitted: false
diff --git a/config/sync/override_node_options.settings.yml b/config/sync/override_node_options.settings.yml
index 7f5e2f73..633bdf39 100644
--- a/config/sync/override_node_options.settings.yml
+++ b/config/sync/override_node_options.settings.yml
@@ -1,4 +1,4 @@
_core:
default_config_hash: Y0Jxf-pLD0BpNVMs5eY2YL6Ctcxc-sKfAi5IJa_bwQk
general_permissions: 1
-specific_permissions: 0
+specific_permissions: 1
diff --git a/config/sync/paragraphs.paragraphs_type.guide_pages.yml b/config/sync/paragraphs.paragraphs_type.guide_pages.yml
new file mode 100644
index 00000000..6aa5b7e4
--- /dev/null
+++ b/config/sync/paragraphs.paragraphs_type.guide_pages.yml
@@ -0,0 +1,10 @@
+uuid: 4d91e8be-ac51-4431-a7cf-bd94b7ab37be
+langcode: en
+status: true
+dependencies: { }
+id: guide_pages
+label: 'Guide Pages'
+icon_uuid: null
+icon_default: null
+description: 'Collection of pages to use in navigation for a guide.'
+behavior_plugins: { }
diff --git a/config/sync/system.action.user_add_role_action.guide_navigation_admin.yml b/config/sync/system.action.user_add_role_action.guide_navigation_admin.yml
new file mode 100644
index 00000000..52e50643
--- /dev/null
+++ b/config/sync/system.action.user_add_role_action.guide_navigation_admin.yml
@@ -0,0 +1,14 @@
+uuid: 7632ffa8-086c-44c1-bf9f-c350e2059f78
+langcode: en
+status: true
+dependencies:
+ config:
+ - user.role.guide_navigation_admin
+ module:
+ - user
+id: user_add_role_action.guide_navigation_admin
+label: 'Add the Guide Navigation Admin role to the selected user(s)'
+type: user
+plugin: user_add_role_action
+configuration:
+ rid: guide_navigation_admin
diff --git a/config/sync/system.action.user_remove_role_action.guide_navigation_admin.yml b/config/sync/system.action.user_remove_role_action.guide_navigation_admin.yml
new file mode 100644
index 00000000..547c5ff1
--- /dev/null
+++ b/config/sync/system.action.user_remove_role_action.guide_navigation_admin.yml
@@ -0,0 +1,14 @@
+uuid: a8446a2f-080b-4615-8d45-3efc07bf7b45
+langcode: en
+status: true
+dependencies:
+ config:
+ - user.role.guide_navigation_admin
+ module:
+ - user
+id: user_remove_role_action.guide_navigation_admin
+label: 'Remove the Guide Navigation Admin role from the selected user(s)'
+type: user
+plugin: user_remove_role_action
+configuration:
+ rid: guide_navigation_admin
diff --git a/config/sync/user.role.content_admin.yml b/config/sync/user.role.content_admin.yml
index 22e3fcdc..bf3b6e26 100644
--- a/config/sync/user.role.content_admin.yml
+++ b/config/sync/user.role.content_admin.yml
@@ -7,6 +7,7 @@ dependencies:
- node.type.basic_page
- node.type.community
- node.type.event
+ - node.type.guide_navigation
- node.type.guides
- node.type.landing_page
- node.type.news
@@ -43,6 +44,7 @@ permissions:
- 'create basic_page content'
- 'create community content'
- 'create event content'
+ - 'create guide_navigation content'
- 'create guides content'
- 'create landing_page content'
- 'create media'
@@ -51,11 +53,13 @@ permissions:
- 'create short_post content'
- 'create source content'
- 'create topics content'
+ - 'delete any guide_navigation content'
- 'delete any media'
- 'edit any authors content'
- 'edit any basic_page content'
- 'edit any community content'
- 'edit any event content'
+ - 'edit any guide_navigation content'
- 'edit any guides content'
- 'edit any landing_page content'
- 'edit any news content'
@@ -66,6 +70,7 @@ permissions:
- 'edit identifier config page entity'
- 'override all authored by option'
- 'override all authored on option'
+ - 'override guide_navigation published option'
- 'schedule publishing of nodes'
- 'update any media'
- 'use default embedded content button'
diff --git a/config/sync/user.role.guide_navigation_admin.yml b/config/sync/user.role.guide_navigation_admin.yml
new file mode 100644
index 00000000..4377802a
--- /dev/null
+++ b/config/sync/user.role.guide_navigation_admin.yml
@@ -0,0 +1,21 @@
+uuid: 89d3d12f-f60d-439a-8a5a-e57d6df00fce
+langcode: en
+status: true
+dependencies:
+ config:
+ - node.type.guide_navigation
+ module:
+ - node
+ - override_node_options
+ - paragraphs_type_permissions
+id: guide_navigation_admin
+label: 'Guide Navigation Admin'
+weight: 10
+is_admin: null
+permissions:
+ - 'access content overview'
+ - 'bypass paragraphs type content access'
+ - 'create guide_navigation content'
+ - 'delete any guide_navigation content'
+ - 'edit any guide_navigation content'
+ - 'override guide_navigation published option'
diff --git a/config/sync/user.role.user_admin.yml b/config/sync/user.role.user_admin.yml
index 10cb22e9..1e8bb8b9 100644
--- a/config/sync/user.role.user_admin.yml
+++ b/config/sync/user.role.user_admin.yml
@@ -13,6 +13,7 @@ permissions:
- 'assign content_admin role'
- 'assign data_analyst role'
- 'assign editor role'
+ - 'assign guide_navigation_admin role'
- 'assign identifier_admin role'
- 'assign publisher role'
- 'assign user_admin role'
diff --git a/config/sync/views.view.parent_guide_nav_pages_ref.yml b/config/sync/views.view.parent_guide_nav_pages_ref.yml
new file mode 100644
index 00000000..2704f71c
--- /dev/null
+++ b/config/sync/views.view.parent_guide_nav_pages_ref.yml
@@ -0,0 +1,232 @@
+uuid: 1d09eb09-edbb-451d-87ae-d2542c6a6fe7
+langcode: en
+status: true
+dependencies:
+ module:
+ - node
+ - user
+id: parent_guide_nav_pages_ref
+label: 'Parent Guide Nav Pages Ref'
+module: views
+description: ''
+tag: ''
+base_table: node_field_data
+base_field: nid
+display:
+ default:
+ id: default
+ display_title: Default
+ display_plugin: default
+ position: 0
+ display_options:
+ fields:
+ title:
+ id: title
+ table: node_field_data
+ field: title
+ relationship: none
+ group_type: group
+ admin_label: ''
+ entity_type: node
+ entity_field: title
+ plugin_id: field
+ label: ''
+ exclude: false
+ alter:
+ alter_text: false
+ make_link: false
+ absolute: false
+ word_boundary: false
+ ellipsis: false
+ strip_tags: false
+ trim: false
+ html: false
+ element_type: ''
+ element_class: ''
+ element_label_type: ''
+ element_label_class: ''
+ element_label_colon: true
+ element_wrapper_type: ''
+ element_wrapper_class: ''
+ element_default_classes: true
+ empty: ''
+ hide_empty: false
+ empty_zero: false
+ hide_alter_empty: true
+ click_sort_column: value
+ type: string
+ settings:
+ link_to_entity: true
+ group_column: value
+ group_columns: { }
+ group_rows: true
+ delta_limit: 0
+ delta_offset: 0
+ delta_reversed: false
+ delta_first_last: false
+ multi_type: separator
+ separator: ', '
+ field_api_classes: false
+ pager:
+ type: mini
+ options:
+ offset: 0
+ pagination_heading_level: h4
+ items_per_page: 10
+ total_pages: null
+ id: 0
+ tags:
+ next: ››
+ previous: ‹‹
+ expose:
+ items_per_page: false
+ items_per_page_label: 'Items per page'
+ items_per_page_options: '5, 10, 25, 50'
+ items_per_page_options_all: false
+ items_per_page_options_all_label: '- All -'
+ offset: false
+ offset_label: Offset
+ exposed_form:
+ type: basic
+ options:
+ submit_button: Apply
+ reset_button: false
+ reset_button_label: Reset
+ exposed_sorts_label: 'Sort by'
+ expose_sort_order: true
+ sort_asc_label: Asc
+ sort_desc_label: Desc
+ access:
+ type: perm
+ options:
+ perm: 'access content'
+ cache:
+ type: tag
+ options: { }
+ empty: { }
+ sorts:
+ field_guide_weight_value:
+ id: field_guide_weight_value
+ table: node__field_guide_weight
+ field: field_guide_weight_value
+ relationship: none
+ group_type: group
+ admin_label: ''
+ plugin_id: standard
+ order: ASC
+ expose:
+ label: ''
+ field_identifier: ''
+ exposed: false
+ arguments: { }
+ filters:
+ status:
+ id: status
+ table: node_field_data
+ field: status
+ entity_type: node
+ entity_field: status
+ plugin_id: boolean
+ value: '1'
+ group: 1
+ expose:
+ operator: ''
+ field_guide_weight_value:
+ id: field_guide_weight_value
+ table: node__field_guide_weight
+ field: field_guide_weight_value
+ relationship: none
+ group_type: group
+ admin_label: ''
+ plugin_id: numeric
+ operator: 'not empty'
+ value:
+ min: ''
+ max: ''
+ value: ''
+ group: 1
+ exposed: false
+ expose:
+ operator_id: ''
+ label: ''
+ description: ''
+ use_operator: false
+ operator: ''
+ operator_limit_selection: false
+ operator_list: { }
+ identifier: ''
+ required: false
+ remember: false
+ multiple: false
+ remember_roles:
+ authenticated: authenticated
+ min_placeholder: ''
+ max_placeholder: ''
+ placeholder: ''
+ is_grouped: false
+ group_info:
+ label: ''
+ description: ''
+ identifier: ''
+ optional: true
+ widget: select
+ multiple: false
+ remember: false
+ default_group: All
+ default_group_multiple: { }
+ group_items: { }
+ style:
+ type: default
+ options:
+ grouping: { }
+ row_class: ''
+ default_row_class: true
+ uses_fields: false
+ row:
+ type: fields
+ options:
+ default_field_elements: true
+ inline: { }
+ separator: ''
+ hide_empty: false
+ query:
+ type: views_query
+ options:
+ query_comment: ''
+ disable_sql_rewrite: false
+ distinct: false
+ replica: false
+ query_tags: { }
+ relationships: { }
+ header: { }
+ footer: { }
+ display_extenders: { }
+ cache_metadata:
+ max-age: -1
+ contexts:
+ - 'languages:language_content'
+ - 'languages:language_interface'
+ - url.query_args
+ - 'user.node_grants:view'
+ - user.permissions
+ tags: { }
+ entity_reference_1:
+ id: entity_reference_1
+ display_title: 'Entity Reference'
+ display_plugin: entity_reference
+ position: 1
+ display_options:
+ style:
+ type: entity_reference
+ options:
+ search_fields:
+ title: title
+ display_extenders: { }
+ cache_metadata:
+ max-age: -1
+ contexts:
+ - 'languages:language_content'
+ - 'languages:language_interface'
+ - 'user.node_grants:view'
+ - user.permissions
+ tags: { }
diff --git a/patches/default_content-3200212-25.patch b/patches/default_content-3200212-25.patch
new file mode 100644
index 00000000..46d75276
--- /dev/null
+++ b/patches/default_content-3200212-25.patch
@@ -0,0 +1,32 @@
+diff --git a/src/Importer.php b/src/Importer.php
+index b3035db..3a5b167 100644
+--- a/src/Importer.php
++++ b/src/Importer.php
+@@ -316,7 +316,7 @@ class Importer implements ImporterInterface {
+ if (\file_exists($file_source)) {
+ $target_directory = dirname($entity->getFileUri());
+ $this->fileSystem->prepareDirectory($target_directory, FileSystemInterface::CREATE_DIRECTORY);
+- $new_uri = $this->fileSystem->copy($file_source, $entity->getFileUri());
++ $new_uri = $this->fileSystem->copy($file_source, $entity->getFileUri(), FileSystemInterface::EXISTS_REPLACE);
+ $entity->setFileUri($new_uri);
+ }
+ }
+diff --git a/tests/src/Kernel/DefaultContentYamlImportTest.php b/tests/src/Kernel/DefaultContentYamlImportTest.php
+index ed93b3b..aae0957 100644
+--- a/tests/src/Kernel/DefaultContentYamlImportTest.php
++++ b/tests/src/Kernel/DefaultContentYamlImportTest.php
+@@ -141,12 +141,12 @@ class DefaultContentYamlImportTest extends KernelTestBase {
+ $this->assertEquals($term->id(), $node->get('field_tags')->target_id);
+
+ // Assert the files, since a file already existed at that location, one has
+- // been renamed and the URI adjusted.
++ // been overwritten.
+ $files = \Drupal::entityTypeManager()->getStorage('file')->loadByProperties(['filename' => 'test-file.txt']);
+ $this->assertCount(1, $files);
+ /** @var \Drupal\file\FileInterface $file */
+ $file = reset($files);
+- $this->assertEquals('public://test-file_0.txt', $file->getFileUri());
++ $this->assertEquals('public://test-file.txt', $file->getFileUri());
+ $this->assertFileExists($file->getFileUri());
+ $files = \Drupal::entityTypeManager()->getStorage('file')->loadByProperties(['filename' => 'test-file1.txt']);
+ $this->assertCount(1, $files);
diff --git a/patches/default_content-hook-exclude-content.patch b/patches/default_content-hook-exclude-content.patch
new file mode 100644
index 00000000..172c94de
--- /dev/null
+++ b/patches/default_content-hook-exclude-content.patch
@@ -0,0 +1,14 @@
+diff --git a/src/Exporter.php b/src/Exporter.php
+--- a/src/Exporter.php
++++ b/src/Exporter.php (date 1735582111782)
+@@ -142,6 +142,10 @@
+ // Serialize all entities and key them by entity TYPE and uuid.
+ $serialized_entities_per_type = [];
+ foreach ($entities as $entity) {
++ $exclude_entity_results = $this->moduleHandler->invokeAll('default_content_exclude_entity', [$entity]);
++ if (in_array(TRUE, $exclude_entity_results, TRUE)) {
++ continue;
++ }
+ $normalized = $this->contentEntityNormalizer->normalize($entity);
+ $encoded = Yaml::encode($normalized);
+ $serialized_entities_per_type[$entity->getEntityTypeId()][$entity->uuid()] = $encoded;
diff --git a/web/modules/custom/default_content_config/content/file/0c46b2b3-2b2a-4a22-9312-e592d51a5889.yml b/web/modules/custom/default_content_config/content/file/0c46b2b3-2b2a-4a22-9312-e592d51a5889.yml
deleted file mode 100644
index aaef062a..00000000
--- a/web/modules/custom/default_content_config/content/file/0c46b2b3-2b2a-4a22-9312-e592d51a5889.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-_meta:
- version: '1.0'
- entity_type: file
- uuid: 0c46b2b3-2b2a-4a22-9312-e592d51a5889
- default_langcode: en
-default:
- uid:
- -
- target_id: 1
- filename:
- -
- value: sMx_-AMI_N8jVMJ0yhkk2M7I4yZBe6_E47hG2bSMa0A.jpg
- uri:
- -
- value: 'public://oembed_thumbnails/2024-11/sMx_-AMI_N8jVMJ0yhkk2M7I4yZBe6_E47hG2bSMa0A.jpg'
- filemime:
- -
- value: image/jpeg
- filesize:
- -
- value: 20023
- status:
- -
- value: true
- created:
- -
- value: 1733188190
diff --git a/web/modules/custom/default_content_config/content/file/3ba4ed8d-23fd-4e62-a5b8-bee532b86165.yml b/web/modules/custom/default_content_config/content/file/3ba4ed8d-23fd-4e62-a5b8-bee532b86165.yml
deleted file mode 100644
index a11b0253..00000000
--- a/web/modules/custom/default_content_config/content/file/3ba4ed8d-23fd-4e62-a5b8-bee532b86165.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-_meta:
- version: '1.0'
- entity_type: file
- uuid: 3ba4ed8d-23fd-4e62-a5b8-bee532b86165
- default_langcode: en
-default:
- uid:
- -
- target_id: 1
- filename:
- -
- value: Jgi9onFSn5VIiakJqtM9jw4Uc9oSkiTHUyHQSrWOL-U.jpg
- uri:
- -
- value: 'public://oembed_thumbnails/2024-11/Jgi9onFSn5VIiakJqtM9jw4Uc9oSkiTHUyHQSrWOL-U.jpg'
- filemime:
- -
- value: image/jpeg
- filesize:
- -
- value: 20023
- status:
- -
- value: true
- created:
- -
- value: 1733188190
diff --git a/web/modules/custom/default_content_config/content/file/Jgi9onFSn5VIiakJqtM9jw4Uc9oSkiTHUyHQSrWOL-U.jpg b/web/modules/custom/default_content_config/content/file/Jgi9onFSn5VIiakJqtM9jw4Uc9oSkiTHUyHQSrWOL-U.jpg
deleted file mode 100644
index 2b79771b..00000000
Binary files a/web/modules/custom/default_content_config/content/file/Jgi9onFSn5VIiakJqtM9jw4Uc9oSkiTHUyHQSrWOL-U.jpg and /dev/null differ
diff --git a/web/modules/custom/default_content_config/content/file/QAhebymBW5ODyxGpj4xaRO7toRZSNMbyHOpyH86OmYU.jpg b/web/modules/custom/default_content_config/content/file/QAhebymBW5ODyxGpj4xaRO7toRZSNMbyHOpyH86OmYU.jpg
deleted file mode 100644
index 2b79771b..00000000
Binary files a/web/modules/custom/default_content_config/content/file/QAhebymBW5ODyxGpj4xaRO7toRZSNMbyHOpyH86OmYU.jpg and /dev/null differ
diff --git a/web/modules/custom/default_content_config/content/file/c3fcdadf-e13d-460a-9b68-318f9779d476.yml b/web/modules/custom/default_content_config/content/file/c3fcdadf-e13d-460a-9b68-318f9779d476.yml
deleted file mode 100644
index 58d8e65e..00000000
--- a/web/modules/custom/default_content_config/content/file/c3fcdadf-e13d-460a-9b68-318f9779d476.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-_meta:
- version: '1.0'
- entity_type: file
- uuid: c3fcdadf-e13d-460a-9b68-318f9779d476
- default_langcode: en
-default:
- uid:
- -
- target_id: 1
- filename:
- -
- value: QAhebymBW5ODyxGpj4xaRO7toRZSNMbyHOpyH86OmYU.jpg
- uri:
- -
- value: 'public://oembed_thumbnails/2024-11/QAhebymBW5ODyxGpj4xaRO7toRZSNMbyHOpyH86OmYU.jpg'
- filemime:
- -
- value: image/jpeg
- filesize:
- -
- value: 20023
- status:
- -
- value: true
- created:
- -
- value: 1733188190
diff --git a/web/modules/custom/default_content_config/content/file/sMx_-AMI_N8jVMJ0yhkk2M7I4yZBe6_E47hG2bSMa0A.jpg b/web/modules/custom/default_content_config/content/file/sMx_-AMI_N8jVMJ0yhkk2M7I4yZBe6_E47hG2bSMa0A.jpg
deleted file mode 100644
index 2b79771b..00000000
Binary files a/web/modules/custom/default_content_config/content/file/sMx_-AMI_N8jVMJ0yhkk2M7I4yZBe6_E47hG2bSMa0A.jpg and /dev/null differ
diff --git a/web/modules/custom/default_content_config/content/node/258cf431-4a0c-4489-807e-c87087c87cf9.yml b/web/modules/custom/default_content_config/content/node/258cf431-4a0c-4489-807e-c87087c87cf9.yml
new file mode 100644
index 00000000..514a0862
--- /dev/null
+++ b/web/modules/custom/default_content_config/content/node/258cf431-4a0c-4489-807e-c87087c87cf9.yml
@@ -0,0 +1,121 @@
+_meta:
+ version: '1.0'
+ entity_type: node
+ uuid: 258cf431-4a0c-4489-807e-c87087c87cf9
+ bundle: guide_navigation
+ default_langcode: en
+ depends:
+ 45a32394-3a9a-4481-a9bf-4701e39138ea: node
+ f0dc319d-abd2-4a06-bb17-1a9cd3ee3ad2: node
+ c4520a54-cd38-4be0-9158-24a61a79599e: node
+ b9c370f3-b204-4818-800d-660e366ebfea: node
+ 91b1798f-4dec-49d6-bfee-38ed0a4f5e49: node
+default:
+ revision_uid:
+ -
+ target_id: 1
+ status:
+ -
+ value: true
+ uid:
+ -
+ target_id: 1
+ title:
+ -
+ value: 'Test Guide Nav'
+ created:
+ -
+ value: 1734120032
+ promote:
+ -
+ value: false
+ sticky:
+ -
+ value: false
+ path:
+ -
+ alias: ''
+ langcode: en
+ pathauto: 0
+ field_guide_navigation:
+ -
+ entity:
+ _meta:
+ version: '1.0'
+ entity_type: paragraph
+ uuid: 18b88ea3-c9ac-436e-ac79-79a33caea223
+ bundle: guide_pages
+ default_langcode: en
+ default:
+ status:
+ -
+ value: true
+ created:
+ -
+ value: 1734120046
+ behavior_settings:
+ -
+ value: { }
+ field_guide_link:
+ -
+ entity: 45a32394-3a9a-4481-a9bf-4701e39138ea
+ -
+ entity:
+ _meta:
+ version: '1.0'
+ entity_type: paragraph
+ uuid: 21048a0c-5ff8-43c6-87cd-8fe32802938c
+ bundle: guide_pages
+ default_langcode: en
+ default:
+ status:
+ -
+ value: true
+ created:
+ -
+ value: 1734120046
+ behavior_settings:
+ -
+ value: { }
+ field_guide_link:
+ -
+ entity: f0dc319d-abd2-4a06-bb17-1a9cd3ee3ad2
+ -
+ entity:
+ _meta:
+ version: '1.0'
+ entity_type: paragraph
+ uuid: ec229ab5-d55b-4f98-a2b1-ad5a31d63c33
+ bundle: guide_pages
+ default_langcode: en
+ default:
+ status:
+ -
+ value: true
+ created:
+ -
+ value: 1734120051
+ behavior_settings:
+ -
+ value: { }
+ field_guide_link:
+ -
+ entity: c4520a54-cd38-4be0-9158-24a61a79599e
+ field_guide_subnav:
+ -
+ entity: b9c370f3-b204-4818-800d-660e366ebfea
+ field_guide_start_page:
+ -
+ entity: 91b1798f-4dec-49d6-bfee-38ed0a4f5e49
+ field_parent_guide:
+ -
+ entity: c4520a54-cd38-4be0-9158-24a61a79599e
+ field_show_in_page_nav:
+ -
+ value: true
+ field_show_next_previous:
+ -
+ value: true
+ field_show_read_time:
+ -
+ value: true
diff --git a/web/modules/custom/default_content_config/content/node/45a32394-3a9a-4481-a9bf-4701e39138ea.yml b/web/modules/custom/default_content_config/content/node/45a32394-3a9a-4481-a9bf-4701e39138ea.yml
index 49557b74..743f2884 100644
--- a/web/modules/custom/default_content_config/content/node/45a32394-3a9a-4481-a9bf-4701e39138ea.yml
+++ b/web/modules/custom/default_content_config/content/node/45a32394-3a9a-4481-a9bf-4701e39138ea.yml
@@ -6,6 +6,7 @@ _meta:
default_langcode: en
depends:
c2eb37c0-02a5-4a36-90bc-a7039449b61b: media
+ 258cf431-4a0c-4489-807e-c87087c87cf9: node
1e945b0b-bcf5-4df7-9105-6c222eb70c13: media
default:
revision_uid:
@@ -44,11 +45,17 @@ default:
summary: ''
field_deck:
-
- value: 'A ‘quick-start’ guide for embedding accessibility and inclusive design practices into your team’s workflow'
+ value: '
A ‘quick-start’ guide for embedding accessibility and inclusive design practices into your team’s workflow
'
format: single_inline_html
field_featured_image:
-
entity: c2eb37c0-02a5-4a36-90bc-a7039449b61b
+ field_guide_nav_ref:
+ -
+ entity: 258cf431-4a0c-4489-807e-c87087c87cf9
+ field_guide_nav_title:
+ -
+ value: 'GUIDE-all fields (Overriden)'
field_guide_weight:
-
value: 5
@@ -60,7 +67,7 @@ default:
entity: 1e945b0b-bcf5-4df7-9105-6c222eb70c13
field_summary:
-
- value: 'A ‘quick-start’ guide for embedding accessibility and inclusive design practices into your team’s workflow'
+ value: 'A ‘quick-start’ guide for embedding accessibility and inclusive design practices into your team’s workflow
'
format: single_inline_html
field_summary_box:
-
diff --git a/web/modules/custom/default_content_config/content/node/80caaa35-a22b-43ae-a72c-9a714c333a06.yml b/web/modules/custom/default_content_config/content/node/80caaa35-a22b-43ae-a72c-9a714c333a06.yml
index 34254ad6..8aeb8458 100644
--- a/web/modules/custom/default_content_config/content/node/80caaa35-a22b-43ae-a72c-9a714c333a06.yml
+++ b/web/modules/custom/default_content_config/content/node/80caaa35-a22b-43ae-a72c-9a714c333a06.yml
@@ -6,7 +6,7 @@ _meta:
default_langcode: en
depends:
bd7fedff-9767-49b3-8a71-8bab51265a86: node
- 3c8c1a7b-5b5b-4196-b435-1fa57ff0230b: node
+ c4520a54-cd38-4be0-9158-24a61a79599e: node
6bd8641f-84c6-4ddb-b8b2-9c076b017198: media
default:
revision_uid:
@@ -40,7 +40,7 @@ default:
pathauto: 0
field_deck:
-
- value: 'easure and plan your site performance with analytics best practices and tools'
+ value: 'Measure and plan your site performance with analytics best practices and tools
'
format: single_inline_html
field_featured_communities:
-
@@ -70,8 +70,8 @@ default:
_meta:
version: '1.0'
entity_type: paragraph
- uuid: 4ced8e17-8b6b-4b67-9b11-6f2fd606134a
- bundle: internal_content
+ uuid: 1f3c5667-4d8c-4a29-806f-c13ed471e3d5
+ bundle: external_content
default_langcode: en
default:
status:
@@ -79,16 +79,44 @@ default:
value: true
created:
-
- value: 1729705485
+ value: 1735586215
behavior_settings:
-
value: { }
- field_content:
+ field_link:
-
- entity: 3c8c1a7b-5b5b-4196-b435-1fa57ff0230b
+ uri: 'https://www.youtube.com/watch?v=8zkHN3rxXHw'
+ title: 'Video: Continuously improve your website by using customer feedback and web analytics: An IRS case study (length: 31:27)'
+ options: { }
+ field_summary:
+ -
+ value: 'Learn how you can use web analytics to make improvements to user experience.
'
+ format: single_inline_html
field_title:
-
- value: 'An introduction to accessibility'
+ value: 'Analytics: Essential knowledge'
+ field_featured_resources:
+ -
+ entity:
+ _meta:
+ version: '1.0'
+ entity_type: paragraph
+ uuid: cca49c29-321a-4375-8916-cf1c855292ab
+ bundle: internal_content
+ default_langcode: en
+ default:
+ status:
+ -
+ value: true
+ created:
+ -
+ value: 1735586114
+ behavior_settings:
+ -
+ value: { }
+ field_content:
+ -
+ entity: c4520a54-cd38-4be0-9158-24a61a79599e
field_legislation:
-
uri: 'https://www.whitehouse.gov/wp-content/uploads/legacy_drupal_files/omb/memoranda/2010/m10-23.pdf'
@@ -102,5 +130,5 @@ default:
entity: 6bd8641f-84c6-4ddb-b8b2-9c076b017198
field_summary:
-
- value: 'Web analytics provide valuable insights into how users interact with a website. Use the data gained from web analytics to identify areas for improvement and make data-driven decisions. This can lead to a more user-friendly and engaging website, which can '
+ value: 'Web analytics provide valuable insights into how users interact with a website. Use the data gained from web analytics to identify areas for improvement and make data-driven decisions. This can lead to a more user-friendly and engaging website, which can
'
format: single_inline_html
diff --git a/web/modules/custom/default_content_config/content/node/91b1798f-4dec-49d6-bfee-38ed0a4f5e49.yml b/web/modules/custom/default_content_config/content/node/91b1798f-4dec-49d6-bfee-38ed0a4f5e49.yml
index c8813b1e..0c8da6c1 100644
--- a/web/modules/custom/default_content_config/content/node/91b1798f-4dec-49d6-bfee-38ed0a4f5e49.yml
+++ b/web/modules/custom/default_content_config/content/node/91b1798f-4dec-49d6-bfee-38ed0a4f5e49.yml
@@ -6,6 +6,7 @@ _meta:
default_langcode: en
depends:
cdc07606-1563-4772-9b45-11fa5d99c31a: media
+ 258cf431-4a0c-4489-807e-c87087c87cf9: node
default:
revision_uid:
-
@@ -48,6 +49,12 @@ default:
field_glossary:
-
target_id: hcd_glossary
+ field_featured_image:
+ -
+ entity: cdc07606-1563-4772-9b45-11fa5d99c31a
+ field_guide_nav_ref:
+ -
+ entity: 258cf431-4a0c-4489-807e-c87087c87cf9
field_guide_weight:
-
value: 1
diff --git a/web/modules/custom/default_content_config/content/node/b9c370f3-b204-4818-800d-660e366ebfea.yml b/web/modules/custom/default_content_config/content/node/b9c370f3-b204-4818-800d-660e366ebfea.yml
index 2afcc8e8..de903952 100644
--- a/web/modules/custom/default_content_config/content/node/b9c370f3-b204-4818-800d-660e366ebfea.yml
+++ b/web/modules/custom/default_content_config/content/node/b9c370f3-b204-4818-800d-660e366ebfea.yml
@@ -5,6 +5,7 @@ _meta:
bundle: guides
default_langcode: en
depends:
+ 258cf431-4a0c-4489-807e-c87087c87cf9: node
d5b7c563-4023-4c09-b3b9-27c5d009ec37: media
58b5051e-356e-4ace-be42-ca090259d6ab: node
default:
@@ -46,6 +47,9 @@ default:
-
value: 'A set of daily scans of the federal web presence.
'
format: single_inline_html
+ field_guide_nav_ref:
+ -
+ entity: 258cf431-4a0c-4489-807e-c87087c87cf9
field_guide_weight:
-
value: 3
diff --git a/web/modules/custom/default_content_config/content/node/c4520a54-cd38-4be0-9158-24a61a79599e.yml b/web/modules/custom/default_content_config/content/node/c4520a54-cd38-4be0-9158-24a61a79599e.yml
index dc611001..c414c3a0 100644
--- a/web/modules/custom/default_content_config/content/node/c4520a54-cd38-4be0-9158-24a61a79599e.yml
+++ b/web/modules/custom/default_content_config/content/node/c4520a54-cd38-4be0-9158-24a61a79599e.yml
@@ -5,6 +5,7 @@ _meta:
bundle: guides
default_langcode: en
depends:
+ 258cf431-4a0c-4489-807e-c87087c87cf9: node
b2f35ae8-423f-428b-865d-e420313e7a81: media
ad7aa7a5-33cf-400e-93cf-11820e467111: node
80caaa35-a22b-43ae-a72c-9a714c333a06: node
@@ -50,6 +51,9 @@ default:
field_glossary:
-
target_id: hcd_glossary
+ field_guide_nav_ref:
+ -
+ entity: 258cf431-4a0c-4489-807e-c87087c87cf9
field_guide_weight:
-
value: 5
@@ -61,7 +65,7 @@ default:
entity: b2f35ae8-423f-428b-865d-e420313e7a81
field_summary:
-
- value: 'he Digital Analytics Program (DAP) offers advanced, easy web analytics for federal agencies.
'
+ value: 'The Digital Analytics Program (DAP) offers advanced, easy web analytics for federal agencies.
'
format: single_inline_html
field_summary_box:
-
diff --git a/web/modules/custom/default_content_config/content/node/f0dc319d-abd2-4a06-bb17-1a9cd3ee3ad2.yml b/web/modules/custom/default_content_config/content/node/f0dc319d-abd2-4a06-bb17-1a9cd3ee3ad2.yml
index 54f4816e..4e8f1f04 100644
--- a/web/modules/custom/default_content_config/content/node/f0dc319d-abd2-4a06-bb17-1a9cd3ee3ad2.yml
+++ b/web/modules/custom/default_content_config/content/node/f0dc319d-abd2-4a06-bb17-1a9cd3ee3ad2.yml
@@ -4,6 +4,8 @@ _meta:
uuid: f0dc319d-abd2-4a06-bb17-1a9cd3ee3ad2
bundle: guides
default_langcode: en
+ depends:
+ 258cf431-4a0c-4489-807e-c87087c87cf9: node
default:
revision_uid:
-
@@ -34,9 +36,12 @@ default:
alias: /guides/guide-all-required-fields
langcode: en
pathauto: 1
+ field_guide_nav_ref:
+ -
+ entity: 258cf431-4a0c-4489-807e-c87087c87cf9
field_summary:
-
- value: 'A ‘quick-start’ guide for embedding accessibility and inclusive design practices into your team’s workflow'
+ value: 'A ‘quick-start’ guide for embedding accessibility and inclusive design practices into your team’s workflow
'
format: single_inline_html
field_summary_box:
-
diff --git a/web/modules/custom/default_content_config/content/user/1bf4378c-65c0-4058-a19a-936293a7f99e.yml b/web/modules/custom/default_content_config/content/user/1bf4378c-65c0-4058-a19a-936293a7f99e.yml
new file mode 100644
index 00000000..0dbcaf71
--- /dev/null
+++ b/web/modules/custom/default_content_config/content/user/1bf4378c-65c0-4058-a19a-936293a7f99e.yml
@@ -0,0 +1,52 @@
+_meta:
+ version: '1.0'
+ entity_type: user
+ uuid: 1bf4378c-65c0-4058-a19a-936293a7f99e
+ default_langcode: en
+default:
+ preferred_langcode:
+ -
+ value: en
+ preferred_admin_langcode:
+ -
+ value: en
+ name:
+ -
+ value: identifieradmin@example.com
+ pass:
+ -
+ value: $2y$10$Ja6HIAHhUtvQoANzF8v.9eODuE7S5MXdfEErjNq5mLOHzZMWxG0Zq
+ existing: ''
+ pre_hashed: true
+ mail:
+ -
+ value: identifieradmin@example.com
+ timezone:
+ -
+ value: America/New_York
+ status:
+ -
+ value: true
+ created:
+ -
+ value: 1735751282
+ access:
+ -
+ value: 0
+ login:
+ -
+ value: 0
+ init:
+ -
+ value: identifieradmin@example.com
+ roles:
+ -
+ target_id: identifier_admin
+ role_change:
+ -
+ target_id: __role_delegation_empty_field_value__
+ path:
+ -
+ alias: ''
+ langcode: en
+ pathauto: 0
diff --git a/web/modules/custom/default_content_config/content/user/fd18104a-d557-4851-a7cb-dd573d347c35.yml b/web/modules/custom/default_content_config/content/user/fd18104a-d557-4851-a7cb-dd573d347c35.yml
new file mode 100644
index 00000000..49a87e57
--- /dev/null
+++ b/web/modules/custom/default_content_config/content/user/fd18104a-d557-4851-a7cb-dd573d347c35.yml
@@ -0,0 +1,52 @@
+_meta:
+ version: '1.0'
+ entity_type: user
+ uuid: fd18104a-d557-4851-a7cb-dd573d347c35
+ default_langcode: en
+default:
+ preferred_langcode:
+ -
+ value: en
+ preferred_admin_langcode:
+ -
+ value: en
+ name:
+ -
+ value: guidenavadmin@example.com
+ pass:
+ -
+ value: $2y$10$cYsRV4MUpmsENfB2LNP.9e2nyrP5ncYFr0z12N09Dh20H.iAV8pzS
+ existing: ''
+ pre_hashed: true
+ mail:
+ -
+ value: guidenavadmin@example.com
+ timezone:
+ -
+ value: America/New_York
+ status:
+ -
+ value: true
+ created:
+ -
+ value: 1735751268
+ access:
+ -
+ value: 0
+ login:
+ -
+ value: 0
+ init:
+ -
+ value: guidenavadmin@example.com
+ roles:
+ -
+ target_id: guide_navigation_admin
+ role_change:
+ -
+ target_id: __role_delegation_empty_field_value__
+ path:
+ -
+ alias: ''
+ langcode: en
+ pathauto: 0
diff --git a/web/modules/custom/default_content_config/default_content_config.module b/web/modules/custom/default_content_config/default_content_config.module
new file mode 100644
index 00000000..5feea4b6
--- /dev/null
+++ b/web/modules/custom/default_content_config/default_content_config.module
@@ -0,0 +1,28 @@
+getFileUri(), 'oembed_thumbnails')) {
+ return TRUE;
+ }
+ }
+ // Exporting user 1 and 0 will break fresh site installs.
+ if ($entity instanceof UserInterface) {
+ if (in_array((int) $entity->id(), [0, 1])) {
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
diff --git a/web/themes/custom/digital_gov/digital_gov.theme b/web/themes/custom/digital_gov/digital_gov.theme
index 9fc670e7..47ce0c65 100644
--- a/web/themes/custom/digital_gov/digital_gov.theme
+++ b/web/themes/custom/digital_gov/digital_gov.theme
@@ -8,7 +8,10 @@
declare(strict_types=1);
use Drupal\Core\Datetime\DrupalDateTime;
+use Drupal\Core\Link;
use Drupal\Core\Template\Attribute;
+use Drupal\node\Entity\Node;
+use Drupal\paragraphs\Entity\Paragraph;
/**
* @file
@@ -37,6 +40,9 @@ function digital_gov_preprocess_node(array &$variables): void {
$created = DrupalDateTime::createFromTimestamp($variables['node']->getCreatedTime());
$variables['created'] = $created->format('M j, Y');
+ $site_config = \Drupal::config('system.site');
+ $variables['site_name'] = $site_config->get('name');
+
switch ($variables['node']->bundle()) {
case 'news':
$before_date = new DrupalDateTime('5 years ago');
@@ -47,7 +53,155 @@ function digital_gov_preprocess_node(array &$variables): void {
$variables['is_future_event'] = $variables['node']->getCreatedTime() > \Drupal::time()->getRequestTime();
break;
+ case 'guides':
+ digital_gov_preprocess_node_guides($variables);
+ break;
+ }
+}
+
+/**
+ * Preprocess function for guide nodes.
+ */
+function digital_gov_preprocess_node_guides(&$variables): void {
+ $guide = $variables['node'];
+ // Set defaults.
+ $variables['show_reading_time'] = FALSE;
+ $variables['show_next_previous'] = FALSE;
+ $variables['show_in_page_nav'] = FALSE;
+ $variables['is_guide_overview'] = FALSE;
+ $variables['show_summary_box'] = $guide->get('field_summary_box')[0]->get('value')->getCastedValue();
+
+ if (
+ ($nav_nid = (int) $guide->field_guide_nav_ref[0]?->target_id)
+ && $nav_node = Node::load($nav_nid)
+ ) {
+ $links = digital_gov_get_guidenav_links($nav_node, $variables['url']);
+ $variables = array_merge($variables, $links);
+
+ $variables['show_next_previous'] = $nav_node->field_show_next_previous?->value === "1";
+ $variables['show_reading_time'] = $nav_node->field_show_read_time?->value === "1";
+ $variables['show_in_page_nav'] = $nav_node->field_show_in_page_nav?->value === "1";
+ $variables['is_guide_overview'] = FALSE;
+
+ if ($links['guide_start_link']) {
+ $variables['is_guide_overview'] = ($variables['url'] === $links['guide_start_link']->getUrl()->toString());
+ }
+ }
+
+ if ($variables['show_reading_time']) {
+ // @todo Fix - where does reading time value come from?
+ $reading_time = 1;
+ $variables['reading_time'] = $reading_time . ' minute' . ($reading_time > 1 ? 's' : '');
+
+ }
+
+}
+
+/**
+ * Builds an array we can add to $variables with guide navigation info.
+ */
+function digital_gov_get_guidenav_links(Node $node, string $current): array {
+ // Anonymous helper for getting node links.
+ $makeLink = function (Node $page): Link {
+ // Override the navigation title if set in the node.
+ return $page->toLink($page->get('field_guide_nav_title')->getString()
+ ?: $page->label());
+ };
+
+ // The guide_nav is an array that holds items with the following keys
+ // - 'link': A Link object the main link used the menu bar
+ // - 'subnav': an array of Link objects of links if the sidenav is shown.
+ $links['guide_nav'] = [];
+
+ if ($start_page = $node->get('field_guide_start_page')->first()->get('entity')->getTarget()->getValue()) {
+ $links['guide_start_node'] = $start_page;
+ $links['guide_start_link'] = $makeLink($start_page);
+ $links['guide_start_link']->setText(\t('Overview'));
+
+ // Assume this is open unless we find out otherwise later.
+ $links['guide_current_index'] = 0;
+ if ($featured_image = $start_page->get('field_featured_image')->first()->get('entity')->getTarget()->getValue()) {
+ $media = $featured_image->get('field_media_image')->first();
+ $links['guide_featured_image'] = $media;
+ }
+
+ $links['guide_nav'][] = ['link' => $links['guide_start_link']];
+ }
+
+ if ($parent_guide = $node->get('field_parent_guide')->first()?->get('entity')->getValue()) {
+ $links['guide_parent_link'] = $makeLink($parent_guide);
}
+
+ if ($node->field_guide_navigation) {
+ // Generate the two-levels of nav links for this guide.
+ ;
+ foreach ($node->field_guide_navigation as $ref) {
+ // This field points at a paragraph entity.
+ $para = Paragraph::load($ref->target_revision_id);
+
+ if ($para->field_guide_link->target_id) {
+ $guidePage = $para->get('field_guide_link')->referencedEntities()[0];
+ if (!$guidePage->isPublished()) {
+ continue;
+ }
+
+ // Add the link to the navigation.
+ $link = $makeLink($guidePage);
+
+ $item['link'] = $link;
+
+ if ($para->field_guide_subnav) {
+ $subNavNodes = $para->get('field_guide_subnav')->referencedEntities();
+ $subNavNodes = array_filter($subNavNodes, fn(Node $node) => $node->isPublished());
+ if ($subNavNodes) {
+ $item['subnav'] = array_map($makeLink, $subNavNodes);
+ // If the current page is in the subnav, mark the parent as current.
+ $current_in_subnav = array_filter($item['subnav'], function (Link $subItem) use ($current) {
+ return $subItem->getUrl()->toString() === $current;
+ });
+ if ($current_in_subnav) {
+ // We haven't added our item to the guidenav, add 1 to the index.
+ $links['guide_current_index'] = isset($links['guide_nav']) ? array_key_last($links['guide_nav']) + 1 : 0;
+ }
+ }
+ }
+ $links['guide_nav'][] = $item;
+ if ($item['link']->getUrl()->toString() === $current) {
+ // Mark which top-level page is open.
+ $links['guide_current_index'] = array_key_last($links['guide_nav']);
+ }
+ }
+ }
+ }
+
+ // Here, figure out the next/previous links.
+ // We need a flat list of all the URLs in the guide nav keyed by URL.
+ $allTheUrls = [];
+ if ($links['guide_start_link']) {
+ $allTheUrls[$links['guide_start_link']->getUrl()->toString()] = $links['guide_start_link'];
+ }
+ array_walk_recursive(
+ $links['guide_nav'],
+ function ($link) use (&$allTheUrls) {
+ $allTheUrls[$link->getUrl()->toString()] = $link;
+ }
+ );
+
+ // $keyMap tells us what numeric slot each URL is found in.
+ $keyMap = array_keys($allTheUrls);
+ if ($allTheUrls && FALSE !== ($currentKey = array_search($current, $keyMap))) {
+ if (isset($keyMap[$currentKey - 1])) {
+ $prevKey = $keyMap[$currentKey - 1];
+ $links['guide_prev'] = $allTheUrls[$prevKey];
+ }
+
+ if (isset($keyMap[$currentKey + 1])) {
+ $nextKey = $keyMap[$currentKey + 1];
+ $links['guide_next'] = $allTheUrls[$nextKey];
+ }
+ }
+
+ return $links;
}
/**
diff --git a/web/themes/custom/digital_gov/js/summary-box.js b/web/themes/custom/digital_gov/js/summary-box.js
index ec6e24df..c374a2ed 100644
--- a/web/themes/custom/digital_gov/js/summary-box.js
+++ b/web/themes/custom/digital_gov/js/summary-box.js
@@ -17,7 +17,7 @@
* and filter out h2's we do not want to show with the :not selector
*/
const pageHeaders = document.querySelectorAll(
- "h2:not(.usa-summary-box__heading, .dg-guide__content-header-title, .dg-glossary__header)"
+ "h2:not(.usa-summary-box__heading, .dg-guide__content-header-title, .dg-glossary__header, .visually-hidden)"
);
/**
diff --git a/web/themes/custom/digital_gov/static/digitalgov/img/logos/digit-100.svg b/web/themes/custom/digital_gov/static/digitalgov/img/logos/digit-100.svg
new file mode 100644
index 00000000..cb0030a2
--- /dev/null
+++ b/web/themes/custom/digital_gov/static/digitalgov/img/logos/digit-100.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/web/themes/custom/digital_gov/static/digitalgov/img/logos/digitalgov-logo.svg b/web/themes/custom/digital_gov/static/digitalgov/img/logos/digitalgov-logo.svg
new file mode 100644
index 00000000..e3a006cc
--- /dev/null
+++ b/web/themes/custom/digital_gov/static/digitalgov/img/logos/digitalgov-logo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/web/themes/custom/digital_gov/templates/field/field--node--field-summary--guides.html.twig b/web/themes/custom/digital_gov/templates/field/field--node--field-summary--guides.html.twig
new file mode 100644
index 00000000..f216be3c
--- /dev/null
+++ b/web/themes/custom/digital_gov/templates/field/field--node--field-summary--guides.html.twig
@@ -0,0 +1,46 @@
+{#
+/**
+ * @file
+ * Default theme implementation for a field.
+ *
+ * To override output, copy the "field.html.twig" from the templates directory
+ * to your theme's directory and customize it, just like customizing other
+ * Drupal templates such as page.html.twig or node.html.twig.
+ *
+ * Instead of overriding the theming for all fields, you can also just override
+ * theming for a subset of fields using
+ * @link themeable Theme hook suggestions. @endlink For example,
+ * here are some theme hook suggestions that can be used for a field_foo field
+ * on an article node type:
+ * - field--node--field-foo--article.html.twig
+ * - field--node--field-foo.html.twig
+ * - field--node--article.html.twig
+ * - field--field-foo.html.twig
+ * - field--text-with-summary.html.twig
+ * - field.html.twig
+ *
+ * Available variables:
+ * - attributes: HTML attributes for the containing element.
+ * - label_hidden: Whether to show the field label or not.
+ * - title_attributes: HTML attributes for the title.
+ * - label: The label for the field.
+ * - multiple: TRUE if a field can contain multiple items.
+ * - items: List of all the field items. Each item contains:
+ * - attributes: List of HTML attributes for each item.
+ * - content: The field item's content.
+ * - entity_type: The entity type to which the field belongs.
+ * - field_name: The name of the field.
+ * - field_type: The type of the field.
+ * - label_display: The display settings for the label.
+ *
+ * @see template_preprocess_field()
+ *
+ * @ingroup themeable
+ */
+#}
+
+{% for item in items %}
+
+{% endfor %}
diff --git a/web/themes/custom/digital_gov/templates/node/node--guides.html.twig b/web/themes/custom/digital_gov/templates/node/node--guides.html.twig
index 8cab1661..c6a84bb1 100644
--- a/web/themes/custom/digital_gov/templates/node/node--guides.html.twig
+++ b/web/themes/custom/digital_gov/templates/node/node--guides.html.twig
@@ -65,22 +65,21 @@
#}
- {{ include('@digital_gov/partials/guides/guide-header.html.twig') }}
-
- {# NOT - MIGRATED
- {-- partial "core/guides/guide-menu-bar.html" . -}
- #}
- {# NOT - MIGRATED
- {% if .Params.guide %}
- {{ $guideData = index $.Site.Data.guidenav (.Params.guide) }}
+ {% if (guide_start_node) %}
+ {{ include('@digital_gov/partials/guides/guide-header.html.twig', {
+ node: guide_start_node,
+ parent_link: guide_parent_link,
+ featured_image: guide_featured_image,
+ }, with_context=false)
+ }}
{% endif %}
- #}
- {% if guideData.showInPageNav %}
+
+ {{ include('@digital_gov/partials/guides/guide-menu-bar.html.twig') }}
+
+ {% if show_in_page_nav %}
- [placeholder guide side bav]
- {# NOT - MIGRATED #}
- {# partial "core/guides/guide-sidenav.html" . #}
+ {{ include('@digital_gov/partials/guides/guide-sidenav.html.twig') }}
{{ include('@digital_gov/partials/guides/guide-content.html.twig') }}
diff --git a/web/themes/custom/digital_gov/templates/partials/guides/guide-content.html.twig b/web/themes/custom/digital_gov/templates/partials/guides/guide-content.html.twig
index b0172a31..ebce9bfc 100644
--- a/web/themes/custom/digital_gov/templates/partials/guides/guide-content.html.twig
+++ b/web/themes/custom/digital_gov/templates/partials/guides/guide-content.html.twig
@@ -1,20 +1,73 @@
- [placeholder Guide Content Header]
- {# NOT-MIGRATED
- {{ partial "core/guides/guide-content-header.html" . }}
- #}
+
+
- {{ content }}
+ {{ content.body }}