class mainMenuWalker extends Walker_Nav_Menu {
//для начала зададим класс для вложенного пункта меню тегу ul
//функция start_lvl формирует превую строчку в шаблоне вывода списка, это нам и нужно.
function start_lvl( & $output, $depth = 0, $args = array()) {
$indent = str_repeat("\t", $depth);
$output. = "\n$indent<ul class=\"menu__sub\">\n"; // указываем нужный нам класс, теперь все вложенные теги ul будут иметь указанный класс.
}
// если необходимо обозначить тег li, что он является родительским элементом вложенного списка модифицируем немного функцию display_element.
function display_element($element, & $children_elements, $max_depth, $depth = 0, $args, & $output) {
//получим id элемента пункта меню
$parent_elem = $this - > db_fields['id'];
// проверим есть ли в нем вложенный список
if (!empty($children_elements[$element - > $parent_elem])) {
// запишем в массив classes необходимый нам класс и присвоим элементу списка
}
Walker_Nav_Menu::display_element($element, $children_elements, $max_depth, $depth, $args, $output);
}
//Ну а здесь уже приведем в нужный нам вид классы li элемента
function start_el( & $output, $item, $depth, $args) {
// назначаем классы li-элементу и выводим его
//для этого добавим наш класс в массив classes
$item - > classes['li_class'] = 'menu__item main-text';
// и напрямую укажем какие классы из массива мы хотим использовать.
$class_names = ' class="menu__item main-text"';
$output. = '<li '.$class_names.
'>';
// назначаем атрибуты a-элементу
$attributes. = !empty($item - > url) ? ' href="'.esc_attr($item - > url).
'" class="hover__link" ': '';
$item_output = $args - > before;
// проверяем, на какой странице мы находимся
$current_url = (is_ssl() ? 'https://' : 'http://').$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$item_url = esc_attr($item - > url);
$item_output. = '<a'.$attributes.
'>'.$item - > title.
'</a>';
// заканчиваем вывод элемента
$item_output. = $args - > after;
$output. = apply_filters('walker_nav_menu_start_el', $item_output, $item, $depth, $args);
}
}
Мне нужно вложенное меню. Я переписал Walker_Nav_Menu. Проблема вот в чем. Когда я нахожусь в <ul class=\"menu__sub\">\n"
мне нужно подставлять в методе start_el
совершенно другие классы. Как мне сделать проверку нахожусь ли я в блоке menu__sub
(это блок вложенного меню, появляется при наведении на родителя и использует совершенно другие классы) или нет?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть html форма вутри нее находится datatable c tr и td-вкоторых хранятся значения полученный из БдКак обновлять таблицу допустим через каждые 5 секунд...
Всё работало нормальноНи с того ни с сего VisualStudio начал выдавать ошибку: A namespace cannot directly contain members such as fields or methods
Есть переменная, которая получает значение вычисляемое методом при поступлении новых данных с потокаКак сделать программное изменение...
Это приводит к странному результату: #FF-80-80-0080-80-0080-0000