/**
         * 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>';
        }
Пример #2
0
 /**
  * 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'));
 }