HEX
Server: Apache
System: Linux vps-cdc32557.vps.ovh.ca 5.15.0-156-generic #166-Ubuntu SMP Sat Aug 9 00:02:46 UTC 2025 x86_64
User: hanode (1017)
PHP: 7.4.33
Disabled: 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_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /home/hanode/public_html/wp-content/themes/kingstore/lib/responsive_dropdown.php
<?php
class Kingstore_Resmenu{
	function __construct(){
		add_filter( 'wp_nav_menu_args' , array( $this , 'Kingstore_MenuRes_AdFilter' ), 100 ); 
		add_filter( 'wp_nav_menu_args' , array( $this , 'Kingstore_MenuRes_Filter' ), 110 );	
		add_action( 'wp_footer', array( $this  , 'Kingstore_MenuRes_AdScript' ), 110 );	
	}
	function Kingstore_MenuRes_AdScript(){
		$html  = '<script type="text/javascript">';
		$html .= '(function($) {
			/* Responsive Menu */
			$(document).ready(function(){
				$( ".show-dropdown" ).each(function(){
					$(this).on("click", function(){
						$(this).toggleClass("show");
						var $element = $(this).parent().find( "> ul" );
						$element.toggle( 300 );
					});
				});
			});
		})(jQuery);';
		$html .= '</script>';
		echo $html;
	}
	function Kingstore_MenuRes_AdFilter( $args ){
		$args['container'] = false;
		$kingstore_theme_locates = array();
		$kingstore_menu = sw_options( 'menu_location' );
		if( !is_array( $kingstore_menu ) ){
			$kingstore_theme_locates[] = $kingstore_menu;
		}else{
			$kingstore_theme_locates = $kingstore_menu;
		}
		foreach( $kingstore_theme_locates as $kingstore_theme_locate ){
			if ( ( strcmp( $kingstore_theme_locate, $args['theme_location'] ) == 0 ) ) {	
				if( isset( $args['kingstore_resmenu'] ) && $args['kingstore_resmenu'] == true ) {
					return $args;
				}		
				$ResNavMenu = $this->ResNavMenu( $args );
				$args['container'] = '';
				$args['container_class'].= '';	
				$args['menu_class'].= ($args['menu_class'] == '' ? '' : ' ') . 'kingstore-menures';			
				$args['items_wrap']	= '<ul id="%1$s" class="%2$s">%3$s</ul>'.$ResNavMenu;
			}			
		}
		return $args;
	}
	function ResNavMenu( $args ){
		$args['kingstore_resmenu'] = true;		
		$select = wp_nav_menu( $args );
		return $select;
	}
	function Kingstore_MenuRes_Filter( $args ){
		/* Fix Menu on wp 4.7 */
		if( !isset( $args['kingstore_resmenu'] ) ){
			return $args;
		}
		$args['container'] = false;
		$kingstore_theme_locates = array();
		$kingstore_menu = sw_options( 'menu_location' );
		if( !is_array( $kingstore_menu ) ){
			$kingstore_theme_locates[] = $kingstore_menu;
		}else{
			$kingstore_theme_locates = $kingstore_menu;
		}
		foreach( $kingstore_theme_locates as $kingstore_theme_locate ){
			if ( ( strcmp( $kingstore_theme_locate, $args['theme_location'] ) == 0 ) ) {	
				$args['container'] = 'div';
				$args['container_class'].= 'resmenu-container';
				$args['items_wrap']	= '<button class="navbar-toggle" type="button" data-toggle="collapse" data-target="#ResMenu'. esc_attr( $kingstore_theme_locate ) .'">
					<span class="sr-only">Categories</span>
					<span class="icon-bar"></span>
					<span class="icon-bar"></span>
					<span class="icon-bar"></span>
				</button><div id="ResMenu'. esc_attr( $kingstore_theme_locate ) .'" class="collapse menu-responsive-wrapper"><ul id="%1$s" class="%2$s">%3$s</ul></div>';	
				$args['menu_class'] = 'kingstore_resmenu';
				$args['walker'] = new Kingstore_ResMenu_Walker();
			}			
		}
		return $args;
	}
}
class Kingstore_ResMenu_Walker extends Walker_Nav_Menu {
	function check_current($classes) {
		return preg_match('/(current[-_])|active|dropdown/', $classes);
	}

	function start_lvl(&$output, $depth = 0, $args = array()) {
		$output .= "\n<ul class=\"dropdown-resmenu\">\n";
	}

	function start_el(&$output, $item, $depth = 0, $args = array(), $id = 0) {
		$item_html = '';
		parent::start_el($item_html, $item, $depth, $args);
		if( !$item->is_dropdown && ($depth === 0) ){
			$item_html = str_replace('<a', '<a class="item-link"', $item_html);			
			$item_html = str_replace('</a>', '</a>', $item_html);			
		}
		if ( $item->is_dropdown ) {
			$item_html = str_replace('<a', '<a class="item-link dropdown-toggle"', $item_html);
			$item_html = str_replace('</a>', '</a>', $item_html);
			$item_html .= '<span class="show-dropdown"></span>';
		}
		$output .= $item_html;
	}

	function display_element($element, &$children_elements, $max_depth, $depth = 0, $args, &$output) {
		$element->is_dropdown = !empty($children_elements[$element->ID]);
		if ($element->is_dropdown) {			
			$element->classes[] = 'res-dropdown';
		}

		parent::display_element($element, $children_elements, $max_depth, $depth, $args, $output);
	}
}
new Kingstore_Resmenu();