Sindbad~EG File Manager
<?php
if (! function_exists('blocksy_menu_get_child_svgs')) {
function blocksy_menu_get_child_svgs() {
return [
'default' => '<svg class="ct-icon" width="8" height="8" viewBox="0 0 15 15"><path d="M2.1,3.2l5.4,5.4l5.4-5.4L15,4.3l-7.5,7.5L0,4.3L2.1,3.2z"/></svg>',
'mobile-toggle-type-1' => '<svg class="ct-icon toggle-icon-1" width="15" height="15" viewBox="0 0 15 15"><path d="M3.9,5.1l3.6,3.6l3.6-3.6l1.4,0.7l-5,5l-5-5L3.9,5.1z"/></svg>',
'mobile-toggle-type-2' => '<svg class="ct-icon toggle-icon-2" width="15" height="15" viewBox="0 0 15 15"><path d="M14.1,6.6H8.4V0.9C8.4,0.4,8,0,7.5,0S6.6,0.4,6.6,0.9v5.7H0.9C0.4,6.6,0,7,0,7.5s0.4,0.9,0.9,0.9h5.7v5.7C6.6,14.6,7,15,7.5,15s0.9-0.4,0.9-0.9V8.4h5.7C14.6,8.4,15,8,15,7.5S14.6,6.6,14.1,6.6z"/></svg>',
'mobile-toggle-type-3' => '<svg class="ct-icon toggle-icon-3" width="12" height="12" viewBox="0 0 15 15"><path d="M2.6,5.8L2.6,5.8l4.3,5C7,11,7.3,11.1,7.5,11.1S8,11,8.1,10.8l4.2-4.9l0.1-0.1c0.1-0.1,0.1-0.2,0.1-0.3c0-0.3-0.2-0.5-0.5-0.5l0,0H3l0,0c-0.3,0-0.5,0.2-0.5,0.5C2.5,5.7,2.5,5.8,2.6,5.8z"/></svg>',
];
}
}
if (! function_exists('blocksy_main_menu_fallback')) {
function blocksy_main_menu_fallback($args) {
extract($args);
$list_pages_args = [
'sort_column' => 'menu_order, post_title',
'menu_id' => 'primary-menu',
'menu_class' => 'primary-menu menu',
'container' => 'ul',
'echo' => false,
'link_before' => '',
'link_after' => '',
'before' => '<ul>',
'after' => '</ul>',
'item_spacing' => 'discard',
'walker' => new Blocksy_Walker_Page(),
'title_li' => ''
];
if (isset($args['blocksy_mega_menu'])) {
$list_pages_args['blocksy_mega_menu'] = $args['blocksy_mega_menu'];
}
if (isset($args['blocksy_advanced_item'])) {
$list_pages_args['blocksy_advanced_item'] = $args['blocksy_advanced_item'];
}
if (isset($args['skip_ghost'])) {
$list_pages_args['skip_ghost'] = $args['skip_ghost'];
}
$menu = wp_list_pages($list_pages_args);
if (! isset($child_indicator_type)) {
$child_indicator_type = 'default';
}
$svg = '';
$before_link = '';
$link_button = '';
if ($child_indicator_type !== 'skip') {
if (
! (
isset($args['child_indicator_wrapper'])
&&
$args['child_indicator_wrapper']
)
) {
$svg = blocksy_html_tag(
'span',
[
'class' => 'ct-toggle-dropdown-desktop',
'role' => 'button'
],
blocksy_menu_get_child_svgs()[$child_indicator_type]
);
if (! isset($args['skip_ghost'])) {
$link_button = blocksy_html_tag(
'button',
[
'class' => 'ct-toggle-dropdown-desktop-ghost',
'aria-label' => __('Expand dropdown menu', 'blocksy'),
'aria-haspopup' => 'true',
'aria-expanded' => 'false',
'role' => 'menuitem'
],
''
);
}
} else {
$link_button = blocksy_html_tag(
'button',
[
'class' => 'ct-toggle-dropdown-mobile',
'aria-label' => __('Expand dropdown menu', 'blocksy'),
'aria-haspopup' => 'true',
'aria-expanded' => 'false'
],
blocksy_menu_get_child_svgs()['mobile-toggle-' . $child_indicator_type]
) . '</span>';
$before_link = '<span class="ct-sub-menu-parent">';
}
}
if ($args['depth'] === 1) {
$svg = '';
$link_button = '';
$before_link = '';
}
$menu = str_replace(
'~',
$svg,
$menu
);
$menu = str_replace(
'^^',
$before_link,
$menu
);
$menu = str_replace(
'^',
$link_button,
$menu
);
if (empty(trim($menu))) {
$args['echo'] = false;
$menu = blocksy_link_to_menu_editor($args);
} else {
$attrs = '';
if (! empty($args['menu_id'])) {
$attrs .= ' id="' . esc_attr($args['menu_id']) . '"';
}
if (! empty($args['menu_class'])) {
$attrs .= ' class="' . esc_attr($args['menu_class']) . '"';
}
$menu = "<ul{$attrs}>" . $menu . "</ul>";
}
if ($echo) {
echo $menu;
}
return $menu;
}
}
if (! function_exists('blocksy_handle_nav_menu_item_title')) {
function blocksy_handle_nav_menu_item_title($item_output, $item, $args, $depth) {
$classes = empty($item->classes) ? [] : (array) $item->classes;
$classes[] = 'menu-item-' . $item->ID;
$class_names = join(' ', array_filter($classes));
$child_indicator_type = 'default';
if (isset($args->child_indicator_type)) {
$child_indicator_type = $args->child_indicator_type;
}
if (
$child_indicator_type !== 'skip'
&&
! (
isset($args->child_indicator_wrapper)
&&
$args->child_indicator_wrapper
)
) {
$svg = blocksy_menu_get_child_svgs()[$child_indicator_type];
if (
strpos($class_names, 'has-children') !== false
||
strpos($class_names, 'has_children') !== false
) {
if (! empty($item_output)) {
return $item_output . '<span class="ct-toggle-dropdown-desktop">' . $svg . '</span>';
}
}
}
return $item_output;
}
}
if (! function_exists('blocksy_handle_nav_menu_start_el')) {
function blocksy_handle_nav_menu_start_el($item_output, $item, $depth, $args) {
$classes = empty($item->classes) ? [] : (array) $item->classes;
$classes[] = 'menu-item-' . $item->ID;
$class_names = join(' ', array_filter($classes));
if (
isset($args->uber_instance)
&&
$args->uber_instance
) {
return $item_output;
}
$child_indicator_type = 'default';
if (isset($args->child_indicator_type)) {
$child_indicator_type = $args->child_indicator_type;
}
if (
$child_indicator_type !== 'skip'
&&
(
strpos($class_names, 'has-children') !== false
||
strpos($class_names, 'has_children') !== false
)
) {
$toggle_ghost_content = '';
$toggle_ghost_class = 'ct-toggle-dropdown-desktop-ghost';
if (
isset($args->child_indicator_wrapper)
&&
$args->child_indicator_wrapper
) {
$svg = blocksy_menu_get_child_svgs()['mobile-toggle-' . $child_indicator_type];
$toggle_ghost_content = $svg;
$toggle_ghost_class = 'ct-toggle-dropdown-mobile';
}
$toggle_ghost = '';
if (! isset($args->skip_ghost)) {
$toggle_ghost = blocksy_html_tag(
'button',
[
'class' => $toggle_ghost_class,
'aria-label' => __('Expand dropdown menu', 'blocksy'),
'aria-haspopup' => 'true',
'aria-expanded' => 'false',
'role' => 'menuitem'
],
$toggle_ghost_content
);
}
if (
isset($args->child_indicator_wrapper)
&&
$args->child_indicator_wrapper
) {
return '<span class="ct-sub-menu-parent">' . $item_output . $toggle_ghost . '</span>';
}
return $item_output . $toggle_ghost;
}
return $item_output;
}
}
add_filter(
'page_css_class',
function ($css_class, $page, $depth, $args, $current_page) {
if (isset($args['pages_with_children'][$page->ID])) {
$css_class[] = 'menu-item-has-children';
}
if (! empty($current_page)) {
$_current_page = get_post($current_page);
if (
$_current_page
&&
in_array($page->ID, $_current_page->ancestors)
) {
$css_class[] = 'current-menu-ancestor';
}
if ($page->ID === $current_page) {
$css_class[] = 'current-menu-item';
} elseif (
$_current_page
&&
$page->ID === $_current_page->post_parent
) {
$css_class[] = 'current-menu-parent';
}
} elseif (get_option('page_for_posts') === $page->ID) {
$css_class[] = 'current-menu-parent';
}
if (
! isset($args['blocksy_mega_menu'])
||
! $args['blocksy_mega_menu']
) {
return $css_class;
}
$classes_str = implode(' ', $css_class);
if (
strpos($classes_str, 'has-children') === false
&&
strpos($classes_str, 'has_children') === false
) {
return $css_class;
}
if (
isset($args['blocksy_always_inline'])
&&
$args['blocksy_always_inline']
) {
$classes[] = 'animated-submenu-inline';
} else {
if ($depth === 0) {
$classes[] = 'animated-submenu-block';
}
if ($depth > 0) {
$classes[] = 'animated-submenu-inline';
}
}
return $css_class;
},
10, 5
);
add_filter('wp_nav_menu_items', function ($item_output, $args) {
if (
! isset($args->blocksy_advanced_item)
||
! $args->blocksy_advanced_item
) {
return $item_output;
}
return preg_replace(
'/(<li\b[^><]*)>/i',
'$1 role="none">',
$item_output
);
}, 10, 2);
add_filter(
'nav_menu_css_class',
function ($classes, $item, $args, $depth) {
if (
! isset($args->blocksy_mega_menu)
||
! $args->blocksy_mega_menu
) {
return $classes;
}
$classes_str = implode(' ', $classes);
if (
strpos($classes_str, 'has-children') === false
&&
strpos($classes_str, 'has_children') === false
) {
return $classes;
}
if (
(
apply_filters('blocksy:menu:has_animated_submenu', true, $item, $args)
||
$depth === 0
)
&&
(
! isset($args->blocksy_ajax_submenu)
||
! $args->blocksy_ajax_submenu
)
) {
if (
isset($args->blocksy_always_inline)
&&
$args->blocksy_always_inline
) {
$classes[] = 'animated-submenu-inline';
} else {
if ($depth === 0) {
$classes[] = 'animated-submenu-block';
}
if ($depth > 0) {
$classes[] = 'animated-submenu-inline';
}
}
}
return $classes;
},
50, 4
);
add_filter('wp_nav_menu', function ($nav_menu, $args) {
if (
! isset($args->blocksy_advanced_item)
||
! $args->blocksy_advanced_item
) {
return $nav_menu;
}
$nav_menu = preg_replace(
'/class="sub-menu(.*)"/',
'class="sub-menu$1" role="menu"',
$nav_menu
);
$nav_menu = str_replace(
'class="menu"',
'class="menu" role="menubar"',
$nav_menu
);
$nav_menu = preg_replace(
'/(<ul\b[^><]*) class="">/i',
'$1 role="menubar">',
$nav_menu
);
return $nav_menu;
}, 10, 2);
add_filter(
'nav_menu_link_attributes',
function ($attr, $item, $args, $depth) {
if (
! isset($args->blocksy_advanced_item)
||
! $args->blocksy_advanced_item
) {
return $attr;
}
if (
isset($args->uber_instance)
&&
$args->uber_instance
) {
return $attr;
}
$class = 'ct-menu-link';
if (! isset($attr['class'])) {
$attr['class'] = '';
}
$attr['class'] .= ' ' . $class;
$attr['class'] = trim($attr['class']);
$attr['role'] = 'menuitem';
if (isset($args->skip_ghost)) {
$item_classes = '';
if ($item && isset($item->classes) && is_array($item->classes)) {
$item_classes = implode(' ', $item->classes);
}
if (
strpos($item_classes, 'has-children') !== false
||
strpos($item_classes, 'has_children') !== false
) {
$attr['aria-haspopup'] = 'true';
$attr['aria-expanded'] = 'false';
}
}
return $attr;
},
5, 4
);
add_filter(
'page_menu_link_attributes',
function ($attr, $item, $depth, $args) {
if (
! isset($args['blocksy_advanced_item'])
||
! $args['blocksy_advanced_item']
) {
return $attr;
}
$class = 'ct-menu-link';
if (! isset($attr['class'])) {
$attr['class'] = '';
}
$attr['class'] .= ' ' . $class;
$attr['class'] = trim($attr['class']);
if (isset($args['skip_ghost'])) {
$attr['aria-haspopup'] = 'true';
$attr['aria-expanded'] = 'false';
}
return $attr;
},
5, 4
);
if (! function_exists('blocksy_get_menus_items')) {
function blocksy_get_menus_items($location = '') {
$menus = [
// 'blocksy_location' => $location
'blocksy_location' => __('Default', 'blocksy')
];
$all_menus = get_terms('nav_menu', ['hide_empty' => true]);
if (is_array($all_menus) && count($all_menus)) {
foreach($all_menus as $row) {
$menus[$row->term_id] = $row->name;
}
}
$result = [];
foreach ($menus as $id => $menu){
$result[$id] = $menu;
}
return $result;
}
}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists