295 lines
11 KiB
YAML
295 lines
11 KiB
YAML
###############################################################
|
||
# Content Blöcke
|
||
###############################################################
|
||
|
||
# Name/URL-Anteil der Kollektion
|
||
name: content
|
||
uploadPath: ../media/content
|
||
|
||
# Metaangaben zur Kollektion welche in der Admin-UI verwendet werden können
|
||
meta:
|
||
# Navigationseintrag in der Admin-UI
|
||
label: { de: "Seiten / Inhalte", en: "Pages / Content" }
|
||
# Icon (Material UI) für den Navigationseintrag
|
||
muiIcon: web
|
||
# Identifizierung eines Eintrags für z.B. Select-Boxen in der Admin-UI
|
||
rowIdentTpl: { twig: "{{ path }}" }
|
||
# Standardsortierung der Liste
|
||
defaultSort: { field: "path", order: "ASC" }
|
||
# Admin-Backend Ansichten
|
||
defaultImageFilter: s
|
||
views:
|
||
# Mobile Darstellung
|
||
- type: simpleList
|
||
mediaQuery: "(max-width:599px)"
|
||
primaryText: path
|
||
columns:
|
||
- source: public
|
||
- source: locale
|
||
type: flag
|
||
- source: path
|
||
# Desktop
|
||
- type: table
|
||
mediaQuery: "(min-width:600px)"
|
||
columns:
|
||
- source: public
|
||
- source: type
|
||
- source: locale
|
||
type: flag
|
||
- source: path
|
||
- source: project.general.title
|
||
|
||
subNavigation:
|
||
- name: page
|
||
label:
|
||
de: Standardseiten
|
||
en: Default Pages
|
||
muiIcon: book-open-page-variant
|
||
defaultSort:
|
||
field: "path"
|
||
order: "ASC"
|
||
views:
|
||
- type: simpleList
|
||
mediaQuery: "(max-width:599px)"
|
||
primaryText: titel
|
||
secondaryText: path
|
||
tertiaryText: public
|
||
columns:
|
||
- source: public
|
||
filter: true
|
||
- source: locale
|
||
type: flag
|
||
- source: path
|
||
- type: table
|
||
mediaQuery: "(min-width:600px)"
|
||
columns:
|
||
- source: public
|
||
filter: true
|
||
- source: locale
|
||
type: flag
|
||
- source: path
|
||
- source: updateTime
|
||
label: { de: "letzte Aktualisierung", en: "last update" }
|
||
type: date
|
||
filter:
|
||
type: page
|
||
|
||
tablist:
|
||
# meta:
|
||
# expand: contentTab
|
||
tabs:
|
||
- name: general
|
||
label: { de: "Allgemein", en: "General" }
|
||
subFields:
|
||
- source: public
|
||
- source: path
|
||
- source: locale
|
||
- source: type
|
||
- source: tags
|
||
- name: meta
|
||
label: { de: "Meta", en: "Meta" }
|
||
subFields:
|
||
- source: meta
|
||
- name: contentTab
|
||
label: { de: "Seiteninhalt", en: "Page Content" }
|
||
subFields:
|
||
- source: pageBuilder
|
||
- name: project
|
||
label: { de: "Projektdetails", en: "Project Details" }
|
||
dependsOn:
|
||
eval: $.type?.includes("project")
|
||
subFields:
|
||
- source: project
|
||
|
||
imageFilter:
|
||
xs:
|
||
- fit: true
|
||
height: 90
|
||
width: 90
|
||
resampling: "lanczos"
|
||
quality: 60
|
||
s:
|
||
- fit: true
|
||
height: 300
|
||
width: 300
|
||
resampling: "lanczos"
|
||
quality: 60
|
||
m:
|
||
- fit: true
|
||
height: 600
|
||
width: 600
|
||
resampling: "lanczos"
|
||
quality: 60
|
||
l:
|
||
- fit: true
|
||
height: 1200
|
||
width: 1200
|
||
resampling: "lanczos"
|
||
quality: 60
|
||
xl:
|
||
- fit: true
|
||
height: 2000
|
||
width: 2000
|
||
resampling: "lanczos"
|
||
quality: 60
|
||
|
||
# Zugriff auf diese Kollektion
|
||
permissions:
|
||
# öffentlicher Zugriff
|
||
public:
|
||
methods:
|
||
# Liste und Einzeleinträge lesen
|
||
get: true
|
||
# neuen Eintrag anlegen
|
||
post: false
|
||
# Eintrag editieren
|
||
put: false
|
||
# Eintrag löschen
|
||
delete: false
|
||
# zum Projekt zugeordneter Benutzer ohne Zusatzberechtigungen
|
||
user:
|
||
methods:
|
||
# Liste und Einzeleinträge lesen
|
||
get: true
|
||
# neuen Eintrag anlegen
|
||
post: true
|
||
# Eintrag editieren
|
||
put: true
|
||
# Eintrag löschen
|
||
delete: true
|
||
# token als Zusatzsicherung gegen Spam, mehr siehe Hook
|
||
"token:${PUBLIC_TOKEN}":
|
||
methods:
|
||
# Liste und Einzeleinträge lesen
|
||
get: false
|
||
# neuen Eintrag anlegen
|
||
post: false
|
||
# Eintrag editieren
|
||
put: false
|
||
# Eintrag löschen
|
||
delete: false
|
||
|
||
hooks:
|
||
post:
|
||
create:
|
||
type: javascript
|
||
file: hooks/content/post_create.js
|
||
put:
|
||
update:
|
||
type: javascript
|
||
file: hooks/content/put_update.js
|
||
|
||
# Feldliste der Kollektion
|
||
fields:
|
||
# Allgemeine Felder
|
||
- name: public
|
||
type: boolean
|
||
meta:
|
||
filter: true
|
||
label:
|
||
de: Veröffentlicht
|
||
en: Public
|
||
helperText:
|
||
de: Der Inhalt wird auf der Seite angezeigt.
|
||
en: This content is displayed on the page.
|
||
- name: path
|
||
type: string
|
||
index: [single, unique]
|
||
meta:
|
||
filter: true
|
||
label: { de: "Pfad", en: "Path" }
|
||
helperText:
|
||
de: "Der Pfad muss eindeutig sein, und zwingend ohne einen Slash (/) beginnen und enden."
|
||
en: "The path must be unique and must start and end without a slash (/)."
|
||
- !include fields/_locale.yml
|
||
- name: type
|
||
type: string[]
|
||
index: [single]
|
||
meta:
|
||
widget: chipArray
|
||
filter: true
|
||
defaultValue:
|
||
eval: |
|
||
$navigation?.name ? [$navigation.name] : []
|
||
label:
|
||
de: Inhaltstyp
|
||
en: type of content
|
||
autocomplete: true
|
||
choices:
|
||
- id: page
|
||
name:
|
||
de: Seite (Standard)
|
||
en: Page (Standard)
|
||
- id: PageProjects
|
||
name:
|
||
de: Seite (Projekte)
|
||
en: Page (Projects)
|
||
- id: project
|
||
name:
|
||
de: Projekt
|
||
en: Project
|
||
- name: tags
|
||
type: string[]
|
||
meta:
|
||
widget: chipArray
|
||
helperText:
|
||
de: "Über die Zuweisung von Schlagworten, können Seiten noch einmal genauer kategorisiert werden."
|
||
en: "Pages can be categorized more precisely by assigning keywords."
|
||
label:
|
||
de: Schlagwort / Tag / Label
|
||
en: Kayword / Tag / Label
|
||
addAllowed: true
|
||
choices:
|
||
endpoint: "tags"
|
||
mapping:
|
||
id: "name"
|
||
name: "name"
|
||
params:
|
||
sort: "name"
|
||
|
||
# Felder für Meta-Informationen der Seite (Meta-Tags) im Tab "Meta"
|
||
- name: meta
|
||
type: object
|
||
subFields:
|
||
- name: metaTitle
|
||
type: string
|
||
meta:
|
||
label: { de: "Titel der Webseite", en: "Page Title" }
|
||
- name: metaDescription
|
||
type: string
|
||
meta:
|
||
label: { de: "Beschreibung der Webseite", en: "Page Description" }
|
||
- name: metaTagRobots
|
||
type: string[]
|
||
meta:
|
||
widget: chipArray
|
||
label:
|
||
de: Robots
|
||
en: Robots
|
||
defaultValue: []
|
||
autocomplete: true
|
||
choices:
|
||
- { id: "noindex", name: "noindex" }
|
||
- { id: "index", name: "index" }
|
||
- { id: "follow", name: "follow" }
|
||
- { id: "nofollow", name: "nofollow" }
|
||
- { id: "noimageindex", name: "noimageindex" }
|
||
- { id: "none", name: "none" }
|
||
- { id: "noarchive", name: "noarchive" }
|
||
- { id: "nocache", name: "nocache" }
|
||
- { id: "nosnippet", name: "nosnippet" }
|
||
- { id: "nnavailable_after", name: "nnavailable_after" }
|
||
helperText:
|
||
de: "<strong>Noindex</strong>: Weist eine Suchmaschine an, eine Seite nicht zu indizieren.<br/><strong>index</strong>: Weist eine Suchmaschine an, eine Seite zu indizieren. Beachten Sie, dass Sie dieses Meta-Tag nicht hinzufügen müssen; es ist die Voreinstellung.<br/><strong>follow</strong>: Auch wenn die Seite nicht indexiert ist, sollte der Crawler allen Links auf einer Seite folgen und Eigenkapital an die verlinkten Seiten weitergeben.<br/><strong>nofollow</strong>: Weist einen Crawler an, keinen Links auf einer Seite zu folgen oder Link-Equity weiterzugeben.<br/><strong>noimageindex</strong>: Weist einen Crawler an, keine Bilder auf einer Seite zu indizieren.<br/><strong>none</strong>: Entspricht der gleichzeitigen Verwendung der noindex- und nofollow-Tags.<br/><strong>noarchive</strong>: Suchmaschinen sollten keinen zwischengespeicherten Link zu dieser Seite auf einem SERP anzeigen.<br/><strong>nocache</strong>: Wie noarchive, aber nur von Internet Explorer und Firefox verwendet.<br/><strong>nosnippet</strong>: Weist eine Suchmaschine an, kein Snippet dieser Seite (d. h. Meta-Beschreibung) dieser Seite auf einem SERP anzuzeigen.<br/><strong>nnavailable_after</strong>: Suchmaschinen sollen diese Seite nach einem bestimmten Datum nicht mehr indexieren.<br/>"
|
||
en: "<strong>Noindex</strong>: Tells a search engine not to index a page.<br/><strong>index</strong>: Tells a search engine to index a page. Note that you don’t need to add this meta tag; it’s the default.<br/><strong>follow</strong>: Even if the page isn’t indexed, the crawler should follow all the links on a page and pass equity to the linked pages.<br/><strong>nofollow</strong>: Tells a crawler not to follow any links on a page or pass along any link equity.<br/><strong>noimageindex</strong>: Tells a crawler not to index any images on a page.<br/><strong>none</strong>: Equivalent to using both the noindex and nofollow tags simultaneously.<br/><strong>noarchive</strong>: Search engines should not show a cached link to this page on a SERP.<br/><strong>nocache</strong>: Same as noarchive, but only used by Internet Explorer and Firefox.<br/><strong>nosnippet</strong>: Tells a search engine not to show a snippet of this page (i.e. meta description) of this page on a SERP.<br/><strong>nnavailable_after</strong>: Search engines should no longer index this page after a particular date.<br/>"
|
||
- name: metaKeywords
|
||
type: string
|
||
meta:
|
||
label: { de: "SEO / Schlüsselwörter", en: "SEO / Keywords" }
|
||
helperText:
|
||
de: "Beispiel: Stichwort1, Stichwort2, Stichwort3"
|
||
en: "Example: keyword1, keyword2, keyword3"
|
||
|
||
# Page Builder im Tab "Seiteninhalt"
|
||
- !include fields/pageBuilder.yml
|