source: spip-zone/_plugins_/webfonts/branches/webfonts2/webfonts2_pipelines.php @ 107937

Last change on this file since 107937 was 107937, checked in by arnaud.berard@…, 3 years ago

utiliser la pipeline, et amélioration de la requète à l'api en permettant le choix des variantes ainsi que le subset utilisé
à noter que le subset latin est inclus par defaut par l'api google_font

  • Property svn:eol-style set to native
File size: 1.2 KB
Line 
1<?php
2/*
3 * Plugin Webfonts2
4 * (c) 2016
5 * Distribue sous licence GPL
6 *
7 */
8if (!defined('_ECRIRE_INC_VERSION')) {
9        return;
10}
11
12/**
13
14*/
15function webfonts2_fonts_list($fonts){
16        return $fonts;
17}
18
19 /**
20  * webfonts_insert_head_css
21 */
22function webfonts2_insert_head_css($flux){
23        static $done = false;
24        if (!$done){
25               
26               
27               
28                $webfonts = lister_webfonts();
29               
30                //var_dump($webfonts);
31                if(is_array($webfonts)){
32                        foreach($webfonts as $font){
33                                $variants = implode(',',$font['variants']);
34                                $subsets = '&subset=';
35                                (isset($font['subsets'])) ? $subsets .= implode(',',$font['subsets']) : $subsets = '';
36                                $fonts[] = urlencode($font['family']).':'.$variants.$subsets;   
37                        }
38                       
39                        $fonts = implode('|',$fonts);
40                        if (strlen($fonts)) {
41                                $code = '<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family='.$fonts.'" id="webfonts" />';
42                                // le placer avant les autres CSS du flux
43                                if (($p = strpos($flux,"<link"))!==false)
44                                        $flux = substr_replace($flux,$code,$p,0);
45                                // sinon a la fin
46                                else
47                                        $flux .= $code;
48                        }
49               
50                }
51                $done = true;
52       
53        }
54        return $flux;
55}
56
57
58
59function lister_webfonts(){
60       
61        $fonts = pipeline('fonts_list',array(
62                'args'=>array(),
63                'data'=>$fonts
64        ));
65        return $fonts;
66}
67
68?>
Note: See TracBrowser for help on using the repository browser.