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

Last change on this file was 113599, checked in by root, 3 months ago

supprimer_timestamp en amont aussi, sinon #CHEMIN ne trouve pas l'image

  • Property svn:eol-style set to native
File size: 7.1 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, #VAL{#VALEUR{url}|supprimer_timestamp},
54                alt, #VAL{#VALEUR{alt}|trim|supprimer_tags|textebrut},
55        },
56        #ARRAY{url,#VALEUR|supprimer_timestamp}
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        |sinon{#VALEUR{url}}
131        |supprimer_timestamp}
132[(#VAL{finfo_file}|function_exists|oui)
133#SET{finfo,#EVAL{FILEINFO_MIME_TYPE}|finfo_open}
134#SET{mimetype,#GET{finfo}|finfo_file{#GET{src}}}
135]
136[<meta property="og:image" content="(#GET{src}|url_absolue)" />]
137[<meta property="og:image:width" content="(#GET{src}|largeur)" />]
138[<meta property="og:image:height" content="(#GET{src}|hauteur)" />]
139[<meta property="og:image:type" content="(#GET{mimetype})" />]
140[<meta property="og:image:alt" content="(#VALEUR{alt}|couper{80}|attribut_html)" />]
141</BOUCLE_logos_opengraph>
142<BOUCLE_article_opengraph(CONDITION) {si #GET{og-type}|=={article}}>
143[<meta property="article:published_time" content="(#GET{date}|affdate{Y-m-d})" />]
144[<meta property="article:modified_time" content="(#GET{maj}|affdate{Y-m-d})" />]
145<BOUCLE_auteurs_opengraph(DATA){source table, #GET{auteurs}}>
146[<meta property="article:author" content="(#VALEUR|attribut_html)" />]
147</BOUCLE_auteurs_opengraph>
148<BOUCLE_mots_opengraph(DATA) {source table, #GET{mots}}>
149[<meta property="article:tag" content="(#VALEUR|attribut_html)" />]
150</BOUCLE_mots_opengraph>
151</BOUCLE_article_opengraph>
152[(#REM) Si plugin facebook, on envoie la méta fb:app_id ]
153[<meta property="fb:app_id" content="(#CONFIG{facebook/cle})" />]
154</BOUCLE_opengraph>
155[(#REM)
156
157        ============
158        Twitter Card
159        ============
160
161        https://dev.twitter.com/cards/types/summary
162        https://dev.twitter.com/cards/types/summary-large-image
163        https://cards-dev.twitter.com/validator
164
165]
166<BOUCLE_twitter(CONDITION) {si #CONFIG{metasplus/twitter}}>
167<!-- Twitter Card -->
168<meta name="twitter:card" content="[(#GET{logos}|count|?{summary_large_image,summary})]" />
169[<meta name="twitter:title" content="(#GET{titre}|attribut_html)" />]
170[<meta name="twitter:description" content="(#GET{desc}|couper{#GET{couper},'…'}|attribut_html)" />]
171<meta name="twitter:dnt" content="on" />
172[<meta name="twitter:url" content="(#GET{url}|url_absolue)" />]
173#SET{largeur,#GET{dimensions/twitter}|explode{:}|table_valeur{0}}
174#SET{hauteur,#GET{dimensions/twitter}|explode{:}|table_valeur{1}}
175<BOUCLE_images_twitter(DATA) {source table, #GET{logos}} {0,1}>
176#SET{src, #VALEUR{url}|image_recadre{#GET{dimensions/twitter},-,focus}
177        |image_reduire{#GET{largeur},#GET{hauteur}}
178        |extraire_attribut{src}
179        |sinon{#VALEUR{url}}
180        |supprimer_timestamp}
181[<meta name="twitter:image" content="(#GET{src}|url_absolue)" />]
182[<meta property="twitter:image:alt" content="(#VALEUR{alt}|couper{80}|attribut_html)" />]
183</BOUCLE_images_twitter>
184</BOUCLE_twitter>
185
186#FILTRE{trim}
Note: See TracBrowser for help on using the repository browser.