| Current Path : /home/atelierpru/www/OLD/plugins/auto/metasplus/v2.2.3/inclure/metasplus/ |
| Current File : /home/atelierpru/www/OLD/plugins/auto/metasplus/v2.2.3/inclure/metasplus/dist.html |
[(#REM)
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
][(#ENV{var_mode}|=={debug}|?{#HTTP_HEADER{Content-Type:text/html},#ENV{debug}|?{#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 <head>, 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 <title> 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 #CONFIG{metasplus/masquer_auteurs}|non}
>
#SET{auteurs_auto, #GET{auteurs_auto}|push{#NOM}}
</BOUCLE_auteurs_objet>
#SET{auteurs_auto, #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}
>
#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}}},#ARRAY}}
#SET{par,#SPIP_VERSION|floatval|>{3.1}|?{rang_lien,largeur}}
#SET{defaut_tri,#ARRAY{
rang_lien, 1,
largeur, -1,
}}
<BOUCLE_images_objet(DOCUMENTS)
{objet}
{id_objet}
{media = image}
{!extension = svg}
{!fichier = #GET{logos_auto/0/url}|replace{#VAL{_NOM_PERMANENTS_ACCESSIBLES}|constant}|replace{'\.\./'}}
{tri #GET{par}, #GET{defaut_tri}}
{0,#GET{logos_auto}|?{2,3}}
{!par largeur}
{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, #ENV{type-page,sommaire}|=={sommaire}|?{#NOM_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}|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}