diff options
author | Zach van Rijn <me@zv.io> | 2021-07-21 16:19:29 -0500 |
---|---|---|
committer | Zach van Rijn <me@zv.io> | 2021-07-21 16:19:29 -0500 |
commit | 69c17f9c1942fd0d6a5ea941636e87723b8a6fe2 (patch) | |
tree | e1d0212147048204b0eede0aa6ff79849ed479da /inc/customizer/class-astra-fonts.php | |
parent | 74a7109a2a5ab0d191f26c917ae69e46f0d83b32 (diff) | |
download | blog-ng-69c17f9c1942fd0d6a5ea941636e87723b8a6fe2.tar.gz blog-ng-69c17f9c1942fd0d6a5ea941636e87723b8a6fe2.tar.bz2 blog-ng-69c17f9c1942fd0d6a5ea941636e87723b8a6fe2.tar.xz blog-ng-69c17f9c1942fd0d6a5ea941636e87723b8a6fe2.zip |
dos2unix on all .php files, begin paring down admin page and site branding.
Diffstat (limited to 'inc/customizer/class-astra-fonts.php')
-rw-r--r-- | inc/customizer/class-astra-fonts.php | 400 |
1 files changed, 200 insertions, 200 deletions
diff --git a/inc/customizer/class-astra-fonts.php b/inc/customizer/class-astra-fonts.php index fc2ae34..925f95a 100644 --- a/inc/customizer/class-astra-fonts.php +++ b/inc/customizer/class-astra-fonts.php @@ -1,200 +1,200 @@ -<?php
-/**
- * Helper class for font settings.
- *
- * @package Astra
- * @author Astra
- * @copyright Copyright (c) 2020, Astra
- * @link https://wpastra.com/
- * @since Astra 1.0.0
- */
-
-// Exit if accessed directly.
-if ( ! defined( 'ABSPATH' ) ) {
- exit;
-}
-
-/**
- * Astra Fonts
- */
-final class Astra_Fonts {
-
- /**
- * Get fonts to generate.
- *
- * @since 1.0.0
- * @var array $fonts
- */
- private static $fonts = array();
-
- /**
- * Adds data to the $fonts array for a font to be rendered.
- *
- * @since 1.0.0
- * @param string $name The name key of the font to add.
- * @param array $variants An array of weight variants.
- * @return void
- */
- public static function add_font( $name, $variants = array() ) {
-
- if ( 'inherit' == $name ) {
- return;
- }
- if ( ! is_array( $variants ) ) {
- // For multiple variant selectons for fonts.
- $variants = explode( ',', str_replace( 'italic', 'i', $variants ) );
- }
-
- if ( is_array( $variants ) ) {
- $key = array_search( 'inherit', $variants );
- if ( false !== $key ) {
-
- unset( $variants[ $key ] );
-
- if ( ! in_array( 400, $variants ) ) {
- $variants[] = 400;
- }
- }
- } elseif ( 'inherit' == $variants ) {
- $variants = 400;
- }
-
- if ( isset( self::$fonts[ $name ] ) ) {
- foreach ( (array) $variants as $variant ) {
- if ( ! in_array( $variant, self::$fonts[ $name ]['variants'] ) ) {
- self::$fonts[ $name ]['variants'][] = $variant;
- }
- }
- } else {
- self::$fonts[ $name ] = array(
- 'variants' => (array) $variants,
- );
- }
- }
-
- /**
- * Get Fonts
- */
- public static function get_fonts() {
-
- do_action( 'astra_get_fonts' );
- return apply_filters( 'astra_add_fonts', self::$fonts );
- }
-
- /**
- * Renders the <link> tag for all fonts in the $fonts array.
- *
- * @since 1.0.16 Added the filter 'astra_render_fonts' to support custom fonts.
- * @since 1.0.0
- * @return void
- */
- public static function render_fonts() {
-
- $font_list = apply_filters( 'astra_render_fonts', self::get_fonts() );
-
- $google_fonts = array();
- $font_subset = array();
-
- $system_fonts = Astra_Font_Families::get_system_fonts();
-
- foreach ( $font_list as $name => $font ) {
- if ( ! empty( $name ) && ! isset( $system_fonts[ $name ] ) ) {
-
- // Add font variants.
- $google_fonts[ $name ] = $font['variants'];
-
- // Add Subset.
- $subset = apply_filters( 'astra_font_subset', '', $name );
- if ( ! empty( $subset ) ) {
- $font_subset[] = $subset;
- }
- }
- }
-
- $google_font_url = self::google_fonts_url( $google_fonts, $font_subset );
-
- // Do not load Google font remote or local font asset if not any font selected.
- if ( '' === $google_font_url ) {
- return;
- }
-
- /**
- * Support self hosted Google Fonts.
- *
- * @since 3.6.0
- */
- if ( astra_get_option( 'load-google-fonts-locally' ) && ! is_customize_preview() && ! is_admin() ) {
- if ( astra_get_option( 'preload-local-fonts' ) ) {
- ast_load_preload_local_fonts( $google_font_url );
- }
- wp_enqueue_style( 'astra-google-fonts', ast_get_webfont_url( $google_font_url ), array(), ASTRA_THEME_VERSION, 'all' );
- } else {
- wp_enqueue_style( 'astra-google-fonts', $google_font_url, array(), ASTRA_THEME_VERSION, 'all' );
- }
- }
-
- /**
- * Google Font URL
- * Combine multiple google font in one URL
- *
- * @link https://shellcreeper.com/?p=1476
- * @param array $fonts Google Fonts array.
- * @param array $subsets Font's Subsets array.
- *
- * @return string
- */
- public static function google_fonts_url( $fonts, $subsets = array() ) {
-
- /* URL */
- $base_url = 'https://fonts.googleapis.com/css';
- $font_args = array();
- $family = array();
-
- // This is deprecated filter hook.
- $fonts = apply_filters( 'astra_google_fonts', $fonts );
-
- $fonts = apply_filters( 'astra_google_fonts_selected', $fonts );
-
- /* Format Each Font Family in Array */
- foreach ( $fonts as $font_name => $font_weight ) {
- $font_name = str_replace( ' ', '+', $font_name );
- if ( ! empty( $font_weight ) ) {
- if ( is_array( $font_weight ) ) {
- $font_weight = implode( ',', $font_weight );
- }
- $font_family = explode( ',', $font_name );
- $font_family = str_replace( "'", '', astra_get_prop( $font_family, 0 ) );
- $family[] = trim( $font_family . ':' . rawurlencode( trim( $font_weight ) ) );
- } else {
- $family[] = trim( $font_name );
- }
- }
-
- /* Only return URL if font family defined. */
- if ( ! empty( $family ) ) {
-
- /* Make Font Family a String */
- $family = implode( '|', $family );
-
- /* Add font family in args */
- $font_args['family'] = $family;
-
- /* Add font subsets in args */
- if ( ! empty( $subsets ) ) {
-
- /* format subsets to string */
- if ( is_array( $subsets ) ) {
- $subsets = implode( ',', $subsets );
- }
-
- $font_args['subset'] = rawurlencode( trim( $subsets ) );
- }
-
- $font_args['display'] = astra_get_fonts_display_property();
-
- return add_query_arg( $font_args, $base_url );
- }
-
- return '';
- }
-}
+<?php +/** + * Helper class for font settings. + * + * @package Astra + * @author Astra + * @copyright Copyright (c) 2020, Astra + * @link https://wpastra.com/ + * @since Astra 1.0.0 + */ + +// Exit if accessed directly. +if ( ! defined( 'ABSPATH' ) ) { + exit; +} + +/** + * Astra Fonts + */ +final class Astra_Fonts { + + /** + * Get fonts to generate. + * + * @since 1.0.0 + * @var array $fonts + */ + private static $fonts = array(); + + /** + * Adds data to the $fonts array for a font to be rendered. + * + * @since 1.0.0 + * @param string $name The name key of the font to add. + * @param array $variants An array of weight variants. + * @return void + */ + public static function add_font( $name, $variants = array() ) { + + if ( 'inherit' == $name ) { + return; + } + if ( ! is_array( $variants ) ) { + // For multiple variant selectons for fonts. + $variants = explode( ',', str_replace( 'italic', 'i', $variants ) ); + } + + if ( is_array( $variants ) ) { + $key = array_search( 'inherit', $variants ); + if ( false !== $key ) { + + unset( $variants[ $key ] ); + + if ( ! in_array( 400, $variants ) ) { + $variants[] = 400; + } + } + } elseif ( 'inherit' == $variants ) { + $variants = 400; + } + + if ( isset( self::$fonts[ $name ] ) ) { + foreach ( (array) $variants as $variant ) { + if ( ! in_array( $variant, self::$fonts[ $name ]['variants'] ) ) { + self::$fonts[ $name ]['variants'][] = $variant; + } + } + } else { + self::$fonts[ $name ] = array( + 'variants' => (array) $variants, + ); + } + } + + /** + * Get Fonts + */ + public static function get_fonts() { + + do_action( 'astra_get_fonts' ); + return apply_filters( 'astra_add_fonts', self::$fonts ); + } + + /** + * Renders the <link> tag for all fonts in the $fonts array. + * + * @since 1.0.16 Added the filter 'astra_render_fonts' to support custom fonts. + * @since 1.0.0 + * @return void + */ + public static function render_fonts() { + + $font_list = apply_filters( 'astra_render_fonts', self::get_fonts() ); + + $google_fonts = array(); + $font_subset = array(); + + $system_fonts = Astra_Font_Families::get_system_fonts(); + + foreach ( $font_list as $name => $font ) { + if ( ! empty( $name ) && ! isset( $system_fonts[ $name ] ) ) { + + // Add font variants. + $google_fonts[ $name ] = $font['variants']; + + // Add Subset. + $subset = apply_filters( 'astra_font_subset', '', $name ); + if ( ! empty( $subset ) ) { + $font_subset[] = $subset; + } + } + } + + $google_font_url = self::google_fonts_url( $google_fonts, $font_subset ); + + // Do not load Google font remote or local font asset if not any font selected. + if ( '' === $google_font_url ) { + return; + } + + /** + * Support self hosted Google Fonts. + * + * @since 3.6.0 + */ + if ( astra_get_option( 'load-google-fonts-locally' ) && ! is_customize_preview() && ! is_admin() ) { + if ( astra_get_option( 'preload-local-fonts' ) ) { + ast_load_preload_local_fonts( $google_font_url ); + } + wp_enqueue_style( 'astra-google-fonts', ast_get_webfont_url( $google_font_url ), array(), ASTRA_THEME_VERSION, 'all' ); + } else { + wp_enqueue_style( 'astra-google-fonts', $google_font_url, array(), ASTRA_THEME_VERSION, 'all' ); + } + } + + /** + * Google Font URL + * Combine multiple google font in one URL + * + * @link https://shellcreeper.com/?p=1476 + * @param array $fonts Google Fonts array. + * @param array $subsets Font's Subsets array. + * + * @return string + */ + public static function google_fonts_url( $fonts, $subsets = array() ) { + + /* URL */ + $base_url = 'https://fonts.googleapis.com/css'; + $font_args = array(); + $family = array(); + + // This is deprecated filter hook. + $fonts = apply_filters( 'astra_google_fonts', $fonts ); + + $fonts = apply_filters( 'astra_google_fonts_selected', $fonts ); + + /* Format Each Font Family in Array */ + foreach ( $fonts as $font_name => $font_weight ) { + $font_name = str_replace( ' ', '+', $font_name ); + if ( ! empty( $font_weight ) ) { + if ( is_array( $font_weight ) ) { + $font_weight = implode( ',', $font_weight ); + } + $font_family = explode( ',', $font_name ); + $font_family = str_replace( "'", '', astra_get_prop( $font_family, 0 ) ); + $family[] = trim( $font_family . ':' . rawurlencode( trim( $font_weight ) ) ); + } else { + $family[] = trim( $font_name ); + } + } + + /* Only return URL if font family defined. */ + if ( ! empty( $family ) ) { + + /* Make Font Family a String */ + $family = implode( '|', $family ); + + /* Add font family in args */ + $font_args['family'] = $family; + + /* Add font subsets in args */ + if ( ! empty( $subsets ) ) { + + /* format subsets to string */ + if ( is_array( $subsets ) ) { + $subsets = implode( ',', $subsets ); + } + + $font_args['subset'] = rawurlencode( trim( $subsets ) ); + } + + $font_args['display'] = astra_get_fonts_display_property(); + + return add_query_arg( $font_args, $base_url ); + } + + return ''; + } +} |