Timrasche Posted December 6, 2012 Report Share Posted December 6, 2012 Da dieses Thema hier zwar schon oft angesprochen wurde aber irgendwie in keinem Thread eine Lösung zustande gekommen ist, hier nochmal die Frage: Wie kann man in der box categories ALLE Kategorien anzeigen lassen OHNE erst auf die Kategorie zu klicken, daher also eine rekursive Ausgabe aller Kategorien. Das ganze soll später als :hover Menü "ausgeklappt" werden. Es gibt wenig bis gar keine nutzbaren Informationen dazu. Weil wenn ich eine neue Box mit Kategorieauflistung erstellen will und dann jedesmal eine ID zu übergeben damit dies auch aufgeklappt wird, da das als Template Funktion ja dann jedesmal für x Kategorien angelegt werden müsste und so kann kein Kunde individuelle Menüs gestalten. Daher BITTE eine Lösung dazu. Link to comment Share on other sites More sharing options...
stwinger Posted December 6, 2012 Report Share Posted December 6, 2012 Was Du möchtest ist mit der normalen Kategorienbox so nicht möglich. Du benötigst eine Box die dir eine komplette verschachtelte Liste des Kategorienbaums ausgibt. Es gibt diverse Plugins die das können. Link to comment Share on other sites More sharing options...
Alex@4tfm Posted December 7, 2012 Report Share Posted December 7, 2012 Zum Beispiel das hier: Dropdown / Flyout-Menü für Kategorien-50007_264 ( Eigenwerbung ) Man müsste alle Stylesheets und die Javascipte deaktivieren. Link to comment Share on other sites More sharing options...
Reverent001 Posted December 7, 2012 Report Share Posted December 7, 2012 es geht auch ohne Modulkauf und ist für jemand der etwas Ahnung von Smarty hat, schnell gemacht! Gerne PM an mich, dann sag ich wie! Link to comment Share on other sites More sharing options...
vereinsbedarfjansen Posted December 7, 2012 Report Share Posted December 7, 2012 ...und warum nicht direkt hier, damit alle etwas davon haben??? Link to comment Share on other sites More sharing options...
Timrasche Posted December 7, 2012 Author Report Share Posted December 7, 2012 Verstehe ich auch grade nicht, was dann so ein Forum für Sinn macht wenn man nichts austauscht.... Naja jedenfalls arbeite ich derzeit auch daran das direkt umzusetzen, da es bereits eine Funktion gibt, die ALLE Kategorien ausgibt, allerdings werden in dieser wichtige array variablen nicht gesetzt die aber essentiell für das styling der ul listen sind. Zumindest um es vernünftig zu machen. Habe bislang nur eine Lösung mit begrenzter Funktionsfähigkeit. Wäre gespannt auf eine Lösung Link to comment Share on other sites More sharing options...
stwinger Posted December 7, 2012 Report Share Posted December 7, 2012 wenn man doch einfach mal die Suche benutzen würde * bwhahaha:) http://www.xt-commerce.com/forum/fragen-zur-software/77789-flyout-men-f-r-kategorien-veyton-2.html#post381898 übrigens funzt das einwandfrei ! Link to comment Share on other sites More sharing options...
Kahmoon Posted December 7, 2012 Report Share Posted December 7, 2012 Ich klink mich hier mal ein. Ich brauche zwar kein Flyoutmenü aber alle Kategorien ausgeklappt. Any ideas? Link to comment Share on other sites More sharing options...
stwinger Posted December 7, 2012 Report Share Posted December 7, 2012 Ich klink mich hier mal ein. Ich brauche zwar kein Flyoutmenü aber alle Kategorien ausgeklappt. Any ideas? das ist das gleiche Link to comment Share on other sites More sharing options...
Kahmoon Posted December 7, 2012 Report Share Posted December 7, 2012 Ja, ohne das ganze JS Gedöhns Ich versuchs mal hiermit. http://www.xt-commerce.com/forum/fragen-zur-software/77789-flyout-men-f-r-kategorien-veyton-2.html#post381898 Link to comment Share on other sites More sharing options...
stwinger Posted December 7, 2012 Report Share Posted December 7, 2012 die Ausgabe der Links fehlt ja in diesem Beispiel, kannst Du aber mit [COLOR=#000000][COLOR=#007700] {[/COLOR][COLOR=#0000BB]$_categories[/COLOR][COLOR=#007700][[/COLOR][COLOR=#0000BB]i[/COLOR][COLOR=#007700]].[/COLOR][COLOR=#0000BB]categories_link[/COLOR][COLOR=#007700]}[/COLOR][/COLOR][/CODE] passend erweitern [color=#000000][color=#007700][/color][/color] Link to comment Share on other sites More sharing options...
Kahmoon Posted December 7, 2012 Report Share Posted December 7, 2012 Danke. Versuche ich. Link to comment Share on other sites More sharing options...
Timrasche Posted December 7, 2012 Author Report Share Posted December 7, 2012 wenn man doch einfach mal die Suche benutzen würde * bwhahaha:) http://www.xt-commerce.com/forum/fragen-zur-software/77789-flyout-men-f-r-kategorien-veyton-2.html#post381898 übrigens funzt das einwandfrei ! naja einwandfrei funktionieren ist bei mir etwas anderes... wenn man sich diesen code anschaut basiert alles auf der variable $params['id'] daher mal eine frage unter programmierern, wie wird bzw wo diese variable definiert? sehe da wenig "funktionierendes" ich verstehe aber das Beispiel so wie es in dem Thema Flyout-mneü behandelt wird. Allerdings ist diese Ausgabe schon gut, aber immernoch davon entfernt einen "kompletten Baum" auszugeben! Link to comment Share on other sites More sharing options...
stwinger Posted December 7, 2012 Report Share Posted December 7, 2012 naja einwandfrei funktionieren ist bei mir etwas anderes... wenn man sich diesen code anschaut basiert alles auf der variable $params['id'] daher mal eine frage unter programmierern, wie wird bzw wo diese variable definiert? sehe da wenig "funktionierendes" ich verstehe aber das Beispiel so wie es in dem Thema Flyout-mneü behandelt wird. Allerdings ist diese Ausgabe schon gut, aber immernoch davon entfernt einen "kompletten Baum" auszugeben! Wie definierst Du einen kompletten Baum ? Wenn ich das lokal bei mir teste zeigt er mir alle Kategorien als nested List an. Wie das Ding nachher dargestellt wird kann doch jeder via CSS machen wie er möchte, Flyout, kompletter Baum oder wie auch immer. Link to comment Share on other sites More sharing options...
Jeldrik Posted December 8, 2012 Report Share Posted December 8, 2012 Das kannst du leicht über ein eigenes Plugin realisieren. Du kannst dir die Kategorien als ein verschachteltes Array zurückgeben lassen. Die Funktion, die die Daten für die Kategorien-Darstellung als Box zurückgibt, heißt getCategoryBox(). Diese nimmt bis zu drei Argumente. Das zweite Argument steuert, ob das Array verschachtelt sein soll oder nicht. Default ist false. Wenn du ein true übergibst, kriegst du ein verschachteltes Array, dass die Kategorienstruktur wiederspiegelt. Wenn du es dir genauer anschauen willst: Die Funktion wird in xtFramework/class.category.php definiert. Mit Smarty kannst du anschließend dir das als verschachtelte Liste ausgeben lassen. Von da an sollte es mit CSS und JavaScript kein Problem mehr sein. Da xtcommerce keine Sichtbarkeit von Klassen-Methoden verwendet, ist unklar, ob diese Funktion als Schnittstelle gedacht ist oder sich nach einem Update auch mal anders Verhalten kann. Da aber auch die Standard-Kategorie-Ausgabe auf dieser Funktion aufbaut, ist eine Änderung zumindest bei einem Minor Release - hoffentlicht - nicht zu erwarten. Link to comment Share on other sites More sharing options...
Timrasche Posted December 8, 2012 Author Report Share Posted December 8, 2012 Das ist trotzdem kein kompletter Baum... Leute, schaut euch dochmal die Ausgabe von getCategoryBox() und im Vergleich die Ausgabe von getAllCategoriesList() an. Dann seht ihr was ein KOMPLETTER baum ist, leider wie beschrieben fehlen hier diverse Variablen wie zb level und active. Das habe ich jetzt einfach umgangen und arbeite den vergleich von leveln mit mehreren schleifen und parent ids ab. So funktioniert das ganze ganz gut. Link to comment Share on other sites More sharing options...
stwinger Posted December 8, 2012 Report Share Posted December 8, 2012 <ul id="nav" class="level-0"> <li class="level-1"><a class="level-1" href="#" title="#"><span>#</span></a></li> <li class="level-1 parent"><a class="level-1" href="#" title="#"><span>#</span></a> <ul class="level-1"> <li class="level-2"><a class="level-2" href="#" title="#"><span>#</span></a></li> <li class="level-2"><a class="level-2" href="#" title="#"><span>#</span></a></li> <li class="level-2"><a class="level-2" href="#" title="#"><span>#</span></a></li> <li class="level-2 parent"><a class="level-2" href="#" title="#"><span>#</span></a> <ul class="level-2"> <li class="level-3"><a class="level-3" href="#" title="#"><span>#</span></a></li> <li class="level-3"><a class="level-3" href="#" title="#"><span>#s</span></a></li> <li class="level-3"><a class="level-3" href="#" title="#"><span>#</span></a></li> <li class="level-3"><a class="level-3" href="#" title="#"><span>#</span></a></li> </ul> </li> <li class="level-2"><a class="level-2" href="#" title="#"><span>#</span></a></li> </ul> </li> <li class="level-1"><a class="level-1" href="#" title=""><span>#</span></a></li> <li class="level-1"><a class="level-1" href="#" title="#"><span>#</span></a></li> </ul>wenn das kein kompletter Baum ist was ist das dann ??? Link to comment Share on other sites More sharing options...
Reverent001 Posted December 10, 2012 Report Share Posted December 10, 2012 Ich kann es natürlich auch gerne hier posten kein Ding. in der Datei /xtCore/boxes/categories.php muss folgende Änderung gemacht werden: $tpl_data = array('_categories'=> $category->getCategoryBox(),'_deepest_level_display'=>$category->deepest_level_display);[/PHP] ändern in : [PHP]$tpl_data = array('_categories'=> $category->getCategoryBox(0, true, 0),'_deepest_level_display'=>$category->deepest_level_display);[/PHP] Für das Template ist entsprechend die Änderung in der categories.html zu machen: [HTML] <ul id="main" class="bgIframe"> {foreach name=aussen item=first_level from=$_categories} <li class="{if $first_level.sub!=''}w160{/if} level{$module_data.level}{if $module_data.active} current{/if}"> {if $first_level.sub!=''} {php} $count=0; {/php} {foreach name=innen item=firstSec_level from=$first_level.sub} {php} if($count < 1){ {/php} <a class="btnEnd" href="{$firstSec_level.categories_link}" title="{$first_level.categories_heading_title}">{$first_level.categories_name}</a> {php} } {/php} {php} $count++; {/php} {/foreach} {else} <a class="btnEnd" href="{$first_level.categories_link}" title="{$first_level.categories_heading_title}">{$first_level.categories_name}</a> {/if} {if $first_level.sub!=''} <ul id="submain" class="submain"> {foreach name=innen item=second_level from=$first_level.sub} <li class="level{$second_level.level}{if $second_level.active} current{/if}"> <a href="{$second_level.categories_link}" title="{$second_level.categories_heading_title}">{$second_level.categories_name}</a> </li> {/foreach} </ul> {/if} </li> {/foreach} </ul> [/HTML] Das ganze ist jetzt nur auf 2 Kategorie-Ebenen ausgelegt, sollte nach diesem Muster aber ein leichtes sein, es zu erweitern! ICh habe es ebenfalls mehrfach in Benutzung mit einem Flyout Menu, das Script dazu ist folgendes: [HTML]{literal} <script> $(document).ready(function(){ $("ul#main").superfish({ delay: 1000, speed: 'slow', autoArrows: false, animation: { opacity:'show', height:'show' }, dropShadows: false }); }); </script> {/literal}[/HTML] Um das so hinzubekommen, habe ich auch einiges Suchen und vor allem ausprobieren müssen! Also viel spass damit! Greetz Link to comment Share on other sites More sharing options...
Jeldrik Posted December 10, 2012 Report Share Posted December 10, 2012 in der Datei /xtCore/boxes/categories.php muss folgende Änderung gemacht werden: Ich würde dringend empfehlen das als eigenes Plugin zu realisieren. Also einfach die Dateien als /plugins/categories_nested/boxes/categories_nested.php /plugins/categories_nested/templates/boxes/categories_nested.php neu anzulegen. Core-Hacks haben immer die Gefahr, dass sie dir bei einem Update überschrieben werden. Link to comment Share on other sites More sharing options...
XThorst Posted April 11, 2013 Report Share Posted April 11, 2013 Hallo Reverent001, deine Lösung funktioniert wunderbar. Nur leider benötige ich 3 Kategoriebenen. Ich habe jetzt Probleme die 2te Unterkategorie einzubauen. Ich bin so weit, dass ein weiteres Submenü angezeigt wird, allerdings nicht das 2te, sondern wieder der Inhalt (Links, Überschriften) des ersten Submenüs. Irgendetwas entscheidendes übersehe ich. Folgendes habe ich probiert: <ul id="categorymenu"> {foreach name=aussen item=first_level from=$_categories} <li class="level{$first_level.level}{$first_level.categories_id}{if $first_level.active} active{/if}"> {if $first_level.sub!=''} {php} $count=0; {/php} {foreach name=innen item=firstSec_level from=$first_level.sub} {php} if($count < 1){ {/php} <a class="btnEnd" href="{$firstSec_level.categories_link}" title="{$first_level.categories_heading_title}">{$first_level.categories_name}</a> {php} } {/php} {php} $count++; {/php} {/foreach} {else} <a class="btnEnd" href="{$first_level.categories_link}" title="{$first_level.categories_heading_title}">{$first_level.categories_name}</a> {/if} {if $first_level.sub!=''} <ul id="submain" class="submain"> {foreach name=innen item=second_level from=$first_level.sub} <li class="level{$second_level.level}{if $second_level.active} current{/if}"> <a href="{$second_level.categories_link}" title="{$second_level.categories_heading_title}">{$second_level.categories_name}</a> {if $first_level.sub!=''} <ul id="submain2" class="submain2"> {foreach name=innen item=second_level from=$first_level.sub} <li class="level{$second_level.level}{if $second_level.active} current{/if}"> <a href="{$second_level.categories_link}" title="{$second_level.categories_heading_title}">{$second_level.categories_name}</a> </li> {/foreach} </ul> {/if} </li> {/foreach} </ul> {/if} </li> {/foreach} </ul> [/HTML] Könnte mir dabei jemand helfen? Vielen Dank im Voraus. Grüße Link to comment Share on other sites More sharing options...
maik3685 Posted September 1, 2013 Report Share Posted September 1, 2013 gibt es schon eine lösung für die 3. kategorieebene? Link to comment Share on other sites More sharing options...
santadani Posted November 8, 2013 Report Share Posted November 8, 2013 Vielen Dank Reverent001, deine Lösung hat bei mir super geklappt. Nur leider reagiert der Baum nun nicht mehr auf meine CSS Befehle. Ich kann beispielsweise Level1 Kategorien nicht mehr fett oder farbig anzeigen. Jemand eine Idee warum das so ist? Gruss Dani Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.