Exemplo n.º 1
0
 /**
  * Loader
  *
  * @param string URL path to this directory
  */
 public static final function load($url_path = null)
 {
     // Set URL path for assets
     if (!is_null($url_path)) {
         self::$url_path = $url_path;
     } else {
         self::$url_path = plugin_dir_url(__FILE__);
     }
     // Supported field types
     self::$types = apply_filters('form_field_types', self::$types);
 }
Exemplo n.º 2
0
    /**
     * Print fields
     *
     * @since   0.1.0
     * @access  protected
     * @uses    add_action() Calls 'menu_icons_before_fields' hook
     * @uses    add_action() Calls 'menu_icons_after_fields' hook
     * @wp_hook action       menu_item_custom_fields/10/3
     *
     * @param object $item  Menu item data object.
     * @param int    $depth Nav menu depth.
     * @param array  $args  Menu item args.
     * @param int    $id    Nav menu ID.
     *
     * @return string Form fields
     */
    public static function _fields($id, $item, $depth, $args)
    {
        if (!class_exists('Kucrut_Form_Field')) {
            require_once Menu_Icons::get('dir') . 'includes/library/form-fields.php';
        }
        $type_ids = array_values(array_filter(array_keys(self::_get_types())));
        $input_id = sprintf('menu-icons-%d', $item->ID);
        $input_name = sprintf('menu-icons[%d]', $item->ID);
        $current = wp_parse_args(Menu_Icons::get_meta($item->ID), Menu_Icons_Settings::get_menu_settings(Menu_Icons_Settings::get_current_menu_id()));
        ?>
			<div class="field-icon description-wide menu-icons-wrap">
				<?php 
        /**
         * Allow plugins/themes to inject HTML before menu icons' fields
         *
         * @param object $item  Menu item data object.
         * @param int    $depth Nav menu depth.
         * @param array  $args  Menu item args.
         * @param int    $id    Nav menu ID.
         *
         */
        do_action('menu_icons_before_fields', $item, $depth, $args, $id);
        ?>
				<div class="easy">
					<p class="description submitbox">
						<label><?php 
        esc_html_e('Icon:', 'menu-icons');
        ?>
</label>
						<?php 
        printf('<a id="menu-icons-%1$d-select" class="_select" title="%2$s" data-id="%1$d" data-text="%2$s">%3$s</a>', esc_attr__($item->ID), esc_attr__('Select', 'menu-icons'), self::_get_preview($item->ID, $current));
        ?>
						<?php 
        printf('<a id="menu-icons-%1$s-remove" class="_remove hidden submitdelete" data-id="%1$s">%2$s</a>', esc_attr($item->ID), esc_html__('Remove', 'menu-icons'));
        ?>
					</p>
				</div>
				<div class="original hidden">
					<p class="description">
						<label for="<?php 
        echo esc_attr($input_id);
        ?>
-type"><?php 
        esc_html_e('Icon type', 'menu-icons');
        ?>
</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 (self::_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 
        foreach (self::_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 (self::_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 wp_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 
        /**
         * Allow plugins/themes to inject HTML after menu icons' fields
         *
         * @param object $item  Menu item data object.
         * @param int    $depth Nav menu depth.
         * @param array  $args  Menu item args.
         * @param int    $id    Nav menu ID.
         *
         */
        do_action('menu_icons_after_fields', $item, $depth, $args, $id);
        ?>
			</div>
		<?php 
    }
        /**
         * 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>';
        }
Exemplo n.º 4
0
 /**
  * Get processed settings fields
  *
  * @since  0.3.0
  * @access private
  * @return array
  */
 private static function _get_fields()
 {
     if (!class_exists('Kucrut_Form_Field')) {
         require_once Menu_Icons::get('dir') . 'includes/library/form-fields.php';
     }
     $keys = array('menu-icons', 'settings');
     $sections = self::get_fields();
     foreach ($sections as &$section) {
         $_keys = array_merge($keys, array($section['id']));
         $_args = array_merge(array('keys' => $_keys), $section['args']);
         foreach ($section['fields'] as &$field) {
             $field = Kucrut_Form_Field::create($field, $_args);
         }
         unset($field);
     }
     unset($section);
     return $sections;
 }