[(#ENV{var_mode}|=={debug}|oui)#HTTP_HEADER{Content-Type:text/html}][(#ENV{debug}|oui)#HTTP_HEADER{Content-Type:text/plain}]
[(#REM)
Métas+ : ce squelette génère les métas pour Dublin Core, Open Graph et Twitter.
Pour déboguer sur spip.php?page=inclure/metasplus/dist :
- var_mode=debug pour le débug normal (sql, etc.)
- debug=oui pour avoir un simple retour texte
Il s'agit du squelette par défaut inclus automatiquement dans le
, il tente de générer au mieux les informations des pages.
Ce squelette récupére les valeurs *brutes* sans appliquer aucun filtre comme |textebrut, |attribut_html ou autre.
Ces filtres sont appliqués en aval dans le squelette inclus : inc-dist.tml
On peut lui transmettre certaines valeurs à prendre en priorité par rapport à la récupération automatique.
Il est possible de créer des variantes pour des pages précises : inclure/metasplus/{page}.html
Plusieurs possibilités pour le contenu des variantes :
- vide = pas de métas (voir aussi la constante _METASPLUS_PAGES_EXCLUES)
- inclure ce squelette en ne transmettant *que* les paramètres à modifier
- inclure inc-dist.html en transmettant *tous* les paramètres
- tout faire à la main
Précisions :
- Sur une page d'objet, on met og-type = article par défaut
- Sur une page lambda, on omet volontairement le titre et la description puisqu'on ne les connait pas, twitter et facebook se rabattent sur les metas et .
Format des logos : https://goo.gl/L4StmD
- Twitter : taille min 440 x 220
taille recommandée 506 x 253
taille max 1024 x 512
poids max 5 Mo
ratio 2:1
- Facebook : pas de taille min
taille recommandée > 600 x 315 ou 1200 x 630 (hidpi)
poids max 8 Mo
ratio 1.91:1
Contexte :
- type-page
- objet
- id_objet
- id_patate
Paramètres :
- debug : 'Oui' quand on débogue le squelette
spip.php?page=inclure/metasplus/dist&objet=truc&id_objet=N&debug=oui
- titre : Titre de la ressource
- desc : Description
- langue : Langue au format iso. ex. fr
- territoire : Complète la langue pour former le duet langue_territoire, ex. UK
Si rien n'est renseigné, on tente un lang_LANG
- date : Date de publication au format Y-m-d
- maj : Date de mise à jour au format Y-m-d
- url : URL de la ressource
- auteurs : Soit un tableau linéaires
Soit des auteurs séparés par des virgules
- logos : Soit un tableau de tableaux associatifs avec URL et alt
#LISTE{#ARRAY{url,...,alt...},#ARRAY{url,...,alt...}}
Soit des URLs séparées par des virgules
- mots : Soit un tableau linéaire
Soit des mots-clés séparés par des virgules
- og-type : (open graph) Type de la ressource : article, profile, book, etc.
- dc-type : (dublin core) Type de la ressource : Text, Event, PhysicalObject, etc.
Paramètres dépréciés :
- auteur => auteurs
- logo => logos
- lang => langue
]
[(#REM)
=======================================
1. Récupération automatique des valeurs
=======================================
]
[(#REM)
Cas 1 : Page d'un objet éditorial
]
#SET{og-type_auto, article}
#SET{dc-type_auto, Text}
#SET{titre_auto, #INFO_TITRE{#ENV{objet},#ENV{id_objet}}|concat{" – ",#NOM_SITE_SPIP}}
#SET{desc_auto, #INFO_INTRODUCTION{#ENV{objet},#ENV{id_objet}}
|sinon{#INFO_DESCRIPTIF{#ENV{objet},#ENV{id_objet}}}
|sinon{#INFO_CHAPO{#ENV{objet},#ENV{id_objet}}}
|sinon{#INFO_TEXTE{#ENV{objet},#ENV{id_objet}}}}
#SET{url_auto, #INFO_URL{#ENV{objet},#ENV{id_objet}}}
#SET{date_auto, #INFO_DATE{#ENV{objet},#ENV{id_objet}}}
#SET{maj_auto, #INFO_MAJ{#ENV{objet},#ENV{id_objet}}}
#SET{langue_auto, #INFO_LANG{#ENV{objet},#ENV{id_objet}}|sinon{#LANG}}
#SET{territoire_auto, ''}
[(#REM) Les auteurs ]
#SET{auteurs_auto,#ARRAY}
#SET{auteurs_auto, #GET{auteurs_auto}|push{#NOM}}
#SET{auteurs_auto, #NOM_SITE_SPIP}
/B_auteurs_objet>
[(#REM) Les mots-clés ]
#SET{mots_auto,#ARRAY}
#SET{mots_auto, #GET{mots_auto}|push{#TITRE}}
[(#REM) Les images : logo de l'objet puis images liées ]
#SET{logo_objet, #ENV{objet}|id_table_objet|quete_logo{on,#ENV{id_objet},0,0}}
#SET{logos_auto, #GET{logo_objet}|?{#LISTE{#ARRAY{url,#GET{logo_objet/src}}},#ARRAY}}
#SET{fichier_logo,#GET{logo_objet/src}|replace{#VAL{_NOM_PERMANENTS_ACCESSIBLES}|constant}|replace{'\.\./'}|supprimer_timestamp}
#SET{par,#SPIP_VERSION|floatval|>{3.1}|?{rang_lien,largeur}}
#SET{defaut_tri,#ARRAY{
rang_lien, 1,
largeur, -1,
}}
#SET{logos_auto, #GET{logos_auto}|push{#ARRAY{
url, #FICHIER,
alt, #TITRE|sinon{#DESCRIPTIF}|couper{80},
}}}
[(#REM)
Cas 2 : Page lambda
]
#SET{og-type_auto, website}
#SET{dc-type_auto, Text}
#SET{titre_auto, #ENV{type-page,sommaire}|=={sommaire}|?{#NOM_SITE_SPIP|concat{" - ",#SLOGAN_SITE_SPIP}}}
#SET{desc_auto, #ENV{type-page,sommaire}|=={sommaire}|?{#DESCRIPTIF_SITE_SPIP}}
#SET{url_auto, #ENV{type-page,sommaire}|=={sommaire}|?{#URL_SITE_SPIP,#URL_PAGE{#ENV{type-page}}}}
#SET{date_auto, #DATE}
#SET{maj_auto, ''}
#SET{langue_auto, #LANG}
#SET{territoire_auto, ''}
#SET{auteurs_auto, #NOM_SITE_SPIP}
#SET{mots_auto, ''}
/B_objet>
[(#REM)
Cas 1 et 2 : compléments
Pas de logo ? On prend celui configuré par défaut, sinon celui du site
]
[(#ENV{logos}|non|et{#GET{logos_auto}|non}|oui)
#SET{logos_auto,#INFO_FICHIER{document,#CONFIG{metasplus/id_doc_logo}}|sinon{#LOGO_SITE_SPIP|extraire_attribut{src}}}
]
[(#REM)
====================
2. Code des metas
====================
]
#FILTRE{trim}