Changeset 114679 in spip-zone


Ignore:
Timestamp:
Apr 1, 2019, 2:25:11 PM (4 months ago)
Author:
arnaud.berard@…
Message:

0.3.0

Le plugin fourni un fichier googlefont_list.json, il n'est plus nécessaire d'avoir une googlefont_api_key, pour pouvoir utiliser :

  • la recherche (preview, filtrage) dans le catalogue googlefont.
  • le selecteurgenerique webfonts

l'extension php curl n'est plus necessaire que pour la mise a jour de l'index.

Location:
_plugins_/webfonts/branches/webfonts2
Files:
2 added
10 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/webfonts/branches/webfonts2/README.md

    r108351 r114679  
    2222## Changelogs
    2323
     24v0.3.0
     25
     26Le plugin fourni un fichier googlefont_list.json, il n'est plus nécessaire d'avoir une googlefont_api_key, pour pouvoir utiliser :
     27
     28- la recherche dans le catalogie googlefont.
     29- les selecteurgenerique webfonts
     30
     31l'extension php curl n'est plus necessaire que pour la mise a jour de l'index.
     32
     33
    2434v0.2.4 :
    2535
  • _plugins_/webfonts/branches/webfonts2/action/webfonts_index.php

    r108276 r114679  
    44
    55function action_webfonts_index_dist(){
    6        
    7         if(defined('_GOOGLE_API_KEY') && _GOOGLE_API_KEY != false) {
    8                 include_spip(_DIR_PLUGIN_WEBFONTS2.'webfonts2_fonctions');
    9                
    10                 $googlefonts = googlefont_api_get(_GOOGLE_API_KEY);
    11                
     6        include_spip(_DIR_PLUGIN_WEBFONTS2.'webfonts2_fonctions');
     7        $api_key = lire_config('webfonts2/googlefonts_api_key');
     8        if($googlefonts = googlefont_api_get($api_key)) {
     9
    1210                include_spip('flock','inc');
    1311                $jsonfile = ecrire_fichier(_DIR_TMP.'/googlefont_list.json',json_encode($googlefonts));
    14                
    15                 spip_log('Fichier index cree','webfonts');
     12                spip_log("Fichier index cree $jsonfile",'webfonts');
    1613                return $jsonfile;
    1714        }else{
    18                 spip_log('API Key non definie','webfonts');
     15                spip_log($googlefont,'webfonts');
    1916                return false;
    2017        }
    21 
    2218}
  • _plugins_/webfonts/branches/webfonts2/formulaires/configurer_webfonts2.html

    r114639 r114679  
    2323                                <legend>Configuration</legend>
    2424                                <div class="editer-group">
    25                                           <div class="editer googlefonts_api_key obligatoire[ (#ENV**{erreurs}|table_valeur{googlefonts_api}|oui)erreur]">
     25                                          <div class="editer googlefonts_api_key[ (#ENV**{erreurs}|table_valeur{googlefonts_api_key}|oui)erreur]">
    2626                                                  <label for="nom"><:webfonts2:label_googlefonts_api:></label>[
    27                                                   <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{googlefonts_api})</span>
     27                                                  <span class='erreur_message'>(#ENV**{erreurs}|table_valeur{googlefonts_api_key})</span>
    2828                                                  ]<p class="explication"><:webfonts2:explication_googlefonts_api:></p>
    2929                                                  <input type="text" name='googlefonts_api_key' id='googlefonts_api_key' value="#ENV{googlefonts_api_key}" />
    3030                                          </div>
     31                                </div>
     32                                <div class="editer-group">
    3133                                          [(#REM)<!-- méthodes d'insertion standard (balise link ) | @import (balise style) -->]
    3234                                          <div class="editer methode_insert">
     
    6870</div>
    6971
    70 <h2>Index des polices</h2>
    71 <p class="explication">
    72         Pour ne pas faire une requète a l'api par action sur les pages de gestion des typo, on génère in fichier index qui peut être utilisé ensuite
    73 
    74 </p>
    75 [(#BOUTON_ACTION{'Mettre a jour',#URL_ACTION_AUTEUR{webfonts_index,#ID_AUTEUR},''})]
    76 
    77 
    7872<script>
    7973function split( val ) {
  • _plugins_/webfonts/branches/webfonts2/formulaires/configurer_webfonts2.php

    r114639 r114679  
    66 *
    77 */
    8 
    98function formulaires_configurer_webfonts2_charger_dist(){
    109        $valeurs = array(
  • _plugins_/webfonts/branches/webfonts2/formulaires/selectionner_webfonts.html

    r108343 r114679  
    22formulaire_selectionner_webfonts
    33
    4 Squelette 
    5 (c) 2016 
     4Squelette
     5(c) 2016
    66Distribue sous licence GPL
    77
     
    1212
    1313-->]
     14<BOUCLE_apiKey(CONDITION){si  #CONFIG{webfonts2/googlefonts_api_key}|oui }>
     15<h2>Index des polices</h2>
     16<p class="explication">
     17        Re-génère le fichier index qui peut être utilisé ensuite
     18</p>
     19[(#BOUTON_ACTION{'Mettre a jour',#URL_ACTION_AUTEUR{webfonts_index,#ID_AUTEUR},''})]
     20</BOUCLE_apiKey><//B_apiKey>
    1421<div class="formulaire_spip formulaire_editer formulaire_#FORM">
    15    
     22
    1623        [<p class="reponse_formulaire reponse_formulaire_ok">(#ENV*{message_ok})</p>]
    1724        [<p class="reponse_formulaire reponse_formulaire_erreur">(#ENV*{message_erreur})</p>]
     
    2229                parametre : url d'action -->]
    2330                #ACTION_FORMULAIRE{#ENV{action},#FORM}
    24        
     31
    2532                <div class="editer-group">
    2633                        <div class="editer">
     
    2936                        </div>
    3037        </div>
    31        
     38
    3239                <div class="editer-group">
    3340                        [(#REM)<!--
    3441                        Pour le moment on désactive le tri, car il necessite un appel a l'api
    3542                        a chaque validation du form, on utilisera plutot les tri sur la boucle data d'affichage
    36                        
     43
    3744                        <div class="editer">
    3845                                <label for="sort">Trier par</label>
     
    6269                                <input type="text" name="preview_font_size" id="preview_font_size"
    6370                                           value="#ENV{preview_font_size,16px}"/>
    64                                        
     71
    6572                        </div>
    6673                </div>
     
    8491        </div>
    8592</form>
    86 </BOUCLE_test><//B_test>       
     93</BOUCLE_test><//B_test>
    8794</div>
    8895
     
    94101jQuery(function($){
    95102        $('.formulaire_selectionner_webfonts form').on('submit', function(e){
    96                        
     103
    97104                        ajaxReload('fonts', {
    98105                                args:{
     
    105112                        });
    106113        });
    107        
     114
    108115});
    109116</script>
    110 
    111 
    112 
  • _plugins_/webfonts/branches/webfonts2/formulaires/selectionner_webfonts.php

    r108276 r114679  
    22/*
    33 * Squelette
    4  * (c) 2016 
     4 * (c) 2016
    55 * Distribue sous licence GPL
    66 *
    77 * @url - http://programmer.spip.net/-Formulaires-35-
    88 * http://marcimat.magraine.net/Les-formulaires-CVT-de-SPIP
    9  * 
     9 *
    1010 *
    1111 */
     
    2626
    2727function formulaires_selectionner_webfonts_verifier_dist(){
    28        
     28
    2929        $erreurs = array();
    30         if(!defined('_GOOGLE_API_KEY')) {
    31                
     30        if(!defined('_GOOGLE_API_KEY') || lire_config('webfonts2/googlefonts_api_key') == '' ) {
    3231                $erreurs['message_erreur'] = "Pas de API KEY definie";
    3332        }
    34        
     33
    3534        if (count($erreurs)) {
    3635                $erreurs['message_erreur'] = "Une erreur est présente dans votre saisie";
     
    4039
    4140function formulaires_selectionner_webfonts_traiter_dist(){
    42        
    43     ($sort = _request('sort')) ? $sort = _request('sort') : $sort = false;
     41
     42  ($sort = _request('sort')) ? $sort = _request('sort') : $sort = false;
    4443        ($category = _request('category')) ? $category = _request('category') : $category ;
    45        
    46         if(defined('_GOOGLE_API_KEY') && _GOOGLE_API_KEY != false) {
    47                
    48                 //$googlefonts = get_font_index();
    49                 //
    50                 //if($font_search = _request('font_search')){
    51                 //      $result = google_font_search($googlefonts, _request('font_search'));
    52                 //}else{
    53                 //      $result = $googlefonts;
    54                 //}
     44        $apiKey = lire_config('webfonts2/googlefonts_api_key');
     45        if($apiKey != false) {
    5546
    56                
     47                $googlefonts = get_font_index();
     48
     49                if($font_search = _request('font_search')){
     50                        $result = google_font_search($googlefonts, _request('font_search'));
     51                }else{
     52                        $result = $googlefonts;
     53                }
     54
     55
    5756                $res = array('message_ok'=>_T('config_info_enregistree'),'editable'=>true);
    5857        }else{
     
    6059        }
    6160
    62        
    63        
     61
     62
    6463        return $res;
    6564}
  • _plugins_/webfonts/branches/webfonts2/lang/webfonts2_fr.php

    r114639 r114679  
    1717
    1818        // E
    19         'explication_googlefonts_api'   => 'N\'est nécessaire que si vous souhaitez utiliser le formulaire de recherche',
     19        'explication_googlefonts_api'   => 'N\'est nécessaire que si vous souhaitez générer ou mettre a jour le fichier index de googleFont founi avec le plugin',
    2020  'explication_insertion_prive' => 'Utiliser les webfonts dans l\'espace privé',
    2121        // L
  • _plugins_/webfonts/branches/webfonts2/paquet.xml

    r114639 r114679  
    22        prefix="webfonts2"
    33        categorie="maintenance"
    4         version="0.2.7"
     4        version="0.3.0"
    55        etat="dev"
    66        compatibilite="[3.0.0;3.2.*]"
     
    2222        <pipeline nom="fonts_list" inclure="webfonts2_pipelines.php" />
    2323
    24         <necessite nom="spip" compatibilite="[3.2.0;["/>
    25         <necessite nom="php:curl" />
    26 
    2724        <necessite nom="spip_bonux" compatibilite="[3.4.4;["/>
    2825
  • _plugins_/webfonts/branches/webfonts2/prive/squelettes/contenu/webfonts.html

    r108248 r114679  
    1818<BOUCLE_test(CONDITION){si #ENV{webfonts2}|=={'googlefonts'}}>
    1919        [<div class="ajax">(#FORMULAIRE_SELECTIONNER_WEBFONTS)</div>]
    20        
    2120</BOUCLE_test>
    2221        <div class="ajax">
    2322                #FORMULAIRE_CONFIGURER_WEBFONTS2
    2423        </div>
    25        
    26        
     24
     25
    2726        <h2>Liste des webfonts insérées via la pipeline</h2>
    28        
     27
    2928        <form action="#SELF" class="formulaire_spip preview_params">
    3029                <div class="editer-group">
     
    3837                                <input type="text" name="preview_font_size" id="preview_font_size"
    3938                                           value="#ENV{preview_font_size,16px}"/>
    40                                                        
     39
    4140                        </div>
    4241                </div>
     
    7978        </script>
    8079<//B_test>
    81 
    82 
    83 
    84 
  • _plugins_/webfonts/branches/webfonts2/webfonts2_fonctions.php

    r108342 r114679  
    1717 * @param $webfonts {array} font=>variantes
    1818 * @param $subsets  si besoin une liste de subsets pour la forme mais inutile
    19  * @return $request url de requète 
    20  * 
     19 * @return $request url de requète
     20 *
    2121*/
    2222function googlefont_request($webfonts,$subsets=''){
     
    2525        foreach($webfonts as $font){
    2626                $variants = implode(',',$font['variants']);
    27                 $fonts[] = urlencode($font['family']).':'.$variants;   
     27                $fonts[] = urlencode($font['family']).':'.$variants;
    2828        }
    29        
     29
    3030        $fonts = implode('|',$fonts);
    3131
     
    6868
    6969function get_font_index(){
    70         lire_fichier(_DIR_TMP.'/googlefont_list.json',$respons);
     70        if(file_exists(_DIR_TMP.'/googlefont_list.json')){
     71                $index = lire_fichier(_DIR_TMP.'/googlefont_list.json',$respons);
     72                spip_log("Lecture du fichier tmp/ $index",'webfonts');
     73        }else{
     74                $index = lire_fichier(_DIR_PLUGIN_WEBFONTS2.'/json/googlefont_list.json',$respons);
     75                spip_log("Lecture du fichier fourni / $index",'webfonts');
     76        }
    7177        return json_decode($respons, true);
    7278}
     
    7581 * googlefont_api_get
    7682 *
    77  * retourne l'index [items] complet de la typothèque via l'API 
     83 * retourne l'index [items] complet de la typothèque via l'API
    7884 *
    7985*/
     
    8288        $url = 'https://www.googleapis.com/webfonts/v1/webfonts?key='.$api_key;
    8389        (strlen($sort)) ? $url .= '&sort='.$sort : $sort = false ;
    84         (strlen($category)) ? $url .= '&category='.$category : $category = false;       
    85                
    86         $ch = curl_init();
    87         curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    88         curl_setopt($ch, CURLOPT_HEADER, false);
    89         curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    90         curl_setopt($ch, CURLOPT_URL, $url);
    91         curl_setopt($ch, CURLOPT_REFERER, $url);
    92         curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    93         $result = curl_exec($ch);
    94         curl_close($ch);
    95         $googlefonts = json_decode($result, true);
    96        
    97         return $googlefonts['items'];
     90        (strlen($category)) ? $url .= '&category='.$category : $category = false;
     91        if(extension_loaded('curl')){
     92                $ch = curl_init();
     93                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
     94                curl_setopt($ch, CURLOPT_HEADER, false);
     95                curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
     96                curl_setopt($ch, CURLOPT_URL, $url);
     97                curl_setopt($ch, CURLOPT_REFERER, $url);
     98                curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
     99                $result = curl_exec($ch);
     100                curl_close($ch);
     101                $googlefonts = json_decode($result, true);
     102
     103                return $googlefonts['items'];
     104        }else{
     105                spip_log("L'extension Curl doit être installée !",'webfonts');
     106                return false;
     107        }
    98108}
    99109
     
    102112 * fontface_declaration
    103113 *
    104  * 
     114 *
    105115@font-face {
    106116    font-family: 'open_sansitalic';
     
    117127
    118128@param $font array family|file|weight|style
    119 @param $formats array extension|format default 
     129@param $formats array extension|format default
    120130
    121131*/
    122132
    123 function fontface_declaration($font, $formats = array('.woff'=>'woff','.woff2'=>'woff2','.ttf'=>'truetype')){ 
    124        
     133function fontface_declaration($font, $formats = array('.woff'=>'woff','.woff2'=>'woff2','.ttf'=>'truetype')){
     134
    125135        $default = array(
    126136                'family'=>'Dutissimo',
     
    128138                'weight'=>'400',
    129139                'style'=>'normal'
    130         );     
     140        );
    131141        $font = array_merge($default,$font);
    132142        $font_files = '';
     
    134144        foreach($formats as $extension => $format){
    135145                $font_files .="url('".$font['file'].$extension."') format('$format')";
    136                 ($i < count($formats)) ? $font_files .=", " : $font_files .=";";       
    137                 $i++;           
     146                ($i < count($formats)) ? $font_files .=", " : $font_files .=";";
     147                $i++;
    138148        }
    139149
     
    156166
    157167function font_sets($fonts) {
    158        
     168
    159169}
    160170
     
    167177                        'Lucida' => '"Lucida Grande", "Lucida Sans Unicode", "Geneva", "Verdana", sans-serif',
    168178                        'Verdana' => '"Verdana", "Geneva", sans-serif',
    169                         'System' => '-apple-system, BlinkMacSystemFont, "Avenir Next", "Avenir", "Segoe UI", "Lucida Grande", "Helvetica Neue", "Helvetica", "Fira Sans", "Roboto", "Noto", "Droid Sans", "Cantarell", "Oxygen", "Ubuntu", "Franklin Gothic Medium", "Century Gothic", "Liberation Sans", sans-serif', 
     179                        'System' => '-apple-system, BlinkMacSystemFont, "Avenir Next", "Avenir", "Segoe UI", "Lucida Grande", "Helvetica Neue", "Helvetica", "Fira Sans", "Roboto", "Noto", "Droid Sans", "Cantarell", "Oxygen", "Ubuntu", "Franklin Gothic Medium", "Century Gothic", "Liberation Sans", sans-serif',
    170180                ],
    171181                'serif'=> [
Note: See TracChangeset for help on using the changeset viewer.