Schönen guten Tag,
auf ein neues, nachdem ich mir den Browser Tab ausversehn geschlossen hab muss ich alles nochmal schreiben .
So nun versuch ich mal mein Anliegen zu erläutern.
Ich bin Aktuell am basten von einem Template das der alten Hauptseite von wow-europe.com gleicht,
und versuche die strucktur bestmöglich bei zu behalten.
LINK: http://web.archive.org/web/20101130143736/http://www.wow-europe.com/de/index.xml.
Gut soweit so schön,
Jetzt wollte ich Joomlas Hauseigenes Modul hernehmen um ein modChome zu erstellen für das Hauptmenü,
das klappt auch bis jetzt.
Nun zerbrech ich mir aber seit Tagen den Kopf darüber wie ich <a> Daten wie Kategorie, Name und Link an ein Script aufbereite,
zunächst hier die Daten die ich habe...,
menucreator.js Original!
var menuCreator = { HOVER_DELAY: 350, BOX_MINLENGTH: 115, appendSubMenu: function (item, list, parentUl) { if (parentUl) { jq(parentUl).append(list); } var newList = menuCreator.createSubMenu(item[2]); menuCreator.adjustBoxWidth(newList); list.append(newList); }, createSubMenu: function (list, ulElem) { ulElem = ulElem || jq('<ul />').hide(); jq.each(list, function (i, item) { var hasSubmenu = menuCreator.hasSubMenu(item), listItem = menuCreator.createMenuEntry(item, hasSubmenu); if (hasSubmenu) { menuCreator.appendSubMenu(item, listItem, ulElem); } else { ulElem.append(listItem); } }); return ulElem; }, createMenuEntry: function (entry, multiLevel) { var $listElem = jq('<li />'), timeoutId; if (multiLevel) { timeoutId = Math.random(); } if (entry[1]) { $listElem.prepend( jq("<a>").attr('href', entry[1]).text(entry[0]) ).hover( function () { if (multiLevel) { Timers.set("timer", function () { if (!jq("ul", $listElem)[0]) { menuCreator.appendSubMenu(($listElem.data("pointer")) ? $listElem.data("pointer") : entry, $listElem); $listElem.data("pointer", null); } if ((Browser.ie) && $listElem.parent().hasClass('mainNav')) { $listElem.parent().css("position", "relative"); } $listElem.css("position", "relative").find('ul:first').show(); }, menuCreator.HOVER_DELAY); Timers.clear(timeoutId); } if (!$listElem.parent().hasClass("menuCountry")) { $listElem.css("backgroundColor", (Browser.ie6 || Browser.ie7) ? "#232949" : "#131627"); } else { $listElem.css("backgroundPosition", "0 -21px"); } $listElem.children('a:first').css("color", "#FFF"); }, function () { if (multiLevel) { Timers.clear("timer"); Timers.set(timeoutId, function () { $listElem.css("position", "static").children('ul').hide(); if ((Browser.ie) && $listElem.parent().hasClass("mainNav")) { $listElem.parent().css("position", "static"); } }, menuCreator.HOVER_DELAY); } if (!$listElem.parent().hasClass("menuCountry")) { $listElem.css("backgroundColor", ""); } else { $listElem.css("backgroundPosition", "0 0"); } $listElem.children('a:first').css("color", "#F4C400"); } ); } else { $listElem.prepend('<span>' + entry[0] + '</span>'); } if (multiLevel) { $listElem.attr("class", "multi"); $listElem.children("a").attr("class", "multi"); } return $listElem; }, adjustBoxWidth: function (ulElem) { var $list = jq(ulElem).attr('id', 'current'), $links = $list.find("a").filter(function () { return jq(this).parent().parent().attr('id') == 'current'; }), maxLength = 0; $links.each(function () { var $link = jq(this), textLength = $link.text().length; if (textLength > maxLength) { maxLength = textLength; } }); $list.removeAttr('id'); maxLength = (maxLength * 6) + 35; $list.css("width", (maxLength < menuCreator.BOX_MINLENGTH) ? menuCreator.BOX_MINLENGTH : maxLength + "px"); }, hasSubMenu: function (item) { return !!item[2]; }, init: function (name) { var ul = jq("<ul />").attr('class', (name != 'menuCountry') ? 'mainNav' : 'mainNav menuCountry'), hasSubMenu; jq.each(Menu[name], function (i, entry) { hasSubmenu = menuCreator.hasSubMenu(entry); listElement = menuCreator.createMenuEntry(entry, hasSubmenu); if (hasSubmenu) { listElement.data("pointer", entry); } (ul).append(listElement); if (jq(ul).hasClass('menuCountry')) { jq("#" + name).append(ul); } else { jq("#" + name).find(".leftMenu-cnt").append(ul); } }); }};
Diese Datei baut mir das komplette <ul> gerüst, und will gefüttert werden mit den daten die ich oben erwähnt hatte.
OK nun zeige ich euch die Datei die die Daten normalerweise hatte...,
Teilauszug main-nav.js Original!
var Menu = { menuNews: [ ["Aktuelle News", "./index.xml"], ["Archiv", "/de/news/recent-news.html", [ ["2009", "/de/news/recent-news.html#13"], ["2008", "/de/news/archive-news2008.html"], ["2007", "/de/news/archive-news2007.html"], ["2006", "/de/news/archive-news2006.html"], ["2005", "/de/news/wow-oldnews2005.html"], ["2004", "/de/news/wow-oldnews2004.html"] ] ], ["Aktuelle Patchdetails", "/de/patchnotes/"] ]};
Dieses HTML Gerüst soll in der modChome ausgegeben werden,
und in <div class="leftMenu-cnt"> muss das <ul> Konstrukt.
[/spoiler][spoiler]<div id="leftMenu">
<div id="leftMenuContainer">
<div id="{KATEGORIE}">
<div id="{KATEGORIE}-button" class="menu-button-on" onclick="javascript:toggleNewMenu(1-1);">
<span id="{KATEGORIE}-icon" class="{KATEGORIE}-icon-on"> </span>
<a id="{KATEGORIE}-header" class="{KATEGORIE}-header-on">
<em>{KATEGORIE}</em>
</a>
<a id="{KATEGORIE}-collapse" class="leftMenu-minusLink"></a>
<span class="menuEntry-rightBorder"></span>
</div>
<div id="{KATEGORIE}-inner" style="display: block;">
<div class="leftMenu-cont-top"></div>
<div class="leftMenu-cont-mid">
<div class="m-left">
<div class="m-right">
<div class="leftMenu-cnt">
</div>
</div>
</div>
</div>
<div class="leftMenu-cont-bot"></div>
</div>
</div>
</div>
</div>[/spoiler][spoiler]
Alles anzeigen
[/spoiler]
Gut nun stell ich mir die Frage wie ich diese daten in der module.php so aufbereite?
Gerne stelle ich mehr informartionen bereit die ihr benötigt einfach bescheid geben.
Ich weis nich warum ich so aufm schlauch steh, aber ich hab definitiv ne Blockade
Ich danke ihnen schon jetzt für ihre Aufmerksamkeit
Grüße, Over