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

Last change on this file since 110506 was 110506, checked in by cy.altern@…, 5 months ago

correctif pour utilisation de l'image par défaut dans le cas lambda (pas objet éditorial)

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