Changeset 107937 in spip-zone


Ignore:
Timestamp:
Dec 9, 2017, 10:24:08 AM (16 months ago)
Author:
arnaud.berard@…
Message:

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/webfonts/branches/webfonts2/webfonts2_pipelines.php

    r107767 r107937  
    66 *
    77 */
     8if (!defined('_ECRIRE_INC_VERSION')) {
     9        return;
     10}
     11
     12/**
     13
     14*/
     15function webfonts2_fonts_list($fonts){
     16        return $fonts;
     17}
    818
    919 /**
     
    1323        static $done = false;
    1424        if (!$done){
    15                 $fonts = $GLOBALS['meta']['googlefonts_api'];
    16                 $fonts = array_map('trim',explode("\n",$fonts));
    17                 $fonts = array_map('urldecode',$fonts); // passer les + en ' '
    18 
    19                 // version directe google font api
    20                 $fonts = array_map('urlencode',$fonts);
    21                 $fonts = implode('|',$fonts);
    22                 if (strlen($fonts)) {
    23                         $code = '<link rel="stylesheet" type="text/css" href="//fonts.googleapis.com/css?family='.$fonts.'" id="webfonts" />';
    24                         // le placer avant les autres CSS du flux
    25                         if (($p = strpos($flux,"<link"))!==false)
    26                                 $flux = substr_replace($flux,$code,$p,0);
    27                         // sinon a la fin
    28                         else
    29                                 $flux .= $code;
     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               
    3050                }
    31 
    32                 // version loader js, mais qui genere une requete google api...
    33                 /*
    34                 $fonts = array_map('addslashes',$fonts);
    35                 $fonts = implode("', '",$fonts);
    36                 if (strlen($fonts)) {
    37                         $fonts = "'$fonts'";
    38                         $code = '<script src="'.find_in_path('javascript/webfont.js').'" id="webfonts"></script>'
    39                         ."<script>WebFont.load({
    40   google: {
    41     families: [$fonts]
    42   }
    43 });</script>";
    44                         $flux = $code.$flux; // on le place en premier !
    45                 }*/
    4651                $done = true;
     52       
    4753        }
    4854        return $flux;
     
    5056
    5157
     58
     59function lister_webfonts(){
     60       
     61        $fonts = pipeline('fonts_list',array(
     62                'args'=>array(),
     63                'data'=>$fonts
     64        ));
     65        return $fonts;
     66}
     67
    5268?>
Note: See TracChangeset for help on using the changeset viewer.