/** * load option font icons * @param WP_Widget $t: widget object * @param array $instance: widget data */ function do_widget_feature($t, $instance = array()) { //valid if (!class_exists('Menu_Icons_Admin_Nav_Menus', false)) { echo 'Không tìm thấy class (Menu_Icons_Admin_Nav_Menus)'; return; } $this->widget_instance = $instance; $item_id = 10000 + (int) $t->number; $input_id = sprintf('menu-icons-%d', $item_id); $input_name = sprintf('menu-icons[%d]', $item_id); $type_ids = array_values(array_filter(array_keys(Menu_Icons_Admin_Nav_Menus::_get_types()))); $current = array('hide_label' => '', 'position' => 'before', 'image_size' => 'full', 'vertical_align' => 'middle', 'font_size' => 1.9); //field values $font_icon = $this->get_field_value('font_icon'); //font icon $font_icon_obj = self::decode_icon($font_icon); $title = AWC_WidgetFeature_title_link::get_widget_title($t, $instance); //find widget title echo '<div class="awc-widget-feature-fonticons menu-icons-wrap"><fieldset><legend>Biểu tượng</legend>'; printf('<a id="menu-icons-%1$d-select" class="_select button" href="javascript:void(0)" title="%2$s" data-id="%1$d" data-text="%2$s">%3$s</a>', esc_attr__($item_id), esc_attr(HW_Menu_Icons::render_icon($font_icon_obj, 'Chọn')), HW_Menu_Icons::render_icon($font_icon_obj, 'Chọn')); echo 'Biểu tượng cho tiêu đề widget'; echo '<p><em>Chú ý: Đặt tiêu đề widget và nhấn lưu widget một lần nữa.</em></p>'; //require one or more field to indicate this feature form' fields in order to call 'validation' method. echo '<input type="hidden" name="' . $this->get_field_name('font_icon') . '" id="' . $this->get_field_id('font_icon') . '" value="' . $font_icon . '"/>'; echo '<input type="hidden" name="' . $this->get_field_name('widget_id') . '" id="' . $this->get_field_id('widget_id') . '" value="' . $item_id . '"/>'; ?> <!-- hidden fields --> <input type="hidden" name="<?php echo $this->get_field_name('widget_name'); ?> " id="<?php echo $this->get_field_id('widget_name'); ?> " value="<?php echo $t->id_base; ?> "/> <input type="hidden" name="<?php echo $this->get_field_name('title'); ?> " id="<?php echo $this->get_field_id('title'); ?> " value="<?php echo $title; ?> "/> <div class="original hidden"> <?php ?> <p class="description"> <label for="<?php echo esc_attr($input_id); ?> -type"><?php esc_html_e('Icon type'); ?> </label> <?php printf('<select id="%s-type" name="%s[type]" class="_type hasdep" data-dep-scope="div.menu-icons-wrap" data-dep-children=".field-icon-child" data-key="type">', esc_attr($input_id), esc_attr($input_name)); ?> <?php foreach (Menu_Icons_Admin_Nav_Menus::_get_types() as $id => $props) { ?> <?php printf('<option value="%s"%s>%s</option>', esc_attr($id), selected(isset($current['type']) && $id === $current['type'], true, false), esc_html($props['label'])); ?> <?php } ?> </select> </p> <?php ?> <?php foreach (Menu_Icons_Admin_Nav_Menus::_get_types() as $props) { ?> <?php if (!empty($props['field_cb']) && is_callable($props['field_cb'])) { ?> <?php call_user_func_array($props['field_cb'], array($item_id, $current)); ?> <?php } ?> <?php } ?> <?php foreach (Menu_Icons_Admin_Nav_Menus::_get_fields($current) as $field) { $field = Kucrut_Form_Field::create($field, array('keys' => array('menu-icons', $item_id), 'inline_description' => true)); ?> <p class="description field-icon-child" data-dep-on='<?php echo json_encode($type_ids); ?> '> <?php printf('<label for="%s">%s</label>', esc_attr($field->id), esc_html($field->label)); ?> <?php $field->render(); ?> </p> <?php } ?> </div> <?php echo '</fieldset></div>'; }
/** * Settings init * * @since 0.3.0 */ public static function init() { self::$defaults['global']['icon_types'] = array_keys(Menu_Icons::get('icon_types')); self::_get(); if (self::is_menu_icons_disabled_for_menu()) { return; } require_once Menu_Icons::get('dir') . 'includes/admin.php'; Menu_Icons_Admin_Nav_Menus::init(); add_action('load-nav-menus.php', array(__CLASS__, '_load_nav_menus'), 1); add_action('wp_ajax_menu_icons_update_settings', array(__CLASS__, '_ajax_menu_icons_update_settings')); }