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

Last change on this file since 111167 was 111167, checked in by tcharlss@…, 2 years ago

Attention 'lang' est toujours présent dans l'env, du coup ça ignorait la vraie langue des objets. On change le nom du paramètre pour éviter un conflit (aurélien).

  • Property svn:eol-style set to native
File size: 6.0 KB
Line 
1[(#ENV{debug}|oui)#HTTP_HEADER{Content-Type:text/plain}]
2[(#REM)
3
4        Métas+ : ce squelette génère les métas pour Dublin Core, Open Graph et Twitter.
5
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.
7
8        On peut lui transmettre certaines valeurs à prendre en priorité par rapport à la récupération automatique.
9
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
16
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>.
20
21        Format des logos : https://goo.gl/L4StmD
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
31
32        Contexte :
33                - type-page
34                - objet
35                - id_objet
36                - id_patate
37
38        Paramètres :
39                - debug :      'Oui' quand on débogue le squelette
40                               spip.php?page=inclure/metasplus/dist&objet=truc&id_objet=N&debug=oui
41                - titre :      Titre de la ressource
42                - desc :       Description
43                - langue :     Langue au format iso. ex. fr
44                - territoire : Complète la langue pour former le duet langue_territoire, ex. UK
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
49                - auteurs :    Soit un tableau linéaires
50                               Soit des auteurs séparés par des virgules
51                - logos :      Soit un tableau de tableaux associatifs avec URL et alt
52                               #LISTE{#ARRAY{url,...,alt...},#ARRAY{url,...,alt...}}
53                               Soit des URLs séparées par des virgules
54                - mots :       Soit un tableau linéaire
55                               Soit des mots-clés séparés par des virgules
56                - og-type :    (open graph) Type de la ressource : article, profile, book, etc.
57                - dc-type :    (dublin core) Type de la ressource : Text, Event, PhysicalObject, etc.
58
59        Paramètres dépréciés :
60                - auteur => auteurs
61                - logo => logos
62                - lang => langue
63]
64
65[(#REM)
66
67        =======================================
68        1. Récupération automatique des valeurs
69        =======================================
70
71]
72
73[(#REM)
74
75        Cas 1 : Page d'un objet éditorial
76
77]
78[(#SET{auteurs_auto,#ARRAY})][
79(#SET{mots_auto,#ARRAY})]
80<BOUCLE_objet(CONDITION) {si #ENV{objet}|et{#ENV{id_objet}}}>
81#SET{og-type_auto,    article}
82#SET{dc-type_auto,    Text}
83#SET{titre_auto,      #INFO_TITRE{#ENV{objet},#ENV{id_objet}}|concat{" – ",#NOM_SITE_SPIP}}
84#SET{desc_auto,       #INFO_INTRODUCTION{#ENV{objet},#ENV{id_objet}}
85        |sinon{#INFO_DESCRIPTIF{#ENV{objet},#ENV{id_objet}}}
86        |sinon{#INFO_TEXTE{#ENV{objet},#ENV{id_objet}}}}
87#SET{url_auto,        #INFO_URL{#ENV{objet},#ENV{id_objet}}}
88#SET{date_auto,       #INFO_DATE{#ENV{objet},#ENV{id_objet}}}
89#SET{maj_auto,        #INFO_MAJ{#ENV{objet},#ENV{id_objet}}}
90#SET{langue_auto,     #INFO_LANG{#ENV{objet},#ENV{id_objet}}|sinon{#LANG}}
91#SET{territoire_auto, ''}
92
93[(#REM) Les auteurs ]
94<BOUCLE_auteurs_objet(AUTEURS)
95        {objet}
96        {id_objet}
97        {par nom}
98        {si #ENV{auteurs}|non}
99        {si #EVAL{_METASPLUS_MASQUER_AUTEURS}|!={oui}}
100>
101#SET{auteurs_auto, #GET{auteurs_auto}|push{#NOM}}
102</BOUCLE_auteurs_objet>
103[(#EVAL{_METASPLUS_MASQUER_AUTEURS}|=={oui}|oui) #SET{auteurs_auto, #GET{auteurs_auto}|push{#NOM_SITE_SPIP}} ]
104[(#REM) Les mots-clés ]
105<BOUCLE_mots_objet(MOTS)
106        {objet}
107        {id_objet}
108        {par titre}
109        {si #ENV{mots}|non}
110        {id_groupe !IN #EVAL{_METASPLUS_EXCLURE_GROUPESMOTS}|explode{","}}
111>
112#SET{mots_auto, #GET{mots_auto}|push{#TITRE}}
113</BOUCLE_mots_objet>
114[(#REM) Les images ]
115[(#ENV{logos}|non)
116#SET{logo_objet,#ENV{id_objet}|quete_logo_objet{#ENV{objet},on}}
117#SET{logos_auto, #LISTE{#ARRAY{url,#GET{logo_objet/chemin}}}}
118]
119<BOUCLE_images_objet(DOCUMENTS)
120        {objet}
121        {id_objet}
122        {media = image}
123        {!extension = svg}
124        {fichier != #GET{logos_auto}|replace{#VAL{_NOM_PERMANENTS_ACCESSIBLES}|constant}}
125        {!par largeur}
126        {0,#GET{logos_auto}|?{2,3}}
127        {si #ENV{logos}|non}
128        {tout}
129>
130#SET{logos_auto, #GET{logos_auto}|push{#ARRAY{
131        url, #FICHIER,
132        alt, #TITRE|sinon{#DESCRIPTIF}|couper{80},
133}}}
134</BOUCLE_images_objet>
135</BOUCLE_objet>
136
137[(#REM)
138
139        Cas 2 : Page lambda
140
141]
142#SET{og-type_auto,    website}
143#SET{dc-type_auto,    Text}
144#SET{titre_auto,      ''}
145#SET{desc_auto,       ''}
146#SET{url_auto,        #URL_PAGE{#ENV{type-page}}}
147#SET{date_auto,       #DATE}
148#SET{maj_auto,        ''}
149#SET{lang_auto,       #LANG}
150#SET{territoire_auto, ''}
151<BOUCLE_logo_lambda(DOCUMENTS){id_document = #CONFIG{metasplus/id_doc_logo}}{!extension = svg}{tout}>
152#SET{logos_auto,          #FICHIER|supprimer_timestamp}
153</BOUCLE_logo_lambda>
154[(#LOGO_SITE_SPIP|extraire_attribut{src}|supprimer_timestamp|substr{-3}|!={svg}|oui)
155#SET{logos_auto,          #LOGO_SITE_SPIP|extraire_attribut{src}|supprimer_timestamp} ]
156<//B_logo_lambda>
157#SET{auteurs_auto,    ''}
158#SET{mots_auto,       ''}
159<//B_objet>
160
161[(#REM)
162
163        ====================
164        2. Code des metas
165        ====================
166
167]
168<INCLURE{fond=inclure/metasplus/inc-dist,
169        titre=#ENV{titre,#GET{titre_auto}},
170        desc=#ENV{desc,#GET{desc_auto}},
171        url=#ENV{url,#GET{url_auto}},
172        date=#ENV{date,#GET{date_auto}},
173        maj=#ENV{maj,#GET{maj_auto}},
174        langue=#ENV{langue,#GET{langue_auto}},
175        territoire=#ENV{territoire,#GET{territoire_auto}},
176        og-type=#ENV{og-type,#GET{og-type_auto}},
177        dc-type=#ENV{dc-type,#GET{dc-type_auto}},
178        logos=#ENV{logos,#GET{logos_auto}},
179        auteurs=#ENV{auteurs,#GET{auteurs_auto}},
180        mots=#ENV{mots,#GET{mots_auto}}
181}/>
182
183#FILTRE{trim}
Note: See TracBrowser for help on using the repository browser.