Новости Joomla

Как тестировать Joomla PHP-разработчику? Компонент Patch tester.

👩‍💻 Как тестировать Joomla PHP-разработчику? Компонент Patch tester.Joomla - open source PHP-фреймворк с готовой админкой. Его основная разработка ведётся на GitHub. Для того, чтобы международному сообществу разработчиков было удобнее тестировать Pull Requests был создан компонент Patch Tester, который позволяет "накатить" на текущую установку Joomla именно те изменения, которые необходимо протестировать. На стороне инфраструктуры Joomla для каждого PR собираются готовые пакеты, в которых находится ядро + предложенные изменения. В каждом PR обычно находятся инструкции по тестированию: куда зайти, что нажать, ожидаемый результат. Тестировщики могут предположить дополнительные сценарии, исходя из своего опыта и найти баги, о которых сообщить разработчику. Или не найти, и тогда улучшение или исправление ошибки быстрее войдёт в ядро Joomla. Напомню, что для того, чтобы PR вошёл в ядро Joomla нужны минимум 2 положительных теста от 2 участников сообщества, кроме автора. Видео на YouTubeВидео на VK ВидеоВидео на RuTubeКомпонент на GitHub https://github.com/joomla-extensions/patchtester@joomlafeed#joomla #php #webdev #community

Вышел релиз Revo PageBuilder Toolkit for YOOtheme Pro 1.6

Вышел релиз Revo PageBuilder Toolkit for YOOtheme Pro 1.6.2PageBuilder Toolkit - это специализированный плагин для конструктора страниц Yootheme Pro, содержит набор различных утилит для ускорения процесса работы и отладки макета, множественные улучшения в интерфейсе, включая поддержку dark mode, подсказки, быстрая смена разрешения в окне просмотра и много чего еще.v.1.6.2 Что нового?- Индикатор статусов: теперь не просто показывает состояние запросов, но и делает автоматические попытки их отправки при кратковременных сбоях в сети, а если это не помогло, то переводит конструктор в ручной режим, что позволяет сохранит макет и настройки темы прежде чем вы потеряете все, что было сделано с момента последнего сохранения- Подсветка ошибок в макете: плагин анализирует код страницы и может автоматически подсвечивать data атрибуты с кучей мусора, которые попадают в код страницы при копипасте из Figma в TinyMCE (пригодится для старых макетов, в текущей работе плагин сам очищает код мусора). Также есть подсветка семантических ошибок сборки - дубли h1 тега на странице и вложенных друг в друга заголовков.- Улучшена поддержка будущего релиза Yootheme Pro 5 и редактора CodeMirror 6Плагин для русскоязычных пользователей доступен в каталоге расширений SovMart и распространяется за символическую плату (100р). Разработчики Joomla расширений и партнеры автора могут получить плагин бесплатно.Для работы плагина необходим конструктор страниц Yootheme Pro.Разработчик плагина - участник нашего сообщества Александр Судьбинов (@alexrevo), член официальной группы поддержки Yootheme Pro. Страница расширенияОписание на сайте автора@joomlafeed#joomla #yootheme

0 Пользователей и 1 Гость просматривают эту тему.
  • 105 Ответов
  • 17113 Просмотров
*

refrizherator

  • Захожу иногда
  • 60
  • 1 / 0
версия 2.1.3.680, все ссылки работают отлично. Странное ограничение выходит как для платной версии! Жду ещё ответов.
*

root-master

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
В настройках компонента параметр "Использование Элементов на постраничном ниспадающем списке" должен быть установлен в YES.
Проверьте этот момент.

Это находится здесь:

1. В административной панели сайта перейдите в компонент sh404SEF.
2. Откройте вкладку Configuration в sh404SEF.
3. На вкладке Configuration клик на Extensions configuration (или Plugins).
4. В открытом окне перейдите на вкладку VirtueMart.
5. В самом низу должна быть опция "Использование Элементов на постраничном ниспадающем списке" (“Using Items per page drop-down list”).
Флаг должен быть установлен в YES!
*

refrizherator

  • Захожу иногда
  • 60
  • 1 / 0
Проверил стоит "Да". Ещё есть варианты, я уже надежду теряю, а странички проиндексировались так как есть сейчас , если снесу sh404 будет очень фигово...    Жду ещё ваших вариантов!
*

refrizherator

  • Захожу иногда
  • 60
  • 1 / 0
Повторюсь, так как новая страничка:

СУТЬ:  Установил sh404SEF на сайт парфюмерии и косметики в Днепропетровске http://edp.dp.ua    Можете зайти и увидеть на странице с товарами http://edp.dp.ua/dolce-gabbana/view-all-products.html если клацнуть показать 10 или 20 и т.д.  будет ошибка на белом экране
Not Found

The requested URL /dolce-gabbana/view-all-products.html&limitstart=0&limit=25 was not found on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Apache/2 Server at edp.dp.ua Port 80

А также при переключении страниц 1 2... или нажав кнопку слудующая...
Кроме плюсика предложить ничо не могу, если знаете, подскажите.
*

refrizherator

  • Захожу иногда
  • 60
  • 1 / 0
Я не понимаю, почему никто не отвечает, получается, что ни один тут не знает как это исправить, ведь вопрос уже задавался на форуме и там так же никто не ответил...! ?
*

root-master

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Данил, вопрос такой.

На странице два модуля, один - аккордион производителей, а другой стандартный модуль. Можно ли как-то сделать так, чтобы при клике на пункт меню в стандартном модуле, разворачивался определенный пункт меню в модуле аккордиона?

Пробовал твой вариант, не выходит.

Код
					$('.default').each(function(element, index){
element.parentNode.Accordion.display(element.index);
});

Или даже если установить несколько модулей аккордионов, как развернуть соответствующий пункт определенного модуля по клику пункта меню из другого модуля?
« Последнее редактирование: 24.10.2010, 22:41:20 от root-master »
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Ну ты и задачки ставишь экзотические ))
Думаю нужно чтобы у всех пунктов был уникальный Id или класс, тоесть надо подправить функцию - декоратор в файле accordion.manufactorers.php(или как он там называется), скажем формировать по $node->attributes('id'). Так мы "проименуем" пункты, и сможем к ним обращаться чтоб раскрыть нужный.
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

root-master

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Ну вот смотри... Я добавил тем пунктам (в модуле аккордиона, файл manufacturers.accordion.php), которые нужно развернуть имя класса .default.

Код
					default:

// set parent class - check : has children
if (isset($node->ul) && $node->ul) {
$node->addAttribute('class', 'parent');
// set default menu item (мото на земле (id=1) / скутеры (id=4))
if ($node->attributes('id') == 1 or $node->attributes('id') == 4) {
$node->addAttribute('class', $node->attributes('class').' default');
}
}

Теперь надо как-то обратится к этим пунктам из другого модуля аккордиона по клику любого из пунктов его меню.
Пробовал сначала просто развернуть пункты меню, находясь в другом модуле:

Код
var menuMotoCatalog = $$('#accordion');
menuMotoCatalog.each(function(el){
alert(1);
if (menuMotoCatalog[index].hasClass('default')) {
element.parentNode.Accordion.display(element.index);
}
}

Но сюда почему-то не заходит даже :(

И так тоже не работает:

Код
var menuMotoCatalog = $$('#accordion');
//alert(menuMotoCatalog);
menuMotoCatalog.getElements('ul').each(function(el){
alert(1);
if (menuMotoCatalog[index].hasClass('default')) {
element.parentNode.Accordion.display(element.index);
}
}

В mootools я не силен, поэтому блуждаю в 3-х соснах. Может есть другие, простые подходы, чтобы раскрыть определенные пункты меню, находясь в другом модуле? Еще нужно как-то прикрутить событие клика, тоже головоломка.
« Последнее редактирование: 24.10.2010, 23:29:43 от root-master »
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Так тебе какие именно пункты меню надо раскрывать? Те что имеют класс .default, или какието по индексу/идентификатору_категории?
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

root-master

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Цитировать
Те что имеют класс .default, или какието по индексу/идентификатору_категории?
На самом деле не принципиально. Я добавил класс .default самостоятельно, чтобы обеспечить доступ именно к данным пунктам меню для удобства.

Определенный id категории, который необходимо раскрывать, уже стоит в условии:

Код
							if ($node->attributes('id') == 1 or $node->attributes('id') == 4) {
$node->addAttribute('class', $node->attributes('class').' default');
}
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
По идее так должно работать(два бакса впереди а не один)
Код: javascript
					$$('.default').each(function(element, index){
element.parentNode.Accordion.display(element.index);
});
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

root-master

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Пробовал так. Обновляю страницу и все пункты раскрыты получаются. Будто либо ошибка какая-то, либо...
Твой вариант работает, если вставить его в модуль аккордиона производителей.
А если вставить его в модуль mod_mainmenu (там тоже подключен аккордион по твоей схеме), то уже не работает.

Т.е на странице у нас два события добавлены.
Первый - это обычное меню ( из которого по клику нужно раскрыть определенные пункты в модуле меню производителей ) :
html\mod_mainmenu\default.php

Код
window.addEvent('domready', function(){
 
$$($('menu_moto_site'), $('menu_moto_site').getElements('ul')).each(function(el){
accParentItems = el.getChildren().filterByClass('parent');
accTogglers = [];
accElements = [];
accParentItems.each(function(element, index){
accTogglers.push(new Element('span').injectTop(element));
accElements.push(element.getElementsByTagName('ul')[0]);
element.index = index;
alert(1);
element.addEvent('click', function(e){
alert(1);
$$('accordion .default').each(function(element, index){
element.parentNode.Accordion.display(element.index);
});
});
element.addEvent('mouseover', function(){
if (this.getChildren().filterByTag('ul')[0].offsetHeight == 0) {
accTimer = this.parentNode.Accordion.display.delay(200, this.parentNode.Accordion, $(this).index);
}
});
element.addEvent('mouseout', function(){
if((accTimer != undefined)){clearTimeout(accTimer)};
});
 
});
if ( accParentItems.length > 0 ){
el.Accordion = new Accordion(accTogglers, accElements, {
opacity: false,
alwaysHide: true,
show: $$(accParentItems).indexOf($$(accParentItems).filterByClass('active')[0]),
duration: 200,
transition: Fx.Transitions.Quart.easeOut,
onActive: function(toggler, element){
element.parentNode.parentNode.setStyle('height', 'auto');
},
onBackground: function(toggler, element){
element.parentNode.parentNode.setStyle('height', 'auto');
element.setStyle('height', element.offsetHeight+'px');
}
}
);
}
});
$$('.default').each(function(element, index){
element.parentNode.Accordion.display(element.index);
});
});

То есть добавляя сюда - пункты получается - в развернутом виде все.

И вот второй модуль меню, аккордион производителей (в котором, собственно, содеражатся те пункты, которые необходимо раскрыть):
html\mod_virtuemart_categories\accordion_assets.php

Код
window.addEvent('domready', function(){

$$($('accordion'), $('accordion').getElements('ul')).each(function(el){
accParentItems = el.getChildren().filterByClass('parent');
accTogglers = [];
accElements = [];

accParentItems.each(function(element, index){

accTogglers.push(new Element('span').injectTop(element));
accElements.push(element.getElementsByTagName('ul')[0]);
element.index = index;
element.addEvent('mouseover', function(){
if (this.getChildren().filterByTag('ul')[0].offsetHeight == 0) {
accTimer = this.parentNode.Accordion.display.delay(250, this.parentNode.Accordion, $(this).index);
}
});
element.addEvent('mouseout', function(){
if (window.accTimer) { clearTimeout(window.accTimer) };
});

});
if ( accParentItems.length > 0 ){
el.Accordion = new Accordion(accTogglers, accElements, {
opacity: false,
alwaysHide: true,
show: $$(accParentItems).indexOf($$(accParentItems).filterByClass('active')[0]),
duration: 250,
transition: Fx.Transitions.Quart.easeOut,
onActive: function(toggler, element){
element.parentNode.parentNode.setStyle('height', 'auto');
element.parentNode.addClass('expanded');
},
onBackground: function(toggler, element){
element.parentNode.parentNode.setStyle('height', 'auto');
element.setStyle('height', element.offsetHeight+'px');
element.parentNode.removeClass('expanded');
}
}
);
}
});
});

То есть если сюда добавлять твой код, то работает нормально.
« Последнее редактирование: 25.10.2010, 00:15:32 от root-master »
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
$$('accordion .default') заменить на $$('#accordion .default')
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

root-master

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Не в этом проблема. Можно даже это событие клика исключить из кода (потому что он туда даже не заходит).
Проблема в том, что объект accordion не существует, когда мы перебираем элементы меню.
Ну вот например твой вариант:

Код: php
				$$('.default').each(function(element, index){
element.parentNode.Accordion.display(element.index);
});

Если вывести alert(element.parentNode.Accordion), то покажет none.
А если пробовать в этом файле (html\mod_virtuemart_categories\accordion_assets.php) пробегаться по элементам , то объект существует.

Данил, понятно показал проблему?
В чем может быть причина?
« Последнее редактирование: 25.10.2010, 01:02:40 от root-master »
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
да чет не пойму. Поставь FireBug если до сих пор еще не поставил. И вместо alert'ов юзай console.log(). Выполняй скрипт пошагово ну и все такое. Может щас дам тупой совет, но лучше переименуй element в ченить другое, хотя это получается как локальная переменная, она перекрывает ту что снаружи...
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

root-master

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Я думаю, что причина в том, что объект существует в рамках window.addEvent('domready', function(){});

Если решений в этом случае нету, то может быть какие-то есть другие альтернативы.
Я вот сейчас попробовал вариант:
JRequest::setVar('category_id', 4);

На момент, когда идет выбор какого-л из пунктов обычного меню (mod_mainmenu).

В этом случае работает как надо, но(!), учитывая, что я исключил возможность кольцевых ссылок на сайте, то получается, что на странице два активных пункта меню (тот, что выбран в mod_mainmenu и тот, что я установил для пункта меню с каталогом) и это не совсем правильно.
*

root-master

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Цитировать
Поставь FireBug
стоит и отлаживаю уже не один час..

Цитировать
но лучше переименуй element
ща попробую...
*

root-master

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Не, так тоже не пашет:

Код: php
$$('.default').each(function(mrElement, index){
mrElement.parentNode.Accordion.display(mrElement.index);
});
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
При всем при этом  не возникает ошибок? $$('.default') возвращает нужный нам массив, или пустой? Посмотри на mrElement.parentNode в DOM'е - у него обязано быть свойство Accordion.
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

root-master

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Ща сек

Анализировал во вкладке DOM, вроде бы в аттрибутах существует accordion. Но тот ли это аккордион...

this.attributes
  id = "accordion"

Вот скрины:




Т.е ошибка все равно та же..
« Последнее редактирование: 25.10.2010, 01:44:27 от root-master »
*

root-master

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Вот собственно само свойство, которое и должно быть:



Но оно появляется, если этот код:
Код: php
$$('.default').each(function(mrElement, index){
mrElement.parentNode.Accordion.display(mrElement.index);
});
прописывать непосредственно в том window.addevent(), где и происходит создание объекта Accordion
(html\mod_virtuemart_categories\accordion_assets.php).
*

root-master

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Данил, вот посмотри пример, может я чего-то не допонимаю, оставил только самое необходимое на странице:

Код: php
<!DOCTYPE HTML 	PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru-ru" lang="ru-ru">

<head>
  
  <title>Site</title>

  <script type="text/javascript" src="js/mootools.js"></script>

  <script type="text/javascript">

window.addEvent('domready', function(){

$$($('menu1'), $('menu1').getElements('ul')).each(function(el){
accParentItems = el.getChildren().filterByClass('parent');
accTogglers = [];
accElements = [];
accParentItems.each(function(element, index){
accTogglers.push(new Element('span').injectTop(element));
accElements.push(element.getElementsByTagName('ul')[0]);
element.index = index;
element.addEvent('mouseover', function(){
if (this.getChildren().filterByTag('ul')[0].offsetHeight == 0) {
accTimer = this.parentNode.Accordion.display.delay(200, this.parentNode.Accordion, $(this).index);
}
});
element.addEvent('mouseout', function(){
if((accTimer != undefined)){clearTimeout(accTimer)};
});
 
});
if ( accParentItems.length > 0 ){
el.Accordion = new Accordion(accTogglers, accElements, {
opacity: false,
alwaysHide: true,
show: $$(accParentItems).indexOf($$(accParentItems).filterByClass('active')[0]),
duration: 200,
transition: Fx.Transitions.Quart.easeOut,
onActive: function(toggler, element){
element.parentNode.parentNode.setStyle('height', 'auto');
},
onBackground: function(toggler, element){
element.parentNode.parentNode.setStyle('height', 'auto');
element.setStyle('height', element.offsetHeight+'px');
}
}
);
}
});

if($('menu2')) {
         $$('.default').each(function(mrElement, index){
mrElement.parentNode.Accordion.display(mrElement.index);
});
    }


});


window.addEvent('domready', function(){

$$($('menu2'), $('menu2').getElements('ul')).each(function(el){
accParentItems = el.getChildren().filterByClass('parent');
accTogglers = [];
accElements = [];

accParentItems.each(function(element, index){

accTogglers.push(new Element('span').injectTop(element));
accElements.push(element.getElementsByTagName('ul')[0]);
element.index = index;
element.addEvent('mouseover', function(){
if (this.getChildren().filterByTag('ul')[0].offsetHeight == 0) {
accTimer = this.parentNode.Accordion.display.delay(250, this.parentNode.Accordion, $(this).index);
}
});
element.addEvent('mouseout', function(){
if (window.accTimer) { clearTimeout(window.accTimer) };
});

});
if ( accParentItems.length > 0 ){
el.Accordion = new Accordion(accTogglers, accElements, {
opacity: false,
alwaysHide: true,
show: $$(accParentItems).indexOf($$(accParentItems).filterByClass('active')[0]),
duration: 250,
transition: Fx.Transitions.Quart.easeOut,
onActive: function(toggler, element){
element.parentNode.parentNode.setStyle('height', 'auto');
element.parentNode.addClass('expanded');
},
onBackground: function(toggler, element){
element.parentNode.parentNode.setStyle('height', 'auto');
element.setStyle('height', element.offsetHeight+'px');
element.parentNode.removeClass('expanded');
}
}
);
}
});

});

  </script>

</head>

<body>
<div class="navigation">
<!--MENU1-->
<ul class="menu" id="menu1"><li id="current" class="item1"><span class="active">Main</span></li></ul>
<!--MENU2-->
<ul class="menu" id="menu2">
<li class="parent default">
<a href="/bikes-on-earth">Bykes on earth</a>

<ul>
<li class="parent default">
<a href="/bykes-on-earth/scooter">Scooter</a>
<ul>
<li class=" item6">
<a href="/bikes-on-earth/scooter/honda">Honda</a>
</li>
<li class=" item5">

<a href="/мото-на-земле/скутеры/orion">Orion</a>
</li>
<li class=" item2">
<a href="/мото-на-земле/скутеры/stels">Stels</a>
</li>
</ul>
</li>
<li class="parent">

<a href="/мото-на-земле/мотоциклы">Motobyke</a>
<ul>
<li class=" item7">
<a href="/мото-на-земле/мотоциклы/kawasaki">Kawasaki</a>
</li>
</ul>
</li>
<li>

<a href="/мото-на-земле/квадроциклы">ATVs</a>
</li>
<li>
<a href="/мото-на-земле/мотовездеходы">ATV</a>
</li>
<li>
<a href="/мото-на-земле/багги">Buggy</a>

</li>
<li>
<a href="/мото-на-земле/снегоходы">Snowmobiling</a>
</li>
</ul>
</li>
<li class="parent">
<a href="/мото-на-воде">Beauty on the water</a>

<ul>
<li>
<a href="/мото-на-воде/гидроциклы">Watercraft</a>
</li>
<li>
<a href="/мото-на-воде/катера">Boats1</a>
</li>
<li>

<a href="/мото-на-воде/лодки">Boats2</a>
</li>
<li>
<a href="/мото-на-воде/моторы">Motors</a>
</li>
</ul>
</li>
<li class="parent">

<a href="/дополнительно-к-мото">In addition to motor</a>
<ul>
<li>
<a href="/дополнительно-к-мото/экипировка">Equipment</a>
</li>
<li>
<a href="/дополнительно-к-мото/аксессуары">Accessories</a>

</li>
<li>
<a href="/дополнительно-к-мото/запчасти">Repair parts</a>
</li>
</ul>
</li>
</ul>
</div>

</body>

</html>

Версия mootools 1.12.

Опишу еще раз вкратце проблему.
На сайте есть несколько window.addEvent('domready'), т.е два меню с типом Accordion. Назовем их условно (menu1 и menu2). Задача состоит в том, чтобы по клику одного из пунктов menu1 разворачивались определенные пункты в menu2.

Конкретные пункты, которые мне необходимо раскрыть в menu2, имеют класс .default. Для разворачивания меню пробую использовать метод display у аккордиона.

Проблема заключается в том, что я не могу получить объект Accordion у пунктов (с классом default, menu2), которые необходимо раскрыть. FireBug в консоле пишет: "mrElement.parentNode.Accordion is undefined". Возможно получается так, что объекты типа Accordion в menu2 не успевают создаться.

Какие попытки я принимал:

$$('.default').each(function(mrElement, index){
    mrElement.parentNode.Accordion.display(mrElement.index);
});

mrElement.parentNode.Accordion - т.е свойства аккордион не существует.
пробовал ставить условие:

if($('menu2')) {
   mrElement.parentNode.Accordion.display(mrElement.index);
}

Тоже не выходит.
« Последнее редактирование: 25.10.2010, 17:46:00 от root-master »
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Ну тут конечно, беглым взглядом видно что ты обращаешся к Accordion, который еще не создан. Если тебе надо по клику раскрывать - так и пиши:
Код: javascript
if($('menu2')) {
$$('#menu1 span').addEvent('click', function() {
$$('.default').each(function(element, index){
element.parentNode.Accordion.display(element.index);
});
});
}
Тогда к моменту клика Accordion уже будет создан.
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

root-master

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Блин, зашибись!)
Дак, а как сделать это раскрытие в момент, когда страница загружена?
Мы произвели клик, он раскрыл нужный пункт, страница пошла грузиться по ссылке, загрузилась и по умолчанию все пункты опять свернулись.
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
оформи функцию раскрытия default пунктов как отдельная именованая функция. И вызывай ее как при кликах так и при domready(только вызов должен идти ниже кода, который зааккордионивает #menu2, что вобщемто понятно)
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

root-master

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Вообще, даже не знаю, как правильно сделать. Суть в том, что надо держать раскрытым определенные пункты меню (я их пометил классом default в стилях), когда у нас активен какой-л из пунктов не меню каталогов, а меню обычного (контакты, FAQ и прочие).
*

danik.html

  • Живу я здесь
  • 2650
  • 353 / 4
Ну так надо эту логику(зависимость от текущего актвного пункта) перенести в php, и метить нужные пункты каталога если не .active , то .default, но тогда в параметр show: надо писать чета типа:
Код: javascript
$$(accParentItems).indexOf($$(accParentItems).filterByClass('active')[0]) || $$(accParentItems).indexOf($$(accParentItems).filterByClass('default')[0])
【Мегапак Virtuemart:
 • метатеги (description,keywords)
 • заголовки (title)
 • красивые алиасы (чпу) без тормозов и дублей!
*

root-master

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Код
$$(accParentItems).indexOf($$(accParentItems).filterByClass('active')[0]) || $$(accParentItems).indexOf($$(accParentItems).filterByClass('default')[0])

не работает оператор || в параметре show.

В общем, оставлю пока так:

Код
					if ($$(accParentItems).indexOf($$(accParentItems).filterByClass('active')[0])!= -1) 
var paramShow = $$(accParentItems).indexOf($$(accParentItems).filterByClass('active')[0]);
else
var paramShow = $$(accParentItems).indexOf($$(accParentItems).filterByClass('default')[0]);
« Последнее редактирование: 25.10.2010, 20:01:50 от root-master »
*

root-master

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Остался еще один неразрешенный вопрос...

Сейчас аккордион работает при наведении курсором на тег UL, я так понимаю..? Можно ли как-то подправить, чтобы эффект наведения работал не на тег Ul, а тег A (ccылки)?

« Последнее редактирование: 25.10.2010, 20:37:37 от root-master »
*

Impulsee

  • Осваиваюсь на форуме
  • 22
  • 2 / 0
поставил Ваш модуль... залил товары...
Положил сервер хостера...
Сайт - 3olushka.com.ua
При включенном модуле нагрузка: 775 запросов к БД
при отключенном 55...
как побороть?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

IceVmCart - новый бесплатный модуль корзины для VirtueMart

Автор Grig2009

Ответов: 105
Просмотров: 54535
Последний ответ 05.02.2017, 11:44:02
от Super_Panda
Модуль недавно просмотренные товары для VirtueMart 1.1.X

Автор aleks_yug

Ответов: 97
Просмотров: 28690
Последний ответ 25.10.2016, 15:03:07
от Igoritaly
Модуль Cherry Picker for VirtueMart

Автор flintstone

Ответов: 42
Просмотров: 26838
Последний ответ 04.01.2016, 21:25:50
от gleb22
Добавить модуль в товар

Автор Tokyo

Ответов: 2
Просмотров: 3013
Последний ответ 11.05.2015, 20:43:32
от tierex
Усовершенствованный модуль категорий [Аккордион и прочее - the best ;) ]

Автор danik.html

Ответов: 749
Просмотров: 198349
Последний ответ 24.11.2014, 18:37:11
от slavakh