/** * 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; }
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';