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

Last change on this file since 111168 was 111168, checked in by tcharlss@…, 10 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: 7.0 KB
Line 
1[(#REM)
2
3        Métas+ : ce squelette contient le code des métas pour Dublin Core, Open Graph et Twitter.
4        Ici aucune requête SQL, on doit recevoir toutes les données.
5        Il est inclus dans inclure/metasplus/dist.html, voir ce dernier pour les explications et les paramètres.
6
7]
8[(#REM)
9
10
11        ============================================
12        1) Normalisation et vérification des valeurs
13        ============================================
14
15
16]
17#SET{titre,      #ENV{titre}|trim|html_entity_decode|supprimer_tags|textebrut}
18#SET{desc,       #ENV{desc}|trim|html_entity_decode|supprimer_tags|textebrut}
19#SET{url,        #ENV{url}|trim}
20#SET{date,       #ENV{date}|trim}
21#SET{maj,        #ENV{maj}|trim}
22#SET{lang,       #ENV{langue}|trim}
23#SET{og-type,    #ENV{og-type}|trim}
24#SET{dc-type,    #ENV{dc-type}|trim}
25#SET{territoire, #ENV{territoire}|=={en}|?{uk,#ENV{territoire,#ENV{langue}}}|strtoupper|trim}
26#SET{locale,     #ENV{langue}|concat{_,#GET{territoire}}|trim}
27#SET{couper,     200}
28#SET{dimensions, #ARRAY{
29        opengraph, 1200:630,
30        twitter,   506:253,
31}}
32[(#REM)
33        auteurs
34]
35#SET{auteurs,#ARRAY}
36<BOUCLE_normaliser_auteurs(DATA){source table, #ENV{auteurs}|is_array|?{#ENV{auteurs},#ENV{auteurs}|explode{','}}|array_filter}>
37#SET{auteurs,#GET{auteurs}|push{#VALEUR|trim|html_entity_decode|supprimer_tags|textebrut}}
38</BOUCLE_normaliser_auteurs>
39[(#REM)
40        mots-clés
41]
42#SET{mots,#ARRAY}
43<BOUCLE_normaliser_mots(DATA){source table, #ENV{mots}|is_array|?{#ENV{mots},#ENV{mots}|explode{','}}|array_filter}>
44#SET{mots,#GET{mots}|push{#VALEUR|trim|html_entity_decode|supprimer_tags|textebrut}}
45</BOUCLE_normaliser_mots>
46[(#REM)
47        Logos
48]
49#SET{logos,#ARRAY}
50<BOUCLE_normaliser_logos(DATA){source table, #ENV{logos}|is_array|?{#ENV{logos},#ENV{logos}|explode{','}}|array_filter}>
51#SET{valeur,#VALEUR|is_array|?{
52        #ARRAY{
53                url, #VALEUR{url},
54                alt, #VAL{#VALEUR{alt}|trim|supprimer_tags|textebrut},
55        },
56        #ARRAY{url,#VALEUR}
57}|array_filter}
58[(#CHEMIN{#GET{valeur/url}}|oui)
59#SET{logos,#GET{logos}|push{#GET{valeur}}}
60]
61</BOUCLE_normaliser_logos>
62[(#REM)
63
64
65        ============================
66        2) Affichage des métadonnées
67        ============================
68
69
70]
71[(#REM)
72
73        ===========
74        Dublin Core
75        ===========
76
77        http://dublincore.org
78
79]
80<BOUCLE_dublincore(CONDITION) {si #CONFIG{metasplus/dublincore}}>
81<!-- Dublin Core -->
82<link rel="schema.DC" href="https://purl.org/dc/elements/1.1/" />
83<link rel="schema.DCTERMS" href="https://purl.org/dc/terms/" />
84<meta name="DC.Format" content="text/html" />
85[<meta name="DC.Type" content="(#GET{dc-type})" />]
86[<meta name="DC.Language" scheme="rfc1766" content="(#GET{lang})" />]
87[<meta name="DC.Title" lang="#GET{lang}" content="(#GET{titre}|attribut_html)" />]
88[<meta name="DC.Description.Abstract" lang="#GET{lang}" content="(#GET{desc}|couper{#GET{couper},'…'}|attribut_html)" />]
89[<meta name="DC.Date" scheme="DCTERMS.W3CDTF" content="(#GET{date}|affdate{Y-m-d})" />]
90[<meta name="DC.Date.Modified" scheme="DCTERMS.W3CDTF" content="(#GET{maj}|affdate{Y-m-d})" />]
91[<meta name="DC.Identifier" scheme="URI" content="(#GET{url}|url_absolue)" />]
92[<meta name="DC.Publisher" content="(#NOM_SITE_SPIP|attribut_html)" />]
93[<meta name="DC.Source" scheme="URI" content="(#URL_SITE_SPIP)" />]
94<BOUCLE_auteurs_dublincore(DATA){source table, #GET{auteurs}}>
95[<meta name="DC.Creator" content="(#VALEUR|attribut_html)" />]
96</BOUCLE_auteurs_dublincore>
97<BOUCLE_mots_dublincore(DATA) {source table, #GET{mots}}>
98[<meta name="DC.Subject" content="(#VALEUR|attribut_html)" />]
99</BOUCLE_mots_dublincore>
100</BOUCLE_dublincore>
101[(#REM)
102
103        ==========
104        Open Graph
105        ==========
106
107        http://ogp.me
108        https://developers.facebook.com/docs/sharing/opengraph/object-properties
109        https://developers.facebook.com/docs/sharing/best-practices#images
110        https://developers.facebook.com/tools/debug/
111
112]
113<BOUCLE_opengraph(CONDITION) {si #CONFIG{metasplus/opengraph}}>
114<!-- Open Graph -->
115[(#GET{logos}|count|oui)
116<meta property="og:rich_attachment" content="true" />
117]
118[<meta property="og:site_name" content="(#NOM_SITE_SPIP|attribut_html)" />]
119[<meta property="og:type" content="(#GET{og-type}|attribut_html)" />]
120[<meta property="og:title" content="(#GET{titre}|attribut_html)" />]
121[<meta property="og:locale" content="(#GET{locale})" />]
122[<meta property="og:url" content="(#GET{url}|url_absolue)" />]
123[<meta property="og:description" content="(#GET{desc}|couper{#GET{couper},'…'}|attribut_html)" />]
124#SET{largeur,#GET{dimensions/opengraph}|explode{:}|table_valeur{0}}
125#SET{hauteur,#GET{dimensions/opengraph}|explode{:}|table_valeur{1}}
126<BOUCLE_logos_opengraph(DATA) {source table, #GET{logos}}>
127#SET{src, #VALEUR{url}|image_recadre{#GET{dimensions/opengraph},-,focus}
128        |image_reduire{#GET{largeur},#GET{hauteur}}
129        |extraire_attribut{src}
130        |supprimer_timestamp}
131[(#VAL{finfo_file}|function_exists|oui)
132#SET{finfo,#EVAL{FILEINFO_MIME_TYPE}|finfo_open}
133#SET{mimetype,#GET{finfo}|finfo_file{#GET{src}}}
134]
135[<meta property="og:image" content="(#GET{src}|url_absolue)" />]
136[<meta property="og:image:width" content="(#GET{src}|largeur)" />]
137[<meta property="og:image:height" content="(#GET{src}|hauteur)" />]
138[<meta property="og:image:type" content="(#GET{mimetype})" />]
139[<meta property="og:image:alt" content="(#VALEUR{alt}|couper{80}|attribut_html)" />]
140</BOUCLE_logos_opengraph>
141<BOUCLE_article_opengraph(CONDITION) {si #GET{og-type}|=={article}}>
142[<meta property="article:published_time" content="(#GET{date}|affdate{Y-m-d})" />]
143[<meta property="article:modified_time" content="(#GET{maj}|affdate{Y-m-d})" />]
144<BOUCLE_auteurs_opengraph(DATA){source table, #GET{auteurs}}>
145[<meta property="article:author" content="(#VALEUR|attribut_html)" />]
146</BOUCLE_auteurs_opengraph>
147<BOUCLE_mots_opengraph(DATA) {source table, #GET{mots}}>
148[<meta property="article:tag" content="(#VALEUR|attribut_html)" />]
149</BOUCLE_mots_opengraph>
150</BOUCLE_article_opengraph>
151[(#REM) Si plugin facebook, on envoie la méta fb:app_id ]
152[<meta property="fb:app_id" content="(#CONFIG{facebook/cle})" />]
153</BOUCLE_opengraph>
154[(#REM)
155
156        ============
157        Twitter Card
158        ============
159
160        https://dev.twitter.com/cards/types/summary
161        https://dev.twitter.com/cards/types/summary-large-image
162        https://cards-dev.twitter.com/validator
163
164]
165<BOUCLE_twitter(CONDITION) {si #CONFIG{metasplus/twitter}}>
166<!-- Twitter Card -->
167<meta name="twitter:card" content="[(#GET{logos}|count|?{summary_large_image,summary})]" />
168[<meta name="twitter:title" content="(#GET{titre}|attribut_html)" />]
169[<meta name="twitter:description" content="(#GET{desc}|couper{#GET{couper},'…'}|attribut_html)" />]
170<meta name="twitter:dnt" content="on" />
171[<meta name="twitter:url" content="(#GET{url}|url_absolue)" />]
172#SET{largeur,#GET{dimensions/twitter}|explode{:}|table_valeur{0}}
173#SET{hauteur,#GET{dimensions/twitter}|explode{:}|table_valeur{1}}
174<BOUCLE_images_twitter(DATA) {source table, #GET{logos}} {0,1}>
175#SET{src, #VALEUR{url}|image_recadre{#GET{dimensions/twitter},-,focus}
176        |image_reduire{#GET{largeur},#GET{hauteur}}
177        |extraire_attribut{src}
178        |supprimer_timestamp}
179[<meta name="twitter:image" content="(#GET{src}|url_absolue)" />]
180[<meta property="twitter:image:alt" content="(#VALEUR{alt}|couper{80}|attribut_html)" />]
181</BOUCLE_images_twitter>
182</BOUCLE_twitter>
183
184#FILTRE{trim}
Note: See TracBrowser for help on using the repository browser.