tibi-svelte-starter/api/collections/content.yml

295 lines
11 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

###############################################################
# 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 dont need to add this meta tag; its the default.<br/><strong>follow</strong>: Even if the page isnt 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