HEX
Server: nginx/1.28.1
System: Linux iZgw8b5bpgd4jyptfmmmxgZ 6.6.102-5.2.alnx4.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Nov 27 23:11:10 CST 2025 x86_64
User: www (1000)
PHP: 8.2.28
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/wwwroot/www.scdc-marine.com/wp-content/themes/scdc-marine/HekuClass/Admin/Cmb2NavMenu.php
<?php
namespace Heku\HekuClass\Admin;

/**
 * @package     Heku\HekuClass\Admin
 * @subpackage  Classes/Cmb2NavMenu
 * @author      Heku Daleconan <http://www.daleconan.com>
 * @copyright   Copyright (c) 2022-2023, Heku Daleconan
 * @license     http://opensource.org/licenses/gpl-2.0.php GNU Public License
 * 
 *      后台 菜单导航,自定义参数,和展示形式
 * 
 */


class Cmb2NavMenu {

    /** 
     * 类实现单例模式,类的独生子女
     */
    private static $instance;

    /**
     * 依赖注入的接口 Instance 方法
     * 目标是 保证 init() 初始化方法 只执行一次
     *
     * @return self  唯一实例化的本类
     */
    public static function instance() {
        if ( ! isset( self::$instance ) ) {
            self::$instance = new self;
            self::$instance->init();
        }
        return self::$instance;
    }

    public function init(){

        add_filter('cmb2_nav_menus', array(__CLASS__,'regeister_menu'),90, 1);
        //add_filter('cmb2_nav_menu_fields_ym-menu', array(__CLASS__,'top_menu_custon_field'),99, 1);
        add_filter('cmb2_nav_menu_fields_header-menu', array(__CLASS__,'top_menu_custon_field'),99, 1);
        add_filter('cmb2_nav_menu_fields_post', array(__CLASS__,'top_menu_custon_field'),99, 1);
        add_filter('cmb2_nav_menu_fields_newsflashes', array(__CLASS__,'top_menu_custon_field'),99, 1);
        add_filter('cmb2_nav_menu_fields_sidebar-product', array(__CLASS__,'sidebar_menu_custon_field'),99, 1);
        add_filter('cmb2_nav_menu_fields_shop', array(__CLASS__,'top_menu_custon_field'),99, 1);
        add_filter('cmb2_nav_menu_fields_circle', array(__CLASS__,'top_menu_custon_field'),99, 1);
        add_filter('cmb2_nav_menu_fields_links', array(__CLASS__,'top_menu_custon_field'),99, 1);
        add_filter('cmb2_nav_menu_fields_infomation', array(__CLASS__,'top_menu_custon_field'),99, 1);
    }

    public static function regeister_menu($menu_slugs){
        //$menu_slugs[] = 'ym-menu';
        $menu_slugs[] = 'header-menu';
        $menu_slugs[] = 'post';
        $menu_slugs[] = 'newsflashes';
        $menu_slugs[] = 'sidebar-product';
        $menu_slugs[] = 'shop';
        $menu_slugs[] = 'circle';
        $menu_slugs[] = 'links';
        $menu_slugs[] = 'infomation';
        return $menu_slugs;
    }

    public static function top_menu_custon_field($fields){

        $fields['menu_type'] = array(
            'name'    => __( '一级菜单形式', 'heku' ),
            'id'=>'menu_type',
            'type' => 'radio_image',
            'options'   => array(
                'menu-type1'    => __('下拉菜单','jikelao'), 
                'menu-type2'    => __('列表菜单','jikelao'), 
                'menu-type3'    => __('图片菜单','jikelao'), 
                'menu-type4'    => __('分类菜单','jikelao'),
            ),
            'images_path'      => HEKU_THEME_URI,
            'images'    => array(
                'menu-type1'    => '/Assets/admin/images/menu-1.svg',
                'menu-type2'    => '/Assets/admin/images/menu-1.gif',
                'menu-type3'    => '/Assets/admin/images/menu-1.svg',
                'menu-type4'    => '/Assets/admin/images/menu-2.gif '
            ),
            'default'=>'menu-3'
        );
/*         $fields['sub_menu_type'] = array(
            'name'    => __( '二级子菜单形式', 'heku' ),
            'id'=>'menu_type',
            'type' => 'radio_image',
            'options'   => array(
                'sub_menu-type1'    => __('下拉菜单','jikelao'), 
                'sub_menu-type2'    => __('列表菜单','jikelao'), 
                'sub_menu-type3'    => __('图片菜单','jikelao'), 
                'sub_menu-type4'    => __('分类菜单','jikelao'),
            ),
            'images_path'      => HEKU_THEME_URI,
            'images'    => array(
                'sub_menu-type1'    => '/Assets/admin/images/menu-1.png',
                'sub_menu-type2'    => '/Assets/admin/images/menu-4.svg',
                'sub_menu-type3'    => '/Assets/admin/images/menu-1.svg',
                'sub_menu-type4'    => '/Assets/admin/images/menu-2.gif '
            ),
            'default'=>'menu-3'
        ); */
        $fields['menu_color'] = array(
            'name' =>__('菜单颜色','heku'),
            'id'=>'menu_color',
            'type' => 'colorpicker',
            'default'=>'#fc3c2d', 
            'desc' => __('请选择菜单的颜色','heku')
        );

        $fields['sidebar_menu_img'] = array(
            'name' =>__('菜单图片(图标)','heku'),
            'id'=>'sidebar_menu_img',
            'type' => 'file',
            'desc' => __('请选择菜单图片(图标),在选择图片菜单模式下将会显示在菜单中,调用字段 sidebar_menu_img','heku')
        );

        return $fields;
    }

    public static function sidebar_menu_custon_field($fields){

        $fields['sidebar_menu_img'] = array(
            'name' =>__('菜单图片(图标)','heku'),
            'id'=>'menu_img',
            'type' => 'file',
            'desc' => __('请选择菜单图片(图标),在选择图片菜单模式下将会显示在菜单中','heku')
        );

        return $fields;
    }

}