[(#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. Il s'agit du squelette par défaut inclus automatiquement dans le , il tente de générer au mieux les informations des pages. 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 <description>. 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 ] <BOUCLE_objet(CONDITION) {si #ENV{objet}|et{#ENV{id_objet}}}> #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_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} <BOUCLE_auteurs_objet(AUTEURS) {objet} {id_objet} {par nom} {si #ENV{auteurs}|non} {si #EVAL{_METASPLUS_MASQUER_AUTEURS}|!={oui}} > #SET{auteurs_auto, #GET{auteurs_auto}|push{#NOM}} </BOUCLE_auteurs_objet> #SET{auteurs_auto, #GET{auteurs_auto}|push{#NOM_SITE_SPIP}} <//B_auteurs_objet> [(#REM) Les mots-clés ] #SET{mots_auto,#ARRAY} <BOUCLE_mots_objet(MOTS) {objet} {id_objet} {par titre} {si #ENV{mots}|non} {id_groupe !IN #EVAL{_METASPLUS_EXCLURE_GROUPESMOTS}|explode{","}} > #SET{mots_auto, #GET{mots_auto}|push{#TITRE}} </BOUCLE_mots_objet> [(#REM) Les images : logo de l'objet puis images liées ] <BOUCLE_logo_objet(CONDITION){si #ENV{logos}|non}> #SET{logo_objet, #ENV{id_objet}|quete_logo_objet{#ENV{objet},on}} #SET{logos_auto, #GET{logo_objet}|?{#LISTE{#ARRAY{url,#GET{logo_objet/chemin}}}} <BOUCLE_images_objet(DOCUMENTS) {objet} {id_objet} {media = image} {!extension = svg} {!fichier = #GET{logos_auto/0/url}|replace{#VAL{_NOM_PERMANENTS_ACCESSIBLES}|constant}|replace{'\.\./'}} {!par largeur} {0,#GET{logos_auto}|?{2,3}} {tout} > #SET{logos_auto, #GET{logos_auto}|push{#ARRAY{ url, #FICHIER, alt, #TITRE|sinon{#DESCRIPTIF}|couper{80}, }}} </BOUCLE_images_objet> </BOUCLE_logo_objet> </BOUCLE_objet> [(#REM) Cas 2 : Page lambda ] #SET{og-type_auto, website} #SET{dc-type_auto, Text} #SET{titre_auto, ''} #SET{desc_auto, ''} #SET{url_auto, #URL_PAGE{#ENV{type-page}}} #SET{date_auto, #DATE} #SET{maj_auto, ''} #SET{langue_auto, #LANG} #SET{territoire_auto, ''} #SET{auteurs_auto, ''} #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}|supprimer_timestamp}} ] [(#REM) ==================== 2. Code des metas ==================== ] <INCLURE{fond=inclure/metasplus/inc-dist, titre=#ENV{titre,#GET{titre_auto}}, desc=#ENV{desc,#GET{desc_auto}}, url=#ENV{url,#GET{url_auto}}, date=#ENV{date,#GET{date_auto}}, maj=#ENV{maj,#GET{maj_auto}}, langue=#ENV{langue,#GET{langue_auto}}, territoire=#ENV{territoire,#GET{territoire_auto}}, og-type=#ENV{og-type,#GET{og-type_auto}}, dc-type=#ENV{dc-type,#GET{dc-type_auto}}, logos=#ENV{logos,#GET{logos_auto}}, auteurs=#ENV{auteurs,#GET{auteurs_auto}}, mots=#ENV{mots,#GET{mots_auto}} }/> #FILTRE{trim}