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@…, 11 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
RevLine 
[100378]1[(#REM)
2
[108705]3        Métas+ : ce squelette contient le code des métas pour Dublin Core, Open Graph et Twitter.
[110227]4        Ici aucune requête SQL, on doit recevoir toutes les données.
[108705]5        Il est inclus dans inclure/metasplus/dist.html, voir ce dernier pour les explications et les paramètres.
[102912]6
[108616]7]
[106940]8[(#REM)
9
[108616]10
[110227]11        ============================================
12        1) Normalisation et vérification des valeurs
13        ============================================
14
15
[108616]16]
[110085]17#SET{titre,      #ENV{titre}|trim|html_entity_decode|supprimer_tags|textebrut}
18#SET{desc,       #ENV{desc}|trim|html_entity_decode|supprimer_tags|textebrut}
[108705]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}
[108620]28#SET{dimensions, #ARRAY{
[108705]29        opengraph, 1200:630,
30        twitter,   506:253,
[108620]31}}
[110227]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]
[110144]49#SET{logos,#ARRAY}
[110227]50<BOUCLE_normaliser_logos(DATA){source table, #ENV{logos}|is_array|?{#ENV{logos},#ENV{logos}|explode{','}}|array_filter}>
[110263]51#SET{valeur,#VALEUR|is_array|?{
[110227]52        #ARRAY{
53                url, #VALEUR{url},
54                alt, #VAL{#VALEUR{alt}|trim|supprimer_tags|textebrut},
55        },
56        #ARRAY{url,#VALEUR}
57}|array_filter}
[110506]58[(#GET{valeur}|oui)
[110227]59#SET{logos,#GET{logos}|push{#GET{valeur}}}
60]
61</BOUCLE_normaliser_logos>
62[(#REM)
[108616]63
[110153]64
[110227]65        ============================
66        2) Affichage des métadonnées
67        ============================
68
69
70]
[108620]71[(#REM)
72
[110227]73        ===========
[108616]74        Dublin Core
[110227]75        ===========
[108620]76
[100378]77        http://dublincore.org
78
[108620]79]
[110203]80<BOUCLE_dublincore(CONDITION) {si #CONFIG{metasplus/dublincore}}>
[100760]81<!-- Dublin Core -->
[107704]82<link rel="schema.DC" href="https://purl.org/dc/elements/1.1/" />
83<link rel="schema.DCTERMS" href="https://purl.org/dc/terms/" />
[104096]84<meta name="DC.Format" content="text/html" />
[108625]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})" />]
[108616]91[<meta name="DC.Identifier" scheme="URI" content="(#GET{url}|url_absolue)" />]
[108625]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>
[108620]100</BOUCLE_dublincore>
[108616]101[(#REM)
[100378]102
[110227]103        ==========
[108616]104        Open Graph
[110227]105        ==========
[108620]106
[100378]107        http://ogp.me
[108616]108        https://developers.facebook.com/docs/sharing/opengraph/object-properties
[108620]109        https://developers.facebook.com/docs/sharing/best-practices#images
[108616]110        https://developers.facebook.com/tools/debug/
[100378]111
[108620]112]
[110203]113<BOUCLE_opengraph(CONDITION) {si #CONFIG{metasplus/opengraph}}>
[108616]114<!-- Open Graph -->
[108705]115[(#GET{logos}|count|oui)
[108620]116<meta property="og:rich_attachment" content="true" />
[108705]117]
[108620]118[<meta property="og:site_name" content="(#NOM_SITE_SPIP|attribut_html)" />]
[108616]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)" />]
[108623]123[<meta property="og:description" content="(#GET{desc}|couper{#GET{couper},'…'}|attribut_html)" />]
[108705]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}}>
[110144]127#SET{src, #VALEUR{url}|image_recadre{#GET{dimensions/opengraph},-,focus}
[108705]128        |image_reduire{#GET{largeur},#GET{hauteur}}
129        |extraire_attribut{src}
130        |supprimer_timestamp}
[108620]131[<meta property="og:image" content="(#GET{src}|url_absolue)" />]
[108623]132[<meta property="og:image:width" content="(#GET{src}|largeur)" />]
133[<meta property="og:image:height" content="(#GET{src}|hauteur)" />]
[108705]134[<meta property="og:image:type" content="(#GET{src}|mime_content_type)" />]
[110144]135[<meta property="og:image:alt" content="(#VALEUR{alt}|couper{80}|attribut_html)" />]
[108705]136</BOUCLE_logos_opengraph>
[108620]137<BOUCLE_article_opengraph(CONDITION) {si #GET{og-type}|=={article}}>
[108616]138[<meta property="article:published_time" content="(#GET{date}|affdate{Y-m-d})" />]
[108620]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>
[108616]147[(#REM) Si plugin facebook, on envoie la méta fb:app_id ]
148[<meta property="fb:app_id" content="(#CONFIG{facebook/cle})" />]
[108620]149</BOUCLE_opengraph>
150[(#REM)
[100378]151
[110227]152        ============
[108616]153        Twitter Card
[110227]154        ============
[108620]155
[100378]156        https://dev.twitter.com/cards/types/summary
[108616]157        https://dev.twitter.com/cards/types/summary-large-image
158        https://cards-dev.twitter.com/validator
[100378]159
[108620]160]
[110203]161<BOUCLE_twitter(CONDITION) {si #CONFIG{metasplus/twitter}}>
[100760]162<!-- Twitter Card -->
[108705]163<meta name="twitter:card" content="[(#GET{logos}|count|?{summary_large_image,summary})]" />
[108616]164[<meta name="twitter:title" content="(#GET{titre}|attribut_html)" />]
[108623]165[<meta name="twitter:description" content="(#GET{desc}|couper{#GET{couper},'…'}|attribut_html)" />]
[107480]166<meta name="twitter:dnt" content="on" />
[108616]167[<meta name="twitter:url" content="(#GET{url}|url_absolue)" />]
[108705]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}>
[110144]171#SET{src, #VALEUR{url}|image_recadre{#GET{dimensions/twitter},-,focus}
[108705]172        |image_reduire{#GET{largeur},#GET{hauteur}}
173        |extraire_attribut{src}
174        |supprimer_timestamp}
[108620]175[<meta name="twitter:image" content="(#GET{src}|url_absolue)" />]
[110144]176[<meta property="twitter:image:alt" content="(#VALEUR{alt}|couper{80}|attribut_html)" />]
[108620]177</BOUCLE_images_twitter>
178</BOUCLE_twitter>
[108616]179
[110506]180#FILTRE{trim}
Note: See TracBrowser for help on using the repository browser.