boxcard/functions/kirki/field/class-kirki-field-fontawesome.php

56 lines
1.3 KiB
PHP
Raw Normal View History

2019-08-11 11:08:52 +02:00
<?php
/**
* Override field methods
*
* @package Kirki
* @subpackage Controls
* @copyright Copyright (c) 2020, David Vongries
2020-02-25 16:44:51 +01:00
* @license https://opensource.org/licenses/MIT
2019-08-11 11:08:52 +02:00
* @since 3.0.0
*/
/**
* Field overrides.
*/
2020-02-25 16:44:51 +01:00
class Kirki_Field_FontAwesome extends Kirki_Field_Select {
2019-08-11 11:08:52 +02:00
/**
2020-02-25 16:44:51 +01:00
* Set dropdown choices from the FA JSON.
2019-08-11 11:08:52 +02:00
*
* @access protected
2020-02-25 16:44:51 +01:00
* @since 3.0.42
* @return void
2019-08-11 11:08:52 +02:00
*/
2020-02-25 16:44:51 +01:00
protected function set_choices() {
ob_start();
$json_path = wp_normalize_path( Kirki::$path . '/assets/vendor/fontawesome/fontawesome.json' );
include $json_path; // phpcs:ignore WPThemeReview.CoreFunctionality.FileInclude
$font_awesome_json = ob_get_clean();
$fa_array = (array) json_decode( $font_awesome_json, true );
$this->choices = array();
foreach ( $fa_array['icons'] as $icon ) {
if ( ! isset( $icon['id'] ) || ! isset( $icon['name'] ) ) {
continue;
}
$this->choices[ $icon['id'] ] = $icon['name'];
}
2019-08-11 11:08:52 +02:00
}
/**
* Sets the $sanitize_callback
*
* @access protected
*/
protected function set_sanitize_callback() {
// If a custom sanitize_callback has been defined,
// then we don't need to proceed any further.
if ( ! empty( $this->sanitize_callback ) ) {
return;
}
$this->sanitize_callback = 'sanitize_text_field';
}
}