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

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

mime_content_type n'est apparemment pas toujours dispo en php 5.x (ou déprécié ?). On utilise finfo_file() à la place

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