wp/wp-content/plugins/option-tree/includes/ot-functions.php
changeset 5 5e2f62d02dcd
parent 0 d970ebf37754
child 7 cf61fcea0001
--- a/wp/wp-content/plugins/option-tree/includes/ot-functions.php	Mon Jun 08 16:11:51 2015 +0000
+++ b/wp/wp-content/plugins/option-tree/includes/ot-functions.php	Tue Jun 09 03:35:32 2015 +0200
@@ -7,7 +7,61 @@
  * @copyright Copyright (c) 2013, Derek Herman
  * @since     2.0
  */
-      
+
+/**
+ * Theme Options ID
+ *
+ * @return    string
+ *
+ * @access    public
+ * @since     2.3.0
+ */
+if ( ! function_exists( 'ot_options_id' ) ) {
+
+  function ot_options_id() {
+    
+    return apply_filters( 'ot_options_id', 'option_tree' );
+    
+  }
+  
+}
+
+/**
+ * Theme Settings ID
+ *
+ * @return    string
+ *
+ * @access    public
+ * @since     2.3.0
+ */
+if ( ! function_exists( 'ot_settings_id' ) ) {
+
+  function ot_settings_id() {
+    
+    return apply_filters( 'ot_settings_id', 'option_tree_settings' );
+    
+  }
+  
+}
+
+/**
+ * Theme Layouts ID
+ *
+ * @return    string
+ *
+ * @access    public
+ * @since     2.3.0
+ */
+if ( ! function_exists( 'ot_layouts_id' ) ) {
+
+  function ot_layouts_id() {
+    
+    return apply_filters( 'ot_layouts_id', 'option_tree_layouts' );
+    
+  }
+  
+}
+
 /**
  * Get Option.
  *
@@ -26,7 +80,7 @@
   function ot_get_option( $option_id, $default = '' ) {
     
     /* get the saved options */ 
-    $options = get_option( 'option_tree' );
+    $options = get_option( ot_options_id() );
     
     /* look for the saved value */
     if ( isset( $options[$option_id] ) && '' != $options[$option_id] ) {
@@ -42,6 +96,29 @@
 }
 
 /**
+ * Echo Option.
+ *
+ * Helper function to echo the option value.
+ * If no value has been saved, it echos $default.
+ *
+ * @param     string    The option ID.
+ * @param     string    The default option value.
+ * @return    mixed
+ *
+ * @access    public
+ * @since     2.2.0
+ */
+if ( ! function_exists( 'ot_echo_option' ) ) {
+  
+  function ot_echo_option( $option_id, $default = '' ) {
+    
+    echo ot_get_option( $option_id, $default );
+  
+  }
+  
+}
+
+/**
  * Filter the return values through WPML
  *
  * @param     array     $options The current options    
@@ -58,7 +135,7 @@
     // Return translated strings using WMPL
     if ( function_exists('icl_t') ) {
       
-      $settings = get_option( 'option_tree_settings' );
+      $settings = get_option( ot_settings_id() );
       
       if ( isset( $settings['settings'] ) ) {
       
@@ -84,6 +161,26 @@
             
             }
           
+          // List Item & Slider
+          } else if ( $option_id == $setting['id'] && $setting['type'] == 'social-links' ) {
+          
+            foreach( $options[$option_id] as $key => $value ) {
+          
+              foreach( $value as $ckey => $cvalue ) {
+                
+                $id = $option_id . '_' . $ckey . '_' . $key;
+                $_string = icl_t( 'Theme Options', $id, $cvalue );
+                
+                if ( ! empty( $_string ) ) {
+                
+                  $options[$option_id][$key][$ckey] = $_string;
+                  
+                }
+                
+              }
+            
+            }
+          
           // All other acceptable option types
           } else if ( $option_id == $setting['id'] && in_array( $setting['type'], apply_filters( 'ot_wpml_option_types', array( 'text', 'textarea', 'textarea-simple' ) ) ) ) {
           
@@ -122,12 +219,32 @@
   function ot_load_dynamic_css() {
     
     /* don't load in the admin */
-    if ( is_admin() )
+    if ( is_admin() ) {
       return;
-    
+    }
+
+    /**
+     * Filter whether or not to enqueue a `dynamic.css` file at the theme level.
+     *
+     * By filtering this to `false` OptionTree will not attempt to enqueue any CSS files.
+     *
+     * Example: add_filter( 'ot_load_dynamic_css', '__return_false' );
+     *
+     * @since 2.5.5
+     *
+     * @param bool $load_dynamic_css Default is `true`.
+     * @return bool
+     */
+    if ( false === (bool) apply_filters( 'ot_load_dynamic_css', true ) ) {
+      return;
+    }
+
     /* grab a copy of the paths */
     $ot_css_file_paths = get_option( 'ot_css_file_paths', array() );
-    
+    if ( is_multisite() ) {
+      $ot_css_file_paths = get_blog_option( get_current_blog_id(), 'ot_css_file_paths', $ot_css_file_paths );
+    }
+
     if ( ! empty( $ot_css_file_paths ) ) {
       
       $last_css = '';
@@ -138,10 +255,18 @@
         if ( '' != $path && file_exists( $path ) ) {
         
           $parts = explode( '/wp-content', $path );
-          
+
           if ( isset( $parts[1] ) ) {
+
+            $sub_parts = explode( '/', $parts[1] );
+
+            if ( isset( $sub_parts[1] ) && isset( $sub_parts[2] ) ) {
+              if ( $sub_parts[1] == 'themes' && $sub_parts[2] != get_template() ) {
+                continue;
+              }
+            }
             
-            $css = home_url( '/wp-content' . $parts[1] );
+            $css = set_url_scheme( WP_CONTENT_URL ) . $parts[1];
             
             if ( $last_css !== $css ) {
               
@@ -165,9 +290,85 @@
 }
 
 /**
- * Registers the Theme Option page link for the admin bar.
+ * Enqueue the Google Fonts CSS.
+ *
+ * @return    void
  *
- * @uses      ot_register_settings()
+ * @access    public
+ * @since     2.5.0
+ */
+if ( ! function_exists( 'ot_load_google_fonts_css' ) ) {
+
+  function ot_load_google_fonts_css() {
+
+    /* don't load in the admin */
+    if ( is_admin() )
+      return;
+
+    $ot_google_fonts      = get_theme_mod( 'ot_google_fonts', array() );
+    $ot_set_google_fonts  = get_theme_mod( 'ot_set_google_fonts', array() );
+    $families             = array();
+    $subsets              = array();
+    $append               = '';
+
+    if ( ! empty( $ot_set_google_fonts ) ) {
+
+      foreach( $ot_set_google_fonts as $id => $fonts ) {
+
+        foreach( $fonts as $font ) {
+
+          // Can't find the font, bail!
+          if ( ! isset( $ot_google_fonts[$font['family']]['family'] ) ) {
+            continue;
+          }
+
+          // Set variants & subsets
+          if ( ! empty( $font['variants'] ) && is_array( $font['variants'] ) ) {
+
+            // Variants string
+            $variants = ':' . implode( ',', $font['variants'] );
+
+            // Add subsets to array
+            if ( ! empty( $font['subsets'] ) && is_array( $font['subsets'] ) ) {
+              foreach( $font['subsets'] as $subset ) {
+                $subsets[] = $subset;
+              }
+            }
+
+          }
+
+          // Add family & variants to array
+          if ( isset( $variants ) ) {
+            $families[] = str_replace( ' ', '+', $ot_google_fonts[$font['family']]['family'] ) . $variants;
+          }
+
+        }
+
+      }
+
+    }
+
+    if ( ! empty( $families ) ) {
+
+      $families = array_unique( $families );
+
+      // Append all subsets to the path, unless the only subset is latin.
+      if ( ! empty( $subsets ) ) {
+        $subsets = implode( ',', array_unique( $subsets ) );
+        if ( $subsets != 'latin' ) {
+          $append = '&subset=' . $subsets;
+        }
+      }
+
+      wp_enqueue_style( 'ot-google-fonts', esc_url( '//fonts.googleapis.com/css?family=' . implode( '|', $families ) ) . $append, false, null );
+    }
+
+  }
+
+}
+
+/**
+ * Registers the Theme Option page link for the admin bar.
  *
  * @return    void
  *