Dotclear


Ignore:
Timestamp:
12/18/12 15:59:40 (13 years ago)
Author:
franck <carnet.franck.paul@…>
Branch:
default
Message:

Just for fun, Ductile may now use web fonts (from Google, Adobe and similar providers)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • themes/ductile/_public.php

    r1045 r1081  
    250250               $core->blog->settings->system->themes_url.'/'.$core->blog->settings->system->theme. 
    251251               '/ductile.js"></script>'."\n"; 
     252 
     253          echo self::ductileWebfontHelper(); 
     254     } 
     255 
     256     public static function ductileWebfontHelper() 
     257     { 
     258          $s = $GLOBALS['core']->blog->settings->themes->get($GLOBALS['core']->blog->settings->system->theme.'_style'); 
     259 
     260          if ($s === null) { 
     261               return; 
     262          } 
     263 
     264          $s = @unserialize($s); 
     265          if (!is_array($s)) { 
     266               return; 
     267          } 
     268 
     269          $ret = ''; 
     270          $css = array(); 
     271          $uri = array(); 
     272          if (!isset($s['body_font']) || ($s['body_font'] == '')) { 
     273               // See if webfont defined for main font 
     274               if (isset($s['body_webfont_api']) && isset($s['body_webfont_family']) && isset($s['body_webfont_url'])) { 
     275                    $uri[] = $s['body_webfont_url']; 
     276                    switch ($s['body_webfont_api']) { 
     277                         case 'js': 
     278                              $ret .= sprintf('<script type="text/javascript" src="%s"></script>',$s['body_webfont_url'])."\n"; 
     279                              break; 
     280                         case 'css': 
     281                              $ret .= sprintf('<link type="text/css" href="%s" rel="stylesheet" />',$s['body_webfont_url'])."\n"; 
     282                              break; 
     283                    } 
     284                    # Main font 
     285                    $selectors = 'body, .supranav li a span, #comments.me, a.comment-number'; 
     286                    self::prop($css,$selectors,'font-family',$s['body_webfont_family']); 
     287               } 
     288          } 
     289          if (!isset($s['alternate_font']) || ($s['alternate_font'] == '')) { 
     290               // See if webfont defined for secondary font 
     291               if (isset($s['alternate_webfont_api']) && isset($s['alternate_webfont_family']) && isset($s['alternate_webfont_url'])) { 
     292                    if (!in_array($s['alternate_webfont_url'], $uri)) { 
     293                         switch ($s['alternate_webfont_api']) { 
     294                              case 'js': 
     295                                   $ret .= sprintf('<script type="text/javascript" src="%s"></script>',$s['alternate_webfont_url'])."\n"; 
     296                                   break; 
     297                              case 'css': 
     298                                   $ret .= sprintf('<link type="text/css" href="%s" rel="stylesheet" />',$s['alternate_webfont_url'])."\n"; 
     299                                   break; 
     300                         } 
     301                    } 
     302                    # Secondary font 
     303                    $selectors = '#blogdesc, .supranav, #content-info, #subcategories, #comments-feed, #sidebar h2, #sidebar h3, #footer'; 
     304                    self::prop($css,$selectors,'font-family',$s['alternate_webfont_family']); 
     305               } 
     306          } 
     307          # Style directives 
     308          $res = ''; 
     309          foreach ($css as $selector => $values) { 
     310               $res .= $selector." {\n"; 
     311               foreach ($values as $k => $v) { 
     312                    $res .= $k.':'.$v.";\n"; 
     313               } 
     314               $res .= "}\n"; 
     315          } 
     316          if ($res != '') { 
     317               $ret .= '<style type="text/css">'."\n".$res.'</style>'."\n"; 
     318          } 
     319 
     320          return $ret; 
    252321     } 
    253322      
Note: See TracChangeset for help on using the changeset viewer.

Sites map