source: spip-zone/_plugins_/metasplus/trunk/inclure/metasplus/dist.html @ 111168

Last change on this file since 111168 was 111168, checked in by tcharlss@…, 11 months ago

Affinements et corrections pour les logos. Si aucun logo n'a été trouvé, on prend celui configuré ou celui du site (même pour les pages des objets éditoriaux). On n'a pas à exclure le format svg si les specs opengraph et cie ne l'excluent pas : si twitterbook ne gère pas ce format, ben l'image sera ignorée, point barre. Légère réorganisation du code pour que ça reste lisible.

  • Property svn:eol-style set to native
File size: 6.0 KB
RevLine 
[110144]1[(#ENV{debug}|oui)#HTTP_HEADER{Content-Type:text/plain}]
[100378]2[(#REM)
3
[108625]4        Métas+ : ce squelette génère les métas pour Dublin Core, Open Graph et Twitter.
[100378]5
[108705]6        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.
[102912]7
[110144]8        On peut lui transmettre certaines valeurs à prendre en priorité par rapport à la récupération automatique.
9
[108705]10        Il est possible de créer des variantes pour des pages précises : inclure/metasplus/{page}.html
11        Plusieurs possibilités pour le contenu des variantes :
12        - vide = pas de métas (voir aussi la constante _METASPLUS_PAGES_EXCLUES)
13        - inclure ce squelette en ne transmettant *que* les paramètres à modifier
14        - inclure inc-dist.html en transmettant *tous* les paramètres
15        - tout faire à la main
[104096]16
[108620]17        Précisions :
18                - Sur une page d'objet, on met og-type = article par défaut
19                - 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>.
[106041]20
[108705]21        Format des logos : https://goo.gl/L4StmD
[108620]22                - Twitter  : taille min 440 x 220
23                             taille recommandée 506 x 253
24                             taille max 1024 x 512
25                             poids max 5 Mo
26                             ratio 2:1
27                - Facebook : pas de taille min
28                             taille recommandée > 600 x 315 ou 1200 x 630 (hidpi)
29                             poids max 8 Mo
30                             ratio 1.91:1
[102912]31
[110213]32        Contexte :
33                - type-page
34                - objet
35                - id_objet
36                - id_patate
37
[108620]38        Paramètres :
[110144]39                - debug :      'Oui' quand on débogue le squelette
40                               spip.php?page=inclure/metasplus/dist&objet=truc&id_objet=N&debug=oui
[108705]41                - titre :      Titre de la ressource
42                - desc :       Description
[111167]43                - langue :     Langue au format iso. ex. fr
[108705]44                - territoire : Complète la langue pour former le duet langue_territoire, ex. UK
[108620]45                                     Si rien n'est renseigné, on tente un lang_LANG
46                - date :       Date de publication au format Y-m-d
47                - maj :        Date de mise à jour au format Y-m-d
48                - url :        URL de la ressource
[110227]49                - auteurs :    Soit un tableau linéaires
50                               Soit des auteurs séparés par des virgules
[110144]51                - logos :      Soit un tableau de tableaux associatifs avec URL et alt
[110227]52                               #LISTE{#ARRAY{url,...,alt...},#ARRAY{url,...,alt...}}
[110144]53                               Soit des URLs séparées par des virgules
[110227]54                - mots :       Soit un tableau linéaire
55                               Soit des mots-clés séparés par des virgules
[108620]56                - og-type :    (open graph) Type de la ressource : article, profile, book, etc.
[108625]57                - dc-type :    (dublin core) Type de la ressource : Text, Event, PhysicalObject, etc.
[106940]58
[110144]59        Paramètres dépréciés :
60                - auteur => auteurs
61                - logo => logos
[111167]62                - lang => langue
[108616]63]
64
[106940]65[(#REM)
66
[108705]67        =======================================
68        1. Récupération automatique des valeurs
69        =======================================
[108616]70
71]
72
[108620]73[(#REM)
74
75        Cas 1 : Page d'un objet éditorial
76
77]
78<BOUCLE_objet(CONDITION) {si #ENV{objet}|et{#ENV{id_objet}}}>
[108705]79#SET{og-type_auto,    article}
80#SET{dc-type_auto,    Text}
81#SET{titre_auto,      #INFO_TITRE{#ENV{objet},#ENV{id_objet}}|concat{" – ",#NOM_SITE_SPIP}}
82#SET{desc_auto,       #INFO_INTRODUCTION{#ENV{objet},#ENV{id_objet}}
83        |sinon{#INFO_DESCRIPTIF{#ENV{objet},#ENV{id_objet}}}
84        |sinon{#INFO_TEXTE{#ENV{objet},#ENV{id_objet}}}}
85#SET{url_auto,        #INFO_URL{#ENV{objet},#ENV{id_objet}}}
86#SET{date_auto,       #INFO_DATE{#ENV{objet},#ENV{id_objet}}}
87#SET{maj_auto,        #INFO_MAJ{#ENV{objet},#ENV{id_objet}}}
[111167]88#SET{langue_auto,     #INFO_LANG{#ENV{objet},#ENV{id_objet}}|sinon{#LANG}}
[108705]89#SET{territoire_auto, ''}
[111167]90
[108705]91[(#REM) Les auteurs ]
[111168]92#SET{auteurs_auto,#ARRAY}
[108705]93<BOUCLE_auteurs_objet(AUTEURS)
94        {objet}
95        {id_objet}
96        {par nom}
97        {si #ENV{auteurs}|non}
[110901]98        {si #EVAL{_METASPLUS_MASQUER_AUTEURS}|!={oui}}
[108705]99>
[110227]100#SET{auteurs_auto, #GET{auteurs_auto}|push{#NOM}}
[108705]101</BOUCLE_auteurs_objet>
[111168]102#SET{auteurs_auto, #GET{auteurs_auto}|push{#NOM_SITE_SPIP}}
103<//B_auteurs_objet>
104
[108705]105[(#REM) Les mots-clés ]
[111168]106#SET{mots_auto,#ARRAY}
[108705]107<BOUCLE_mots_objet(MOTS)
108        {objet}
109        {id_objet}
110        {par titre}
[110227]111        {si #ENV{mots}|non}
[110772]112        {id_groupe !IN #EVAL{_METASPLUS_EXCLURE_GROUPESMOTS}|explode{","}}
[108705]113>
[110227]114#SET{mots_auto, #GET{mots_auto}|push{#TITRE}}
[108705]115</BOUCLE_mots_objet>
[111168]116
117[(#REM) Les images : logo de l'objet puis images liées ]
118<BOUCLE_logo_objet(CONDITION){si #ENV{logos}|non}>
119#SET{logo_objet, #ENV{id_objet}|quete_logo_objet{#ENV{objet},on}}
120#SET{logos_auto, #GET{logo_objet}|?{#LISTE{#ARRAY{url,#GET{logo_objet/chemin}}}}
[110227]121<BOUCLE_images_objet(DOCUMENTS)
[108705]122        {objet}
123        {id_objet}
[108620]124        {media = image}
[110571]125        {!extension = svg}
[111168]126        {!fichier = #GET{logos_auto/0/url}|replace{#VAL{_NOM_PERMANENTS_ACCESSIBLES}|constant}|replace{'\.\./'}}
[108620]127        {!par largeur}
[108705]128        {0,#GET{logos_auto}|?{2,3}}
[110706]129        {tout}
[108620]130>
[110144]131#SET{logos_auto, #GET{logos_auto}|push{#ARRAY{
132        url, #FICHIER,
133        alt, #TITRE|sinon{#DESCRIPTIF}|couper{80},
134}}}
[110227]135</BOUCLE_images_objet>
[111168]136</BOUCLE_logo_objet>
[108616]137</BOUCLE_objet>
138
[108620]139[(#REM)
140
141        Cas 2 : Page lambda
142
143]
[108705]144#SET{og-type_auto,    website}
145#SET{dc-type_auto,    Text}
146#SET{titre_auto,      ''}
147#SET{desc_auto,       ''}
148#SET{url_auto,        #URL_PAGE{#ENV{type-page}}}
149#SET{date_auto,       #DATE}
150#SET{maj_auto,        ''}
[111168]151#SET{langue_auto,     #LANG}
[108705]152#SET{territoire_auto, ''}
153#SET{auteurs_auto,    ''}
154#SET{mots_auto,       ''}
[108616]155<//B_objet>
156
157[(#REM)
158
[111168]159        Cas 1 et 2 : compléments
160        Pas de logo ? On prend celui configuré par défaut, sinon celui du site
161
162]
163[(#ENV{logos}|non|et{#GET{logos_auto}|non}|oui)
164#SET{logos_auto,#INFO_FICHIER{document,#CONFIG{metasplus/id_doc_logo}}|sinon{#LOGO_SITE_SPIP|extraire_attribut{src}|supprimer_timestamp}}
165]
166
167
168[(#REM)
169
[108616]170        ====================
[108705]171        2. Code des metas
[108616]172        ====================
173
174]
[108705]175<INCLURE{fond=inclure/metasplus/inc-dist,
176        titre=#ENV{titre,#GET{titre_auto}},
177        desc=#ENV{desc,#GET{desc_auto}},
178        url=#ENV{url,#GET{url_auto}},
179        date=#ENV{date,#GET{date_auto}},
180        maj=#ENV{maj,#GET{maj_auto}},
[111167]181        langue=#ENV{langue,#GET{langue_auto}},
[108705]182        territoire=#ENV{territoire,#GET{territoire_auto}},
183        og-type=#ENV{og-type,#GET{og-type_auto}},
184        dc-type=#ENV{dc-type,#GET{dc-type_auto}},
[110227]185        logos=#ENV{logos,#GET{logos_auto}},
186        auteurs=#ENV{auteurs,#GET{auteurs_auto}},
[108705]187        mots=#ENV{mots,#GET{mots_auto}}
188}/>
[108616]189
[109840]190#FILTRE{trim}
Note: See TracBrowser for help on using the repository browser.