_results_text' => esc_html__( 'No results found.', 'kptcp' ), ), ) ); // Enqueue fields scripts and styles $enqueued = array(); if ( ! empty( self::$fields ) ) { foreach ( self::$fields as $field ) { if ( ! empty( $field['type'] ) ) { $classname = 'KPTCP_Field_' . $field['type']; if ( class_exists( $classname ) && method_exists( $classname, 'enqueue' ) ) { $instance = new $classname( $field ); if ( method_exists( $classname, 'enqueue' ) ) { $instance->enqueue(); } unset( $instance ); } } } } do_action( 'kptcp_enqueue' ); } // Add typography enqueue styles to front page public static function add_typography_enqueue_styles() { if ( ! empty( self::$webfonts ) ) { if ( ! empty( self::$webfonts['enqueue'] ) ) { $query = array(); $fonts = array(); foreach ( self::$webfonts['enqueue'] as $family => $styles ) { $fonts[] = $family . ( ( ! empty( $styles ) ) ? ':'. implode( ',', $styles ) : '' ); } if ( ! empty( $fonts ) ) { $query['family'] = implode( '%7C', $fonts ); } if ( ! empty( self::$subsets ) ) { $query['subset'] = implode( ',', self::$subsets ); } $query['display'] = 'swap'; wp_enqueue_style( 'kptcp-google-web-fonts', esc_url( add_query_arg( $query, '//fonts.googleapis.com/css' ) ), array(), null ); } if ( ! empty( self::$webfonts['async'] ) ) { $fonts = array(); foreach ( self::$webfonts['async'] as $family => $styles ) { $fonts[] = $family . ( ( ! empty( $styles ) ) ? ':'. implode( ',', $styles ) : '' ); } wp_enqueue_script( 'kptcp-google-web-fonts', esc_url( '//ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js' ), array(), null ); wp_localize_script( 'kptcp-google-web-fonts', 'WebFontConfig', array( 'google' => array( 'families' => $fonts ) ) ); } } } // Add admin body class public static function add_admin_body_class( $classes ) { if ( apply_filters( 'kptcp_fa4', false ) ) { $classes .= 'kptcp-fa5-shims'; } return $classes; } // Add custom css to front page public static function add_custom_css() { if ( ! empty( self::$css ) ) { echo ''; } } // Add a new framework field public static function field( $field = array(), $value = '', $unique = '', $where = '', $parent = '' ) { // Check for unallow fields if ( ! empty( $field['_notice'] ) ) { $field_type = $field['type']; $field = array(); $field['content'] = esc_html__( 'Oops! Not allowed.', 'kptcp' ) .' ('. $field_type .')'; $field['type'] = 'notice'; $field['style'] = 'danger'; } $depend = ''; $visible = ''; $unique = ( ! empty( $unique ) ) ? $unique : ''; $class = ( ! empty( $field['class'] ) ) ? ' ' . esc_attr( $field['class'] ) : ''; $is_pseudo = ( ! empty( $field['pseudo'] ) ) ? ' kptcp-pseudo-field' : ''; $field_type = ( ! empty( $field['type'] ) ) ? esc_attr( $field['type'] ) : ''; if ( ! empty( $field['dependency'] ) ) { $dependency = $field['dependency']; $depend_visible = ''; $data_controller = ''; $data_condition = ''; $data_value = ''; $data_global = ''; if ( is_array( $dependency[0] ) ) { $data_controller = implode( '|', array_column( $dependency, 0 ) ); $data_condition = implode( '|', array_column( $dependency, 1 ) ); $data_value = implode( '|', array_column( $dependency, 2 ) ); $data_global = implode( '|', array_column( $dependency, 3 ) ); $depend_visible = implode( '|', array_column( $dependency, 4 ) ); } else { $data_controller = ( ! empty( $dependency[0] ) ) ? $dependency[0] : ''; $data_condition = ( ! empty( $dependency[1] ) ) ? $dependency[1] : ''; $data_value = ( ! empty( $dependency[2] ) ) ? $dependency[2] : ''; $data_global = ( ! empty( $dependency[3] ) ) ? $dependency[3] : ''; $depend_visible = ( ! empty( $dependency[4] ) ) ? $dependency[4] : ''; } $depend .= ' data-controller="'. esc_attr( $data_controller ) .'"'; $depend .= ' data-condition="'. esc_attr( $data_condition ) .'"'; $depend .= ' data-value="'. esc_attr( $data_value ) .'"'; $depend .= ( ! empty( $data_global ) ) ? ' data-depend-global="true"' : ''; $visible = ( ! empty( $depend_visible ) ) ? ' kptcp-depend-visible' : ' kptcp-depend-hidden'; } // These attributes has been sanitized above. echo '
'; if ( ! empty( $field_type ) ) { if ( ! empty( $field['title'] ) ) { echo '
'; echo '

'. $field['title'] .'

'; echo ( ! empty( $field['subtitle'] ) ) ? '
'. $field['subtitle'] .'
' : ''; echo '
'; } echo ( ! empty( $field['title'] ) ) ? '
' : ''; $value = ( ! isset( $value ) && isset( $field['default'] ) ) ? $field['default'] : $value; $value = ( isset( $field['value'] ) ) ? $field['value'] : $value; $classname = 'KPTCP_Field_'. $field_type; if ( class_exists( $classname ) ) { $instance = new $classname( $field, $value, $unique, $where, $parent ); $instance->render(); } else { echo '

'. esc_html__( 'Field not found!', 'kptcp' ) .'

'; } } else { echo '

'. esc_html__( 'Field not found!', 'kptcp' ) .'

'; } echo ( ! empty( $field['title'] ) ) ? '
' : ''; echo '
'; echo '
'; } } } KPTCP_Setup::init( __FILE__, true ); /** * * Extended Setup Class for Shortland * * @since 1.0.0 * @version 1.0.0 * */ if ( ! class_exists( 'KPTCP' ) ) { class KPTCP extends KPTCP_Setup{} }