Edit administration panel layout

This commit is contained in:
Paul Nicoué 2022-11-25 14:17:23 +01:00
parent 9c50caa6d7
commit 155b10cc9d
18 changed files with 75 additions and 252 deletions

View file

@ -1,21 +0,0 @@
title:
en: Home
fr: Accueil
icon: list-bullet
status:
draft: true
listed: true
options:
changeSlug:
admin: true
editor: false
changeStatus: false
changeTemplate: false
changeTitle:
admin: true
editor: false
delete: false
duplicate: false
tabs:
content: tabs/exhibitions_content
seo: tabs/exhibitions_seo

View file

@ -1,21 +0,0 @@
title:
en: Gallery
fr: Galerie
icon: images
status:
draft: true
listed: true
options:
changeSlug:
admin: true
editor: false
changeStatus: false
changeTemplate: false
changeTitle:
admin: true
editor: false
delete: false
duplicate: false
tabs:
content: tabs/gallery_content
seo: tabs/gallery_seo

View file

@ -0,0 +1,5 @@
title:
en: Home
fr: Accueil
options:
read: false

View file

@ -1,57 +0,0 @@
headline:
en: Exhibitions
fr: Expositions
type: fields
fields:
exhibitions:
label:
en: Exhibitions
fr: Expositions
type: structure
prepend: true
sortable: true
required: true
fields:
url:
label:
en: URL
fr: URL
type: url
width: 2/4
external_link:
label:
en: External link
fr: Lien externe
type: toggle
text:
-
en: 'No'
fr: Non
-
en: 'Yes'
fr: Oui
width: 1/4
background_color:
when:
external_link: false
label:
en: Background color
fr: Couleur de fond
type: select
options:
feldgrau: Feldgrau
white:
en: White
fr: Blanc
default: feldgrau
width: 1/4
columns:
url:
width: 2/4
external_link:
width: 1/4
background_color:
width: 1/4

View file

@ -1,43 +0,0 @@
type: fields
fields:
meta_description:
label:
en: Meta description
fr: Méta description
type: textarea
size: small
buttons: false
help:
en: "Short description of the page displayed by search engines and social networks (recommended maximum length: 160 characters). Home page meta description is used if this field is empty."
fr: "Courte description de la page affichée par les moteurs de recherche et les réseaux sociaux (taille maximale conseillée : 160 caractères). La méta description de la page d'accueil est utilisée si ce champ est vide."
width: 3/4
gap:
type: gap
width: 1/4
meta_image:
label:
en: Meta image
fr: Méta image
type: image-clip
query: page.images
uploads: image
layout: cards
image:
cover: true
back: white
multiple: false
clip:
minwidth: 1200
minheight: 675
ratio: fixed
help:
en: "Image displayed by social networks (format: JPEG or PNG). Home page meta image is used if this field is empty."
fr: "Image affichée par les réseaux sociaux (format : JPEG ou PNG). La méta image de la page d'accueil est utilisée si ce champ est vide."
width: 1/4
# Hidden fields
og_type:
type: hidden
default: article
twitter_card_type:
type: hidden
default: summary_large_image

View file

@ -2,16 +2,6 @@ type: fields
fields:
contact_line:
type: line
email:
label:
en: Email
fr: Adresse e-mail
type: email
required: true
width: 1/2
gap:
type: gap
width: 1/2
instagram:
type: url
label:
@ -20,3 +10,13 @@ fields:
icon: instagram
required: true
width: 1/2
contact_gap:
type: gap
width: 1/2
email:
label:
en: Email
fr: Adresse e-mail
type: email
required: true
width: 1/2

View file

@ -0,0 +1,22 @@
headline:
en: Exhibitions
fr: Expositions
type: fields
fields:
exhibitions:
label:
en: Exhibitions
fr: Expositions
type: structure
prepend: true
sortable: true
required: true
fields:
url:
label:
en: URL
fr: URL
type: url

View file

@ -1,12 +1,12 @@
headline:
en: Artworks
fr: Œuvres
en: Image gallery
fr: Galerie d'images
type: files
template: full_screen_image
min: 2
layout: cards
size: small
limit: 60
limit: 10
image:
ratio: 1/1
back: white

View file

@ -1,16 +0,0 @@
headline:
en: Pages
fr: Pages
type: pages
templates:
- exhibitions
- gallery
sortBy: title desc
create: false
layout: cards
size: small
image:
ratio: 1/1
cover: true
query: page.images.template('full_screen_image').first
back: white

View file

@ -10,9 +10,9 @@ fields:
# required: true
help:
en: "Short description of the page displayed by search engines and social networks (recommended maximum length: 160 characters)."
fr: "Courte description de la page affichée par les moteurs de recherche et les réseaux sociaux (taille maximale conseillée : 160 caractères)."
fr: "Courte description du site web affichée par les moteurs de recherche et les réseaux sociaux (taille maximale conseillée : 160 caractères)."
width: 3/4
gap:
seo_gap:
type: gap
width: 1/4
meta_image:
@ -20,7 +20,7 @@ fields:
en: Meta image
fr: Méta image
type: image-clip
query: page.images
query: site.images
layout: cards
image:
cover: true

View file

@ -3,4 +3,5 @@ title:
fr: Site web
tabs:
content: tabs/site_content
seo: tabs/site_seo
analytics: tabs/site_analytics

View file

@ -1,9 +0,0 @@
label:
en: Content
fr: Contenu
icon: text
sections:
exhibitions: sections/exhibitions_content_exhibitions
contact: sections/exhibitions_content_contact

View file

@ -1,6 +0,0 @@
label:
en: SEO
fr: Référencement
icon: search
sections:
seo_basic_meta: sections/exhibitions_seo_metadata

View file

@ -1,6 +0,0 @@
label:
en: Content
fr: Contenu
icon: text
sections:
artworks: sections/gallery_content_images

View file

@ -1,6 +1,8 @@
label:
en: Website
fr: Site web
icon: home
en: Content
fr: Contenu
icon: text
sections:
pages: sections/site_content_pages
exhibitions: sections/site_content_exhibitions
artworks: sections/site_content_images
contact: sections/site_content_contact

View file

@ -3,4 +3,4 @@ label:
fr: Référencement
icon: search
sections:
seo_basic_meta: sections/generic_seo_metadata
seo_basic_meta: sections/site_seo_metadata

View file

@ -1,9 +1,9 @@
<?php
return function ($page) {
return function ($site) {
// Get exhibitions field content (stored as yaml) and parse it to return an array
$exhibitions = $page->exhibitions()->yaml();
$exhibitions = $site->exhibitions()->yaml();
// Add url based title to each exhibition
foreach ($exhibitions as &$exhibition) {
@ -12,11 +12,11 @@ return function ($page) {
}
// Get contact fields content
$email = $page->email();
$instagram = $page->instagram();
$email = $site->email();
$instagram = $site->instagram();
// Get image files section content
$images = $page->files()->template("full_screen_image")->shuffle();
$images = $site->files()->template("full_screen_image")->shuffle();
return [
'exhibitions' => $exhibitions,

View file

@ -6,21 +6,13 @@
<style itemscope itemtype="https://schema.org/WebSite" itemref="schema_name schema_description schema_image"></style>
{# Title #}
{% if page.isHomePage %}
<title>{{ site.title }}</title>
<meta id="schema_name" itemprop="name" content="{{ site.title }}">
{% else %}
<title>{{ site.title }} | {{ page.title }}</title>
<meta id="schema_name" itemprop="name" content="{{ site.title }} | {{ page.title }}">
{% endif %}
{# Description #}
{% if page.meta_description is not empty %}
<meta name="description" content="{{ page.meta_description }}">
<meta id="schema_description" itemprop="description" content="{{ page.meta_description }}">
{% elseif site.homePage.meta_description is not empty %}
<meta name="description" content="{{ site.homePage.meta_description }}">
<meta id="schema_description" itemprop="description" content="{{ site.homePage.meta_description }}">
{% if site.meta_description is not empty %}
<meta name="description" content="{{ site.meta_description }}">
<meta id="schema_description" itemprop="description" content="{{ site.meta_description }}">
{% endif %}
{# Canonical URL #}
@ -33,53 +25,33 @@
<meta name="date" content="{{ page.modified('Y-m-d') }}">
{# Image #}
{% if page.meta_image is not empty %}
<meta id="schema_image" itemprop="image" content="{{ page.meta_image.toImage.url }}">
{% elseif site.homePage.meta_image is not empty %}
<meta id="schema_image" itemprop="image" content="{{ site.homePage.meta_image.toImage.url }}">
{% if site.meta_image is not empty %}
<meta id="schema_image" itemprop="image" content="{{ site.meta_image.toImage.url }}">
{% endif %}
{% if page.template != 'error' %}
{# Open Graph #}
{% if page.isHomePage %}
<meta property="og:title" content="{{ site.title }}">
{% else %}
<meta property="og:title" content="{{ site.title ~ ' | ' ~ page.title }}">
{% if site.meta_description is not empty %}
<meta property="og:description" content="{{ site.meta_description }}">
{% endif %}
{% if page.meta_description is not empty %}
<meta property="og:description" content="{{ page.meta_description }}">
{% elseif site.homePage.meta_description is not empty %}
<meta property="og:description" content="{{ site.homePage.meta_description }}">
{% endif %}
{% if page.meta_image is not empty %}
<meta property="og:image" content="{{ page.meta_image.toImage.clip(1200, 675).url }}">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="675">
{% elseif site.homePage.meta_image is not empty %}
<meta property="og:image" content="{{ site.homePage.meta_image.toImage.clip(1200, 675).url }}">
{% if site.meta_image is not empty %}
<meta property="og:image" content="{{ site.meta_image.toImage.clip(1200, 675).url }}">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="675">
{% endif %}
<meta property="og:url" content="{{ page.url }}">
<meta property="og:type" content="{{ page.og_type }}">
<meta property="og:type" content="{{ site.og_type }}">
{# Twitter Card #}
<meta name="twitter:card" content="{{ page.twitter_card_type.value }}">
{% if page.isHomePage %}
<meta name="twitter:card" content="{{ site.twitter_card_type.value }}">
<meta name="twitter:title" content="{{ site.title }}">
{% else %}
<meta name="twitter:title" content="{{ site.title ~ ' | ' ~ page.title }}">
{% if site.meta_description is not empty %}
<meta name="twitter:description" content="{{ site.meta_description }}">
{% endif %}
{% if page.meta_description is not empty %}
<meta name="twitter:description" content="{{ page.meta_description }}">
{% elseif site.homePage.meta_description is not empty %}
<meta name="twitter:description" content="{{ site.homePage.meta_description }}">
{% endif %}
{% if page.meta_image is not empty %}
<meta name="twitter:image" content="{{ page.meta_image.toImage.clip(1200, 675).url }}">
{% elseif site.homePage.meta_image is not empty %}
<meta name="twitter:image" content="{{ site.homePage.meta_image.toImage.clip(1200, 675).url }}">
{% if site.meta_image is not empty %}
<meta name="twitter:image" content="{{ site.meta_image.toImage.clip(1200, 675).url }}">
{% endif %}
{% endif %}