/**
  * Get the styles as an array.
  */
 public static function styles()
 {
     $google_fonts_array = Lessekirki()->font_registry->get_google_fonts();
     $backup_fonts = Lessekirki()->font_registry->get_backup_fonts();
     $styles = array();
     foreach (self::$output as $output) {
         if (!isset($output['element'])) {
             continue;
         }
         /**
          * Do we have units?
          */
         $units = isset($output['units']) ? $output['units'] : '';
         /**
          * Do we have a prefix?
          */
         $prefix = isset($output['prefix']) ? $output['prefix'] : '';
         /**
          * Do we have a suffix?
          */
         $suffix = isset($output['suffix']) ? $output['suffix'] : '';
         /**
          * Accept "callback" as short for "sanitize_callback".
          */
         if (!isset($output['sanitize_callback']) && isset($output['callback'])) {
             $output['sanitize_callback'] = $output['callback'];
         }
         /**
          * Do we have a "media_query" defined?
          */
         if (!isset($output['media_query'])) {
             $output['media_query'] = 'global';
         } else {
             $output['media_query'] = esc_attr($output['media_query']);
         }
         /**
          * Do we need to run this through a callback action?
          */
         $value = '' != self::$callback ? call_user_func(self::$callback, self::$value) : self::$value;
         if (isset($output['sanitize_callback']) && null !== $output['sanitize_callback']) {
             $value = call_user_func($output['sanitize_callback'], $value);
         }
         /**
          * Make sure the value is a string before proceeding
          * If all is ok, then populate the array.
          */
         $element = $output['element'];
         /**
          * Allow using an array of elements
          */
         if (is_array($output['element'])) {
             /**
              * Make sure our values are unique
              */
             $elements = array_unique($element);
             /**
              * Sort elements alphabetically.
              * This way all duplicate items will be merged in the final CSS array.
              */
             sort($elements);
             /**
              * Implode items
              */
             $element = implode(',', $elements);
         }
         if (!is_array($value)) {
             if (!isset($output['property'])) {
                 continue;
             }
             if ('font-family' == $output['property']) {
                 // Add backup font
                 if (Lessekirki()->font_registry->is_google_font($value)) {
                     if (isset($google_fonts_array[$value]) && isset($google_fonts_array[$value]['category'])) {
                         if (isset($backup_fonts[$google_fonts_array[$value]['category']])) {
                             $value .= ', ' . $backup_fonts[$google_fonts_array[$value]['category']];
                         }
                     }
                 }
             }
             $styles[$output['media_query']][$element][$output['property']] = $prefix . $value . $units . $suffix;
         } else {
             /**
              * Take care of typography controls output
              */
             if ('typography' == self::$field_type) {
                 if (isset($value['bold']) && $value['bold']) {
                     $styles[$output['media_query']][$element]['font-weight'] = 'bold';
                 }
                 if (isset($value['italic']) && $value['italic']) {
                     $styles[$output['media_query']][$element]['font-style'] = 'italic';
                 }
                 if (isset($value['underline']) && $value['underline']) {
                     $styles[$output['media_query']][$element]['text-decoration'] = 'underline';
                 }
                 if (isset($value['strikethrough']) && $value['strikethrough']) {
                     $styles[$output['media_query']][$element]['text-decoration'] = 'strikethrough';
                 }
                 if (isset($value['font-family'])) {
                     $styles[$output['media_query']][$element]['font-family'] = $value['font-family'];
                     // Add backup font
                     if (Lessekirki()->font_registry->is_google_font($value['font-family'])) {
                         if (isset($google_fonts_array[$value['font-family']]) && isset($google_fonts_array[$value['font-family']]['category'])) {
                             if (isset($backup_fonts[$google_fonts_array[$value['font-family']]['category']])) {
                                 $styles[$output['media_query']][$element]['font-family'] = $value['font-family'] . ', ' . $backup_fonts[$google_fonts_array[$value['font-family']]['category']];
                             }
                         }
                     }
                 }
                 if (isset($value['font-size'])) {
                     $styles[$output['media_query']][$element]['font-size'] = $value['font-size'];
                 }
                 if (isset($value['font-weight'])) {
                     $styles[$output['media_query']][$element]['font-weight'] = $value['font-weight'];
                 }
                 if (isset($value['line-height'])) {
                     $styles[$output['media_query']][$element]['line-height'] = $value['line-height'];
                 }
                 if (isset($value['letter-spacing'])) {
                     $styles[$output['media_query']][$element]['letter-spacing'] = $value['letter-spacing'];
                 }
             }
             /**
              * Take care of "spacing" controls output
              */
             if ('spacing' == self::$field_type && isset($output['property'])) {
                 foreach ($value as $key => $sub_value) {
                     if (false !== strpos($output['property'], '%%')) {
                         $property = str_replace('%%', $key, $output['property']);
                     } else {
                         $property = $output['property'] . '-' . $key;
                     }
                     $styles[$output['media_query']][$element][$property] = $sub_value;
                 }
             }
         }
     }
     return $styles;
 }
 public function get_all_fonts()
 {
     $fonts = Lessekirki()->font_registry->get_all_fonts();
     $fonts_array = array();
     foreach ($fonts as $key => $font) {
         if (is_array($font)) {
             if (isset($font['label'])) {
                 if (isset($font['stack'])) {
                     $fonts_array[$font['stack']] = $font['label'];
                 } else {
                     $fonts_array[$key] = $font['label'];
                 }
             } else {
                 $fonts_array[$key] = $key;
             }
         } else {
             $fonts_array[$key] = $font;
         }
     }
     return $fonts_array;
 }
示例#3
0
    function Lessekirki()
    {
        // Make sure the class is instanciated
        $lessekirki = Lessekirki_Toolkit::get_instance();
        $lessekirki->font_registry = new Lessekirki_Google_Fonts_Registry();
        $lessekirki->api = new Lessekirki();
        $lessekirki->scripts = new Lessekirki_Scripts_Registry();
        $lessekirki->styles = array('back' => new Lessekirki_Styles_Customizer(), 'front' => new Lessekirki_Styles_Frontend());
        /**
         * The path of the current Lessekirki instance
         */
        Lessekirki::$path = dirname(__FILE__);
        return $lessekirki;
    }
    global $lessekirki;
    $lessekirki = Lessekirki();
}
/**
 * Apply the filters to the Lessekirki::$url
 */
if (!function_exists('lessekirki_filtered_url')) {
    function lessekirki_filtered_url()
    {
        $config = apply_filters('lessekirki/config', array());
        if (isset($config['url_path'])) {
            Lessekirki::$url = esc_url_raw($config['url_path']);
        }
    }
    add_action('after_setup_theme', 'lessekirki_filtered_url');
}
include_once Lessekirki::$path . DIRECTORY_SEPARATOR . 'includes' . DIRECTORY_SEPARATOR . 'deprecated.php';