feat: publisher, local business and home crumb settings

- Publisher and Local business tabs with the C20 refusals (sameAs lines,
  person as local business, address, times, country, coordinates)
- the publisher node from the settings, as an Organization, a Person or
  the chosen local business type with address, geo and opening hours
- P8 publisher preview with Google's required and recommended findings
  (classes/schema Validate)
- the home crumb name on the General tab; every new key in the settings
  API and seo_update_settings
This commit is contained in:
Jakub Zych
2026-11-04 14:14:59 +01:00
parent ea2ce24954
commit fde5024b5a
13 changed files with 938 additions and 52 deletions

View File

@@ -2,9 +2,9 @@
# Form Field Definitions
# ===================================
#
# SEO settings (UI-SPEC C11): General, one tab per content type (added by
# the plugin's form extension after General), Indexing, Addresses, Links
# (UI-SPEC C20) and Verification.
# SEO settings (UI-SPEC C11, C20): General, one tab per content type (added
# by the plugin's form extension after General), Indexing, Addresses,
# Links, Publisher, Local business and Verification.
fields:
_staging:
@@ -27,6 +27,13 @@ fields:
span: right
tab: golem15.seo::lang.settings.tab_general
breadcrumb_home:
label: golem15.seo::lang.settings.breadcrumb_home
comment: golem15.seo::lang.settings.breadcrumb_home_comment
type: mltext
span: right
tab: golem15.seo::lang.settings.tab_general
title_template:
label: golem15.seo::lang.settings.title_template
comment: golem15.seo::lang.settings.title_template_comment
@@ -163,6 +170,215 @@ fields:
span: right
tab: golem15.seo::lang.settings.tab_links
publisher_type:
label: golem15.seo::lang.settings.publisher_type
comment: golem15.seo::lang.settings.publisher_type_comment
type: dropdown
span: left
default: organization
options:
organization: golem15.seo::lang.settings.publisher_org
person: golem15.seo::lang.settings.publisher_person
tab: golem15.seo::lang.settings.tab_publisher
publisher_name:
label: golem15.seo::lang.settings.publisher_name
comment: golem15.seo::lang.settings.publisher_name_comment
type: mltext
span: right
tab: golem15.seo::lang.settings.tab_publisher
publisher_logo:
label: golem15.seo::lang.settings.publisher_logo
comment: golem15.seo::lang.settings.publisher_logo_comment
type: seoimage
span: full
tab: golem15.seo::lang.settings.tab_publisher
publisher_url:
label: golem15.seo::lang.settings.publisher_url
comment: golem15.seo::lang.settings.publisher_url_comment
type: text
span: left
tab: golem15.seo::lang.settings.tab_publisher
publisher_email:
label: golem15.seo::lang.settings.publisher_email
type: text
span: right
tab: golem15.seo::lang.settings.tab_publisher
publisher_phone:
label: golem15.seo::lang.settings.publisher_phone
comment: golem15.seo::lang.settings.publisher_phone_comment
type: text
span: left
tab: golem15.seo::lang.settings.tab_publisher
publisher_same_as:
label: golem15.seo::lang.settings.publisher_same_as
comment: golem15.seo::lang.settings.publisher_same_as_comment
type: textarea
size: small
span: full
tab: golem15.seo::lang.settings.tab_publisher
_publisher_preview:
label: golem15.seo::lang.settings.publisher_preview
type: partial
path: publisher_preview
span: full
context: update
tab: golem15.seo::lang.settings.tab_publisher
local_enabled:
label: golem15.seo::lang.settings.local_enabled
comment: golem15.seo::lang.settings.local_enabled_comment
type: switch
span: full
default: false
tab: golem15.seo::lang.settings.tab_local
local_type:
label: golem15.seo::lang.settings.local_type
type: dropdown
span: left
default: LocalBusiness
options:
LocalBusiness: golem15.seo::lang.settings.local_type_local_business
ProfessionalService: golem15.seo::lang.settings.local_type_professional_service
Store: golem15.seo::lang.settings.local_type_store
FoodEstablishment: golem15.seo::lang.settings.local_type_food_establishment
HealthAndBeautyBusiness: golem15.seo::lang.settings.local_type_health_and_beauty_business
MedicalBusiness: golem15.seo::lang.settings.local_type_medical_business
LegalService: golem15.seo::lang.settings.local_type_legal_service
HomeAndConstructionBusiness: golem15.seo::lang.settings.local_type_home_and_construction_business
AutomotiveBusiness: golem15.seo::lang.settings.local_type_automotive_business
FinancialService: golem15.seo::lang.settings.local_type_financial_service
tab: golem15.seo::lang.settings.tab_local
trigger:
action: hide
field: local_enabled
condition: unchecked
local_price_range:
label: golem15.seo::lang.settings.local_price_range
comment: golem15.seo::lang.settings.local_price_range_comment
type: text
span: right
tab: golem15.seo::lang.settings.tab_local
trigger:
action: hide
field: local_enabled
condition: unchecked
local_street:
label: golem15.seo::lang.settings.local_street
type: text
span: full
tab: golem15.seo::lang.settings.tab_local
trigger:
action: hide
field: local_enabled
condition: unchecked
local_postal_code:
label: golem15.seo::lang.settings.local_postal_code
type: text
span: left
tab: golem15.seo::lang.settings.tab_local
trigger:
action: hide
field: local_enabled
condition: unchecked
local_city:
label: golem15.seo::lang.settings.local_city
type: text
span: right
tab: golem15.seo::lang.settings.tab_local
trigger:
action: hide
field: local_enabled
condition: unchecked
local_region:
label: golem15.seo::lang.settings.local_region
type: text
span: left
tab: golem15.seo::lang.settings.tab_local
trigger:
action: hide
field: local_enabled
condition: unchecked
local_country:
label: golem15.seo::lang.settings.local_country
comment: golem15.seo::lang.settings.local_country_comment
type: text
span: right
tab: golem15.seo::lang.settings.tab_local
trigger:
action: hide
field: local_enabled
condition: unchecked
local_latitude:
label: golem15.seo::lang.settings.local_latitude
comment: golem15.seo::lang.settings.local_coordinates_comment
type: text
span: left
tab: golem15.seo::lang.settings.tab_local
trigger:
action: hide
field: local_enabled
condition: unchecked
local_longitude:
label: golem15.seo::lang.settings.local_longitude
comment: golem15.seo::lang.settings.local_coordinates_comment
type: text
span: right
tab: golem15.seo::lang.settings.tab_local
trigger:
action: hide
field: local_enabled
condition: unchecked
local_hours:
label: golem15.seo::lang.settings.local_hours
comment: golem15.seo::lang.settings.local_hours_comment
type: repeater
prompt: golem15.seo::lang.settings.local_hours_add
titleFrom: day
span: full
tab: golem15.seo::lang.settings.tab_local
form:
fields:
day:
label: golem15.seo::lang.settings.hours_day
type: dropdown
span: left
default: mon
options:
mon: golem15.seo::lang.settings.day_mon
tue: golem15.seo::lang.settings.day_tue
wed: golem15.seo::lang.settings.day_wed
thu: golem15.seo::lang.settings.day_thu
fri: golem15.seo::lang.settings.day_fri
sat: golem15.seo::lang.settings.day_sat
sun: golem15.seo::lang.settings.day_sun
opens:
label: golem15.seo::lang.settings.hours_opens
comment: golem15.seo::lang.settings.hours_time_comment
type: text
span: left
closes:
label: golem15.seo::lang.settings.hours_closes
comment: golem15.seo::lang.settings.hours_time_comment
type: text
span: right
verify_google:
label: golem15.seo::lang.settings.verify_google
comment: golem15.seo::lang.settings.verify_code_comment