Модуль JoomTABS
http://moduledemo.templateplazza.com/content/view/16/30/ позволяет выводить позиции модулей в одном окне с закладкам.
В целом модуль удобен, но у него есть один существенный минус - нельзя публиковать два джумтабса на одной странице, возникает конфликт.
Единственное решение на мой взгляд - это сделать клон.
Я пошёл лёгким путём и просто заменил все слова в которых встречается "tab" на "bat" и переименовал по такому же принципу файлы модуля.
Получился почти рабочий клон, но осталась одна проблемка:
При загрузке страницы грузятся два модуля- JoomTABS и Joom
BATS.
Первый после загрузки автоматически переключается на вкладку под номером 8 (задано в настройках);
Второй после загрузке не переключается на свою вкладку, а "остаётся в загружаемом состоянии".
-Если отключить первый модуль, то второй работает правильно.
Проблема очевидна - конфликт в javascript !
Выкладываю скрипты:
JoomTABS<script type="text/javascript">
/*
EASY TABS 1.2 Produced and Copyright by Koller Juergen
www.kollermedia.at | www.austria-media.at
*/
var tablink_idname = new Array("<?php echo $nameidlinks; ?>")
var tabcontent_idname = new Array("<?php echo $nameidarea; ?>")
var tabcount = new Array("<?php echo $numbertab; ?>")
var loadtabs = new Array("<?php echo $firsttabopen; ?>")
var autochangemenu = <?php echo $autochange; ?>;
var changespeed = <?php echo $changedelay; ?>;
var stoponhover = <?php echo $changestop; ?>;
function easytabs(menunr, active) {if (menunr == autochangemenu){currenttab=active;}if ((menunr == autochangemenu)&&(stoponhover==1)) {stop_autochange()} else if ((menunr == autochangemenu)&&(stoponhover==0)) {counter=0;}menunr = menunr-1;for (i=1; i <= tabcount[menunr]; i++){document.getElementById(tablink_idname[menunr]+i).className='tab'+i;document.getElementById(tabcontent_idname[menunr]+i).style.display = 'none';}document.getElementById(tablink_idname[menunr]+active).className='tab'+active+' tabactive';document.getElementById(tabcontent_idname[menunr]+active).style.display = 'block';}var timer; counter=0; var totaltabs=tabcount[autochangemenu-1];var currenttab=loadtabs[autochangemenu-1];function start_autochange(){counter=counter+1;timer=setTimeout("start_autochange()",1000);if (counter == changespeed+1) {currenttab++;if (currenttab>totaltabs) {currenttab=1}easytabs(autochangemenu,currenttab);restart_autochange();}}function restart_autochange(){clearTimeout(timer);counter=0;start_autochange();}function stop_autochange(){clearTimeout(timer);counter=0;}
window.onload=function(){
var menucount=loadtabs.length; var a = 0; var b = 1; do {easytabs(b, loadtabs[a]); a++; b++;}while (b<=menucount);
if (autochangemenu!=0){start_autochange();}
}
</script>
JoomBATS -в скрипте некоторым переменным был добавлен префикс "bat"
<script type="text/javascript">
/*
EASY batS 1.2 Produced and Copyright by Koller Juergen
www.kollermedia.at | www.austria-media.at
*/
var batlink_idname = new Array("<?php echo $nameidlinks; ?>")
var batcontent_idname = new Array("<?php echo $nameidarea; ?>")
var batcount = new Array("<?php echo $numberbat; ?>")
var loadbats = new Array("<?php echo $firstbatopen; ?>")
var autochangemenubat = <?php echo $autochangebat; ?>;
var changespeedbat = <?php echo $changedelaybat; ?>;
var stoponhoverbat = <?php echo $changestopbat; ?>;
function easybats(menunr, active) {if (menunr == autochangemenubat){currentbat=active;}if ((menunr == autochangemenubat)&&(stoponhoverbat==1)) {stop_autochange()} else if ((menunr == autochangemenubat)&&(stoponhoverbat==0)) {counter=0;}menunr = menunr-1;for (i=1; i <= batcount[menunr]; i++){document.getElementById(batlink_idname[menunr]+i).className='bat'+i;document.getElementById(batcontent_idname[menunr]+i).style.display = 'none';}document.getElementById(batlink_idname[menunr]+active).className='bat'+active+' batactive';document.getElementById(batcontent_idname[menunr]+active).style.display = 'block';}var timer; counter=0; var totalbats=batcount[autochangemenubat-1];var currentbat=loadbats[autochangemenubat-1];function start_autochange(){counter=counter+1;timer=setTimeout("start_autochange()",1000);if (counter == changespeedbat+1) {currentbat++;if (currentbat>totalbats) {currentbat=1}easybats(autochangemenubat,currentbat);restart_autochange();}}function restart_autochange(){clearTimeout(timer);counter=0;start_autochange();}function stop_autochange(){clearTimeout(timer);counter=0;}
window.onload=function(){
var menucountbat=loadbats.length; var a = 0; var b = 1; do {easybats(b, loadbats[a]); a++; b++;}while (b<=menucountbat);
if (autochangemenubat!=0){start_autochange();}
}
</script>
- Переменная отвечающая за открытие той или иной вкладки -
loadbats , при выполнении скрипта значение этой переменной передаётся правильное:
var loadbats = new Array("3")
Помогите решить проблему!