<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
<?php

class Beruco_Custom_Menu {
	/*--------------------------------------------*
	 * Constructor
	 *--------------------------------------------*/
	/**
	 * Initializes the plugin by setting localization, filters, and administration functions.
	 */
	 
	private $mega_fields;
	 
	function __construct() {
		// load the plugin translation files
		
		add_action( 'admin_enqueue_scripts', array( $this, 'beruco_menu_enqueue_scripts' ) );
		
		// add custom menu fields to menu
		add_filter( 'wp_setup_nav_menu_item', array( $this, 'beruco_add_custom_nav_fields' ) );
		// save menu custom fields
		add_action( 'wp_update_nav_menu_item', array( $this, 'beruco_update_custom_nav_fields'), 10, 3 );
		
		// edit menu walker
		add_filter( 'wp_edit_nav_menu_walker', array( $this, 'beruco_edit_walker'), 10, 2 );
		
	} // end constructor
	
	
	/**
	 * Register Megamenu stylesheets and scripts		
	 */
	function beruco_menu_enqueue_scripts( $hook ) {
		// style/scripts
		if ( 'nav-menus.php' == $hook ) {
			wp_enqueue_style( 'magnific-popup', BERUCO_ADDON_URL . 'admin/extension/mega-menu/css/magnific-popup.css', '1.1.0');
			wp_enqueue_style( 'beruco-megamenu', BERUCO_ADDON_URL . 'admin/extension/mega-menu/css/megamenu.css', '1.0');
			wp_enqueue_style( 'themify-icons', BERUCO_ADDON_URL . 'assets/css/themify-icons.css', '1.0');
			wp_enqueue_script( 'magnific-popup', BERUCO_ADDON_URL . 'admin/extension/mega-menu/js/jquery.magnific-popup.min.js' , array( 'jquery' ), '1.1.0', true );
			wp_enqueue_script( 'beruco-megamenu', BERUCO_ADDON_URL . 'admin/extension/mega-menu/js/megamenu.js' , array( 'jquery' ), '1.0', true );

			$menu_icons = $this->beruco_menu_ti_icons();
			
			wp_localize_script( 'beruco-megamenu', 'beruco_object', array( 'icons' => $menu_icons ) );

			do_action( 'beruco_connect_fonts_css_menu_page' );

			add_action( 'admin_footer', array( $this, 'admin_footer_custom' ), 10 );
		}
	}

	public function admin_footer_custom(){
	?>
	<form id="beruco-general-settings-form" class="mfp-hide white-popup-block">
		<h1><?php esc_html_e( 'Beruco General Menu Item Settings', 'beruco-addon' ); ?></h1>
		<fieldset>			
			<p class="beruco-menu-icon-wrap">
				<label><?php esc_html_e( 'Choose Menu Item Icon', 'beruco-addon' ); ?></label>
				<select class="beruco-menu-icons">
					<option value=""><?php esc_html_e( 'None', 'beruco-addon' ); ?></option>
				</select>
			</p>
			<p class="beruco-megamenu-wrap">
				<label><?php esc_html_e( 'Enable Megamenu', 'beruco-addon' ); ?> <input type="checkbox" class="beruco-megamenu-option"></label>
			</p>
			<p class="beruco-megamenu-col-wrap">
				<label><?php esc_html_e( 'Megamenu Column', 'beruco-addon' ); ?></label>
				<select class="beruco-megamenu-col">
					<option value="12"><?php esc_html_e( '1/1', 'beruco-addon' ); ?></option>
					<option value="6"><?php esc_html_e( '1/2', 'beruco-addon' ); ?></option>
					<option value="4"><?php esc_html_e( '1/3', 'beruco-addon' ); ?></option>
					<option value="3"><?php esc_html_e( '1/4', 'beruco-addon' ); ?></option>
					<option value="2"><?php esc_html_e( '1/6', 'beruco-addon' ); ?></option>
				</select>
			</p>
			<p class="beruco-megamenu-widget-wrap">
				<label><?php esc_html_e( 'Megamenu Item Widget', 'beruco-addon' ); ?></label>
				<select class="beruco-megamenu-widget">
					<option value=""><?php esc_html_e( 'Choose Widget', 'beruco-addon' ); ?></option>
					<?php foreach ( $GLOBALS['wp_registered_sidebars'] as $sidebar ) { ?>
							<option value="<?php echo ucwords( $sidebar['id'] ); ?>">
							<?php echo ucwords( $sidebar['name'] ); ?>
							</option>
					<?php } ?>
				</select>
			</p>
		</fieldset>
	</form>
	<?php
	}

	public function beruco_menu_ti_icons(){
		$pattern = '/\.(ti-(?:\w+(?:-)?)+):before\s+{\s*content:\s*"(.+)";\s+}/';
		$icon_css_path = BERUCO_ADDON_URL . 'assets/css/themify-icons.css';  
		$file = '';
		$response = wp_remote_get( $icon_css_path );
		if( is_array($response) ) {
			$file = $response['body']; // use the content
		}
		preg_match_all($pattern, $file, $str, PREG_SET_ORDER);
		return $str;
	}
	
	/**
	 * Add custom fields to $item nav object
	 * in order to be used in custom Walker
	 *
	 * @access      public
	 * @since       1.0 
	 * @return      void
	*/
	function beruco_add_custom_nav_fields( $menu_item ) {
	
		$menu_item->berucomenu = get_post_meta( $menu_item->ID, '_menu_item_berucomenu', true );	
	    return $menu_item;
	    
	}
	
	/**
	 * Save menu custom fields
	 *
	 * @access      public
	 * @since       1.0 
	 * @return      void
	*/
	function beruco_update_custom_nav_fields( $menu_id, $menu_item_db_id, $args ) {
	
	    // Check if element is properly sent
		$opt_value = isset( $_REQUEST['menu-item-berucomenu'][$menu_item_db_id] ) ? $_REQUEST['menu-item-berucomenu'][$menu_item_db_id] : '' ;
		update_post_meta( $menu_item_db_id, '_menu_item_berucomenu', $opt_value );
    
	}
	
	/**
	 * Define new Walker edit
	 *
	 * @access      public
	 * @since       1.0 
	 * @return      void
	*/
	function beruco_edit_walker($walker,$menu_id) {
	
	    require_once ( BERUCO_ADDON_DIR . 'admin/extension/mega-menu/class-walker-nav-menu-edit.php' );
		return 'Beruco_Walker_Nav_Menu_Edit';
	    
	}
	
}
$beruco_cm = new Beruco_Custom_Menu();