feat: sitemap settings singleton with content types and additional addresses

- one settings tile opening the golem15.sitemap.settings singleton
- Files tab (site address, file size, S1 files partial), Additional
  addresses repeater, Content types tab built from signpost at boot
- golem15_sitemap_types; a type switched off leaves the files (reason type)
- a save validates (errors.*) and dispatches a rebuild after commit
This commit is contained in:
Jakub Zych
2026-11-04 11:06:29 +01:00
parent 3359f1a196
commit 3ba70bb69f
20 changed files with 1304 additions and 337 deletions

View File

@@ -2,67 +2,49 @@
# Form Field Definitions
# ===================================
#
# The WinterCMS form's nginx hint and Priority Tiers section are field
# comments and README text here, and the tier fields always show (the
# trigger on enable_priority_tiers is not ported).
# Sitemap settings (UI-SPEC C26): Files, Content types (one block per
# signpost content type, added by the plugin's form extension after Files)
# and Additional addresses. A repeater row takes no date picker, so an
# additional address's lastmod is a text field read as YYYY-MM-DD.
fields:
frontend_url:
label: golem15.sitemap::lang.settings.frontend_url
comment: golem15.sitemap::lang.settings.frontend_url_comment
site_url:
label: golem15.sitemap::lang.settings.site_url
comment: golem15.sitemap::lang.settings.site_url_comment
type: text
span: left
tab: golem15.sitemap::lang.settings.tab_files
frontend_default_locale:
label: golem15.sitemap::lang.settings.frontend_default_locale
comment: golem15.sitemap::lang.settings.frontend_default_locale_comment
type: text
file_size:
label: golem15.sitemap::lang.settings.file_size
comment: golem15.sitemap::lang.settings.file_size_comment
type: number
default: 1000
span: right
tab: golem15.sitemap::lang.settings.tab_files
updates_manifest_path:
label: golem15.sitemap::lang.settings.updates_manifest_path
comment: golem15.sitemap::lang.settings.updates_manifest_path_comment
type: text
_files:
type: partial
path: sitemap_files
span: full
tab: golem15.sitemap::lang.settings.tab_files
enable_priority_tiers:
label: golem15.sitemap::lang.settings.enable_priority_tiers
comment: golem15.sitemap::lang.settings.enable_priority_tiers_comment
type: checkbox
default: true
extra_urls:
label: golem15.sitemap::lang.settings.extra_urls
comment: golem15.sitemap::lang.settings.extra_urls_comment
type: repeater
prompt: golem15.sitemap::lang.settings.extra_urls_add
titleFrom: url
span: full
priority_homepage:
label: golem15.sitemap::lang.settings.priority_homepage
comment: golem15.sitemap::lang.settings.priority_homepage_comment
type: text
default: '1.0'
span: auto
priority_services:
label: golem15.sitemap::lang.settings.priority_services
comment: golem15.sitemap::lang.settings.priority_services_comment
type: text
default: '0.8'
span: auto
priority_blog:
label: golem15.sitemap::lang.settings.priority_blog
comment: golem15.sitemap::lang.settings.priority_blog_comment
type: text
default: '0.6'
span: auto
priority_categories:
label: golem15.sitemap::lang.settings.priority_categories
comment: golem15.sitemap::lang.settings.priority_categories_comment
type: text
default: '0.4'
span: auto
priority_legal:
label: golem15.sitemap::lang.settings.priority_legal
comment: golem15.sitemap::lang.settings.priority_legal_comment
type: text
default: '0.2'
span: auto
tab: golem15.sitemap::lang.settings.tab_extra
form:
fields:
url:
label: golem15.sitemap::lang.settings.extra_url
type: text
span: left
lastmod:
label: golem15.sitemap::lang.settings.extra_url_lastmod
comment: golem15.sitemap::lang.settings.extra_url_lastmod_comment
type: text
span: right