Opal-Estate-Pro/inc/vendors/cmb2-plugins/custom-fields/iconpicker/iconpicker.php

89 lines
2.4 KiB
PHP
Raw Normal View History

2019-09-26 08:28:57 +02:00
<?php
/**
* Opalestate_Field_Iconpicker
*
* @package opalestate
* @author Opal Team <info@wpopal.com >
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
class Opalestate_Field_Iconpicker {
/**
* Current version number
*/
const VERSION = '1.0.0';
/**
* Initialize the plugin by hooking into CMB2
*/
2019-09-26 09:06:11 +02:00
public function __construct() {
add_filter( 'cmb2_render_opal_iconpicker', [ $this, 'render_iconpicker' ], 10, 5 );
add_filter( 'cmb2_sanitize_opal_iconpicker', [ $this, 'sanitize' ], 10, 4 );
}
public function get_icons() {
$fontawesome_key = 'opalestate_fontawesome_data';
2019-09-26 08:28:57 +02:00
2019-09-26 09:06:11 +02:00
$icon_data = [];
if ( false === ( $fontawesome_icons = get_transient( $fontawesome_key ) ) ) {
$fontawesome = new Opalestate_Iconpicker_Fontawesome();
$fontawesome_icons = $fontawesome->get_icons();
set_transient( $fontawesome_key, $fontawesome_icons, 24 * 7 * HOUR_IN_SECONDS );
$icon_data[] = $fontawesome_icons;
}
var_dump($icon_data);
return $icon_data;
2019-09-26 08:28:57 +02:00
}
/**
* Render field.
*/
2019-09-26 09:06:11 +02:00
public function render_iconpicker( $field, $field_escaped_value, $field_object_id, $field_object_type, $field_type_object ) {
$this->setup_admin_scripts();
2019-09-26 08:28:57 +02:00
$users = $field->value;
2019-09-26 09:06:11 +02:00
var_dump($this->get_icons());
2019-09-26 08:28:57 +02:00
// $output = sprintf(
// '<select id="%1$s" class="%2$s" name="%3$s">',
// sanitize_key( $this->form->form_id . $args['id'] ),
// esc_attr( $args['class'] ),
// esc_attr( $args['id'] )
// );
//
// foreach ( $this->icon_data as $icon_item ) {
// $full_icon_class = $icon_item['prefix'] . ' ' . $icon_item['class'];
// $output .= '<option value="' . $full_icon_class . '" ' . selected( $full_icon_class, $value, false ) . '>' . esc_html( $icon_item['class'] ) . '</option>';
// }
//
// $output .= '</select>';
//
// echo $output;
}
/**
* Sanitize data.
*/
2019-09-26 09:06:11 +02:00
public function sanitize( $override_value, $value, $object_id, $field_args ) {
2019-09-26 08:28:57 +02:00
return $value;
}
/**
* Enqueue scripts and styles.
*/
2019-09-26 09:06:11 +02:00
public function setup_admin_scripts() {
2019-09-26 08:28:57 +02:00
// Iconpicker.
wp_register_style( 'fonticonpicker', plugins_url( 'assets/css/jquery.fonticonpicker.min.css', __FILE__ ), [], self::VERSION );
wp_register_style( 'fonticonpicker-grey-theme', plugins_url( 'assets/themes/grey-theme/jquery.fonticonpicker.grey.min.css', __FILE__ ), [], self::VERSION );
wp_enqueue_style( 'fonticonpicker' );
wp_enqueue_style( 'fonticonpicker-grey-theme' );
}
}
2019-09-26 09:06:11 +02:00
new Opalestate_Field_Iconpicker();