diff --git a/inc/roots-actions.php b/inc/roots-actions.php index ad8f479..e3ed094 100644 --- a/inc/roots-actions.php +++ b/inc/roots-actions.php @@ -1,6 +1,7 @@ \n"; - echo "\t\tvar _gaq=[['_setAccount','$get_google_analytics_id'],['_trackPageview'],['_trackPageLoadTime']];\n"; + echo "\t\tvar _gaq=[['_setAccount','$get_roots_google_analytics_id'],['_trackPageview'],['_trackPageLoadTime']];\n"; echo "\t\t(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];g.async=1;\n"; echo "\t\tg.src=('https:'==location.protocol?'//ssl':'//www')+'.google-analytics.com/ga.js';\n"; echo "\t\ts.parentNode.insertBefore(g,s)}(document,'script'));\n"; @@ -23,6 +24,18 @@ function roots_google_analytics() { } } +function roots_fout_b_gone() { + global $roots_options; + $roots_fout_b_gone = $roots_options['fout_b_gone']; + $template_uri = get_template_directory_uri(); + if ($roots_fout_b_gone === true) { + echo "\t\n"; + echo "\t"; + } +} + function roots_1140_head() { global $roots_options; $roots_css_framework = $roots_options['css_framework']; diff --git a/inc/roots-options.php b/inc/roots-options.php index fc77898..cf5d5a9 100644 --- a/inc/roots-options.php +++ b/inc/roots-options.php @@ -81,7 +81,8 @@ function roots_get_default_theme_options() { 'main_class' => 'span-14 append-1', 'sidebar_class' => 'span-8 prepend-1 last', 'google_analytics_id' => '', - 'clean_menu' => true + 'clean_menu' => true, + 'fout_b_gone' => false ); return apply_filters('roots_default_theme_options', $default_theme_options); @@ -161,25 +162,40 @@ function theme_options_render_page() {
-
- -
-
- -
+
+ +
+
+ +
- + + + + +
+
+ +
+
+ +
+
+ + @@ -216,7 +232,10 @@ function roots_theme_options_validate($input) { $output['google_analytics_id'] = $input['google_analytics_id']; if (isset($input['clean_menu'])) - $output['clean_menu'] = ($input['clean_menu'] === 'yes') ? true : false; + $output['clean_menu'] = ($input['clean_menu'] === 'yes') ? true : false; + + if (isset($input['fout_b_gone'])) + $output['fout_b_gone'] = ($input['fout_b_gone'] === 'yes') ? true : false; return apply_filters('roots_theme_options_validate', $output, $input, $defaults); } diff --git a/js/libs/foutbgone.min.js b/js/libs/foutbgone.min.js new file mode 100644 index 0000000..f94f76d --- /dev/null +++ b/js/libs/foutbgone.min.js @@ -0,0 +1,70 @@ +/** + * WebINK's Fout-B-Gone is a single object that offers various methods for using and + * managing custom Web Fonts added to webpages through the @font-face CSS rule. + * + * Note: This is a work in progress and other useful font-related methods may be added in the future + * + * Current methods: + * + * fbg.hideFOUT -- automatically gets rid of undesirable flash-of-unstyled-text + * that occurs with some browsers, such as FF 3.6 and IE9 + * + * fbg.isFontFaceSupported -- returns true or false indicating if browser supports @font-face + * This is the code written by Diego Perini as reported by Paul Irish on + * 2010.11.02 at http://paulirish.com/2009/font-face-feature-detection + * We've included this check here in the form of a method for convenience; + * it is not necessary for other fbg methods. + * + * + * @author Jay Vilhena + * @version 0.1 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + */ +/***************************************************************************************/ +var fbg=new function() +{var self=this;var test_frequency=20;var giveup=3000;var latency=100;this.rfu=null;var init=null;var onWinLoad=null;this.hideFOUT=null;this.isFontFaceSupported=null;this.onFontFaceFailed=null;init=function() +{};onWinLoad=function(callback) +{if(window.addEventListener)addEventListener('load',callback,false);else attachEvent('onload',callback);};this.hideFOUT=function(when,delay) +{if(navigator.appName!='Microsoft Internet Explorer'&&!/Firefox\/3/.test(navigator.userAgent)) +return;delay=delay||latency;var fontnams=[];var fontruls=[];var selectrs=[];var iscompliant=true;for(var i=0;iFinal: '+spn.offsetWidth;},1000);});}};this.isFontFaceSupported=function() +{var +sheet,doc=document,head=doc.head||doc.getElementsByTagName('head')[0]||docElement,style=doc.createElement("style"),impl=doc.implementation||{hasFeature:function(){return false;}};style.type='text/css';head.insertBefore(style,head.firstChild);sheet=style.sheet||style.styleSheet;var supportAtRule=impl.hasFeature('CSS2','')?function(rule){if(!(sheet&&rule))return false;var result=false;try{sheet.insertRule(rule,0);result=!(/unknown/i).test(sheet.cssRules[0].cssText);sheet.deleteRule(sheet.cssRules.length-1);}catch(e){} +return result;}:function(rule){if(!(sheet&&rule))return false;sheet.cssText=rule;return sheet.cssText.length!==0&&!(/unknown/i).test(sheet.cssText)&&sheet.cssText.replace(/\r+|\n+/g,'').indexOf(rule.split(' ')[0])===0;};return supportAtRule('@font-face { font-family: "font"; src: "font.ttf"; }');};init();}(); \ No newline at end of file