Добрый день!
Решил поставить DHTML Menu 7.x-1.0-beta1 на drupal 7 и столкнулся с тем, что некоторые функции модуля не работают. К примеру в Static navigation при выборе Expand on Bullet (разворачивать при нажатии на якорь #) перестают работать некоторые скрипты на сайте и CKeditor, в Other effects не выбирается пункт Remember which items were expanded on the last page (Помнить какие пункты были расширены на последней странице), а при выбранном Expand only the currently active path (Развернуть только активный путь) этот самый активный путь не разворачивается.
И всё это происходит на чистом друпале, в который ещё не вносились изменения, т.е. дело исключительно в самом модуле.
Я так понимаю он просто несовместим с последней версией drupal, можно ли что-нибудь с этим сделать и есть ли достойные альтернативы? Подскажите пожалуйста.
Комментарии
Там просто жесть. Один из вариантов меню включал - все филдсеты переставали открываться на сайте.
все пашет!!!
Как вы этого добились? Какая у вас версия drupal и модуля? Какая версия jquery? В БД таблица называется block или blocks?
Написал в bug reports на странице модуля, надеюсь пофиксят когда-нибудь. И судя по всему подобные проблемы далеко ни у меня одного и vitg, значит действительно модуль ещё сыроват.
все скачано с орга последнее.
Вам что слово beta ничего не говорит
Бета вам не альфа, должно более менее стабильно работать, а тут пользоваться совсем невозможно, жаль. Ещё раз повторюсь: есть ли альтернативы для друпал 7? JQuery Menu и YUI Menu совсем затухли, проекты забросили, а DHTML Menu пофиксят нескоро, если вообще пофиксят.
Всем привет. Скачал последнюю стабильную (а заодно и последнюю вообще) версию DHTML, все равно режим "Expand on Bullet" затирает все ссылки филдсетов. Кто-нибудь смог решить эту проблему?
Добавлено:
Вот отличный пример меню: content-management-systems.info, и вроде бы в коде есть ссылки на dhtml, но как им это удалось?
да все пашет же.
Как видишь никто внятного ответа так и не дал, потому как у кого-то работает, а у кого-то нет, поэтому в то время когда я с ним ковырялся создал Issue на странице модуля, автор модуля говорит что с Expand on Bullet у него всё путём, а остальные мелочи пофиксил. В итоге я просто поставил superfish, уж слишком много хлопот с dhtml menu натерпелся. Как вариант относительно источника проблемы, если у тебя стоит модуль JQuery Update, то удаляй его, он вызывает ряд проблем на всём сайте, других предположений не имею.
trololoo, спасибо за отклик.
JQuery Update - не стоит. Но вот когда отключил Overlay - все заработало!)
Посмотрел на скриншоты superfish - это только выпадающее меню? Просто хочется именно чтоб с "пульками" было).
Кстати, нашел неплохой скрипт на JQuery (http://jquery.bassistance.de/treeview/demo/), но пока еще попытаю удачу с dhtml, все равно Overlay меня не особо штырил (если, конечно, он ничего кроме серого фона админки не делает)
ЗЫ
2 shamaner@drupal.org: что пашет?
Сам по себе DHTML пашет, это да. Проблема в том, что в режиме с Bullets не пашут филдсеты в админке (т.е. их ссылки становятся неактивными (или вообще в текст превращаются, не знаю) и поэтому нельзя развернуть).
Если установлен модуль CKEditor - пропадает редактор для материала. В WYSIWYG редактор остается, но филдсеты не работают в любом случае
пашет именно так ка ему и положено- разворачивает и сворачивает.
Да, это обычное выпадающее многоуровневое JQuery-меню, пулек в нём нет)
Превосходно что у вас всё работает, вам повезло, но к сожалению многие не такие счастливцы. О глючности модуля можно судить по количеству отчётов об ошибках, а их более двухсот, не малая часть из них — баги связанные с совместимостью модулей, тобишь работает модуль только в особых условиях, коие у вас видимо и созданы.
Удивительного тут ничего нет, название 7.x-1.0-beta1 говорит само за себя, не предполагая стабильной работы.
Нарвался на такую проблему:
Если dhtml в режиме с пульками ("Expand on Bullet") то перестает работать IMCE (по крайней мере из CKEditor-a). При этом ничего кроме CKEditor, IMCE, DHTML к стандартной сборке 7.4 не устанавливал.
Под словами "перестает работать" скрывается такой баг: после выбора иконки "изображения" и нажатия на кнопку "Посмотреть на сервере" - появляется окно для выбора изображений, но сами изображения неактивны, а верхнее меню с кнопками для загрузки и т.п. - вообще не загружается.
Вот тут было предложено решение: http://drupal.org/node/1093772
$(".menu li").css("margin-left")
на
($('.menu li').css('margin-left') || '0')
но при этом перестает работать и режим "Expand on Bullet"
Штука в том, что срабатывает условие:
if (settings.nav == 'bullet' && !rtl)
но потом выскакивает ошибка на строчке
var shift = '-' + (Math.ceil(($('.menu li').css('margin-left').replace('px', ''))) + 16) + 'px';
потому что нет ($('.menu li').css('margin-left')
Добавив проверку, вроде бы удалось решить проблему. Возможно из-за неё могут возникнуть сбои и в других местах, так что вот, может кому пригодиться. Примерно 174 строка файла \sites\all\modules\dhtml_menu\dhtml_menu.js, заменить:
// Shift overlay to the left by the width of the icon and the distance between icon and text.
var shift = '-' + (Math.ceil(($('.menu li').css('margin-left').replace('px', ''))) + 16) + 'px';
// Shift the overlay using a negative left-hand offset, and the text using a negative right-hand margin.
$('.dhtml-menu-icon').css('left', shift).css('margin-right', shift);
}
на
if($('.menu li').css('margin-left')!=undefined){
// Shift overlay to the left by the width of the icon and the distance between icon and text.
var shift = '-' + (Math.ceil(($('.menu li').css('margin-left').replace('px', ''))) + 16) + 'px';
// Shift the overlay using a negative left-hand offset, and the text using a negative right-hand margin.
$('.dhtml-menu-icon').css('left', shift).css('margin-right', shift);
}
}
Забил бы на "пульки" свои, я тоже с дуру настройки поменял, два дня ломал голову почему не работает, потом решил настройки изменить в самом dhtml menu... и о чудо, все заработало, к черту пульки и все что глючит и все ок
Видимо жил какое-то время на кэше браузера не замечал
После того как установил и понял, что у меня никак работать не хочет, я плагин удалил, но в меню остался дублирующий пункт
Подскажите, как избавиться?
Но кстати, через какое-то время после публикации моего последнего поста практически идентичный патч был занесен в dev версию модуля, которую и рекомендую использовать). Хотя не знаю, dhtml что-то стареет.
Удалил в плане отключил, или зашел после этого во вкладку удаление и от-туда удалил. Если не удалял - удали. Может быть нужна чистка кэша.
Удалил путем деинсталляции через админку Drupal.
Сегодня срочно нужно было реализовать функционал Expand on Bullet DHTML menu и не было времени писать скрипт. Нашел временное решение данной проблемы. В моем случае DHTML меню не было нужно включать в админке. Я просто отключил JS файлы при условии что загружена тема админки(в моем случае Seven). Для этого в файле dhtml_menu.module сделал следующее изменение
строка 26
<?php
function dhtml_menu_init() {
module_load_include('inc', 'dhtml_menu', 'dhtml_menu.theme');
drupal_add_css(drupal_get_path('module', 'dhtml_menu') . '/dhtml_menu.css');
drupal_add_js(drupal_get_path('module', 'dhtml_menu') . '/dhtml_menu.js');
drupal_add_js(array('dhtmlMenu' => variable_get('dhtml_menu_settings')), 'setting');
}
?>
Изменил на
<?php
function dhtml_menu_init() {
module_load_include('inc', 'dhtml_menu', 'dhtml_menu.theme');
drupal_add_css(drupal_get_path('module', 'dhtml_menu') . '/dhtml_menu.css');
global $theme;
if($theme !='seven'){
drupal_add_js(drupal_get_path('module', 'dhtml_menu') . '/dhtml_menu.js');
drupal_add_js(array('dhtmlMenu' => variable_get('dhtml_menu_settings')), 'setting');
}
}
?>
Знаю что решение не из лучших, но теперь работает все норм) а в идеале просто напишите свой скрипт, который будет выполнять нужный функционал.
т.е. описание и решение проблемы в моем посте, связанное с отсутствием проверки никого не устраивает ?) (Никого, кроме автора этого модуля, который в dev версии уже исправил этот глюк, и именно так).
Меня вполне устраивает, но просто времени не было.. пришлось на скорую руку делать) вот и решил выложить...
А так на днях пропатчу модуль. или сам напишу скрипт...