Zum Inhalt springen

Kategorienmenu mit nsb_cat2menu

Erstellt am 2. Januar 2006 · 39 Antworten · letzte Antwort am 23. November 2011 · Seite 2 von 2

Tags: Kategorien, Frage

deedeedark ·

hallo leute,

wollt mich mal bedanken für die Vorschläge und Skripte zur nsbcat2menu.
😃

Hab recht lange mit pageAsCat rumprobiert und viel gelesen, aber kein zufriedenstellendes ergebnis erzielt.

nun funktioniert es auch bei mir, hurra..
in der variante von semidark, und auch die variante von hoppefamily (bei mir funzt auch der link single view zurück zu list view in einer kategorie bestens)
da ich aber zuerst wirklich nur die parent_category=0 anzeigen lassen will, ist die lösung von semidark geeigneter.

bin so froh.. muchos gracias
besos ;-)

eicher ·

Hallo,

gibt es eine Möglichkeit das nsbcat2menu mehrsprachig zu gestalten? Ich beiße mir die Zähne daran aus...
#angry#
Bitte helft mir!!

Grüsse

Stefan

Contrixx-Webdesign ·

Hallo,
ich habe folgenden Typoscript von Hoppefamily mal meinem Template hinzugefügt.

lib.nsbcat2menu = HMENU
lib.nsbcat2menu.special = userfunction
lib.nsbcat2menu.special.userFunc = tx_nsbcat2menu_pi1->main
 
lib.nsbcat2menu.special.catList=39
#the uid of my root category, you can have more than one root exemple(catList=5,6)
lib.nsbcat2menu.special.pidlist=46
#the uid of the storage folder where my  categories are
 
lib.nsbcat2menu.special.catTable=tt_products_cat
lib.nsbcat2menu.special.parentEntry=parent_category
lib.nsbcat2menu.special.extTrigger=tx_ttproducts_pi1
lib.nsbcat2menu.special.varCat=cat
 
lib.nsbcat2menu.special.recSel = 0
#if true selecting a parent category selects all childs
 
lib.nsbcat2menu.1 = TMENU
lib.nsbcat2menu.1 {
  noBlur = 1
  # Normal state properties
  NO.allWrap = <div class="menu1-no"> | </div>
  NO.stdWrap.htmlSpecialChars = 1
  # Enable active state and set properties:
  ACT = 1
  ACT.stdWrap.htmlSpecialChars = 1
  ACT.allWrap = <div class="menu1-act"> -> | </div>
}
lib.nsbcat2menu.2 = TMENU
lib.nsbcat2menu.2 {
  noBlur = 1
  # Normal state properties
  NO.allWrap = <div class="menu2-no">-- | </div>
  NO.stdWrap.htmlSpecialChars = 1
  # Enable active state and set properties:
  ACT = 1
  ACT.stdWrap.htmlSpecialChars = 1
  ACT.allWrap = <div class="menu2-act">-- -> | </div>
}
lib.nsbcat2menu.3 = TMENU
lib.nsbcat2menu.3 {
  noBlur = 1
  # Normal state properties
  NO.allWrap = <div class="menu3-no">---- | </div>
  NO.stdWrap.htmlSpecialChars = 1
  # Enable active state and set properties:
  ACT = 1
  ACT.stdWrap.htmlSpecialChars = 1
  ACT.allWrap = <div class="menu3-act">---- -> | </div>
}
lib.nsbcat2menu.4 = TMENU
lib.nsbcat2menu.4 {
  noBlur = 1
  # Normal state properties
  NO.allWrap = <div class="menu4-no">------ | </div>
  NO.stdWrap.htmlSpecialChars = 1
  # Enable active state and set properties:
  ACT = 1
  ACT.stdWrap.htmlSpecialChars = 1
  ACT.allWrap = <div class="menu4-act">------ -> | </div>
}
lib.nsbcat2menu.2 = TMENU
lib.nsbcat2menu.2 < lib.nsbcat2menu.2
lib.nsbcat2menu.3 = TMENU
lib.nsbcat2menu.3 < lib.nsbcat2menu.3
lib.nsbcat2menu.4 = TMENU
lib.nsbcat2menu.4 < lib.nsbcat2menu.4

Wenn ich mich auf meiner Shop-Seite in der Listenansicht befinde, klappt es wunderbar. Befinde ich mich z.B. in der Sitemap (oder einer anderen Seite) und ich klicke in der navigation beispielsweise auf Taschenlampen, wird zur aktuellen Seite geleitet (auf der ich mich befinde). Aber die Shop-Listenansicht hat die id 39 ..... wie kann ich dem Programm mitteilen das er beim klick auf einer Kategorie dorthin linkt?

Vielen Dank im vorraus...

Contrixx-Webdesign ·

OK .... ich habe es jetzt mit targetId = ? gelöst. Aber wie kann ich die Ausgabe der Kategorien Alphabetisch sortieren lassen? Das ist alles was mich noch interessieren würde.

Mit bestem Dank im vorraus.

Contrixx-Webdesign ·

Sorry, habe das mit dem sortieren gelöst. Habe einfach die Variable $orderBy ='' mit dem Wert title gefüllt ($orderBy='title'). Jetzt werden meine Kategorien alphabetisch sortiert.

eicher ·

Hallo Zusammen,

gibt es niemanden der mir einen Tip geben kann, bzgl. Mehrsprachigkeit und Kategorien? Ist das so ein großes Problem?? Alles funktioniert einwandfrei, aber ich bekomme kein überschaubares Backend hin...., weil ich die Ext nsb_cat2menu nicht anwenden kann, da die Mehrsprachigkeit dort nicht unterstützt wird.. Kann mir jemand helfen, bitte..
😢

Grüße

Stefan

dqminh ·

Hallo Semidark,

Ich habe dein Code eingesetzt und es hat super geklappt!

(siehe ein Screenshot davon http://blog.360.yahoo.com/blog-bzW0GxI1aqtMECVKgdc8jw--?cq=1)

Die Kategoriehierarchie wird dabei auf der rechten Spalte ausgegeben.

Ich habe jetzt eine Frage: Wenn ich eine Kategorie auswähle, möchte ich daß nicht nur die Produkte der Kategorie sondern auch die der Subkategorien (rekursiv bis 2 Levels tiefer) dargestellt werden. Kannst du mir bitte ein Tip geben.

Mit bestem Dank im Voraus.

Grüße

Dang Quang Minh

semidark ·

Hallo dqminh,

leider fehlt mir die Zeit dir das Problem komplett auseinander zu nehmen. Aber ich denke das du für die Umsetzung deines Vorhabens die Funktion printView in der Datei view/class.tx_ttproducts_list_view.php der tt_products selber bearbeiten musst. Denke mal du musst hier das SQL so verändern dass er die Produkte halt mit ausgibt. Und nicht vergessen das ganze per HOOK einzubauen damit du bem nächsten Update nicht deine Änderungen überschreibst 😃

Sorry für die grobe Antwort aber vieleicht hilfts ja.

Wenn fragen auftauchen mach am besten einen neuen Thread auf und verweise in diesem Thread darauf, da das Thema meiner Meinung nach ein bisserl OffTopic ist.

Gruß Semidark

dqminh ·

Hallo Semidark,

Vielen Dank für dein Tip. Es klingt viel komplizierter als ich gedacht habe, deshalb werde ich die Idee von mir zuerst auch so lassen.

Grüße

Dang Quang Minh

mischa ·

Tachchen zusammen,

ich bastel jetzt seit drei Tagen an dem Problem:
Ich möchte, wie hier ja schon länger diskutiert, ein Kategorienmenü erstellen, was bis dato ja auch wunderbar klappt.

Nur leider verhält sich mein Menü nicht so, wie es ein Menü tun sollte.
Klicke ich auf ein Tocherelement, so verschwinden alle Geschwisterelemente des Elternelements.

Beispiel:

Ausgangslage:
- Ebene 1: A
- Ebene 1: B

Klick auf Ebene 1:A

- Ebene 1: A
-- Ebene 2: A1
-- Ebene 2: A2
-- Ebene 2: A3
...
- Ebene 1: B

Klick auf Ebene 2: A2

- Ebene 1: A
-- Ebene 2: A2
--- Ebene 3: A2a
--- Ebene 3: A2b
--- Ebene 3: A2c
-Ebene 1: B

Somit sind A1 und A3 verschwunden.

Hat jemand eine Idee, wie man das bewerkstelligen könnte, dass A1 und A3 doch noch im Menü sichtbar bleiben, wie es sich gehört?

Ich verwende derzeit den Hack von Nico Thomaier, der auch nur eine ID übergibt, wie ich es will und nicht eine Komma-Liste von IDs.

Und das blödste ist, klicke ich auf die unterste Ebene, so erhalte ich zwar im COntent das, was ich will, das Menü klappt aber wieder zusammen.

Wäre für Hilfe dankbar, und - so denke ich - viele andere auch.

a3ro ·

hat jetzt irgendwer schon ne lösung zu nsb cat2menu in einer mehrsprachigen webseite ?

a3ro ·

Ok, falls ihr auch mal eine mehrsprachige Webseite erstellt und mit nsb_cat2menu ein mehrsprachiges menü erstellt und in einer anderen Sprache euer Kategoriemenü nicht mehr angezeigt wird, müsst ihr die pi1 ergänzen:

$lightMenuArray[$key]['_SAFE']=$menuArray[$key]['title'];

und zwar in den Funktionen "lightenMenu" und "lightenSubMenu".

Dann klappts auch mit dem Nachbarn.

Anhur ·

Hallo

Ich hoffe es ist in Ordnung, wenn ich mein Problem hier anhänge.

Folgendes. Ich habe ein nsb_cat2menu erfolgreich eingebunden (mit tt_products 2.7.0-35, mbi_products-category)
Das Menü wird auch meinen Wünschen entsprechend aufgebaut.

Nun habe ich jedoch das Problem, dass wenn ich über diese Menü gehe, dann eine Einzalansicht eines Produktes aufrufe und dann den Link "zurück zur Liste" anwähle erhlate ich folgende Fehlermeldung:

Produkte: Falscher Parameter. GET/POST var 'tx_ttproducts_pi1[product]' wurde nicht angegeben oder kein Element mit uid = 0 auf den erlaubten Seiten 3,18 gefunden.

Die Seiten 3 und 18 enthalten jeweils Produkte und Artikel.

Der Link für "zurück zur Liste" ist in diesem Fall

http://<site>/index.php?id=6&tx_ttproducts_pi1[cat]=2

Wenn ich "normal" über die Artikelansicht in eine Einzelansicht navigiere ist der Link von "zurück zur Liste" folgender:

http://<site>/index.php?id=5&tx_ttproducts_pi1[backPID]=6

und funktioniert dann auch wie gewünscht.

Das Problem liegt also wohl an der Übergabe von id. Die Seite 5 ist mein Listview, Seite 6 ist die Einzelansicht.

Hat jemand eine Idee wie ich an dieser Stelle den richtigen Link hin bekomme?

Grüße
Bernd

3bein ·

Hallo an alle.

Bei mir folgendes Problem.
Hab den Code so eingebunden, wie vorn geschrieben.

Nur, wie pack ich das Menu in einen Marker?
Bei mir klemmt die Ausgabe einfach unterm Footer.
Ich möchte es aber Links unter die Navigation haben.

Derzeit siehts so aus, das er einfach unten nen Div "Menu1-no" dran packt.

<div class="footer"><a class="footnav" href="#">Impressum</a>&nbsp;&nbsp;&nbsp;<a class="footnav" href="#">Haftungsausschluss</a>&nbsp;&nbsp;&nbsp;<a class="footnav" href="#">Copyright</a><br /><br /></div>
</div>
<div class="menu1-no"><a href="index.php?id=6&am.........

Den will ich woanders hin haben.

LG
Daniel

Anhur ·

Ich gehe mal davon aus, dass du das Menü in den Container

<div class="menu1-no"><a href="index.php?id=6&am

Gib in deinem CSS doch dem Container menu1-no doch eine Position.
Falls das nicht passt, kannst du in deinem Template ja einen neuen Marker in einem eigenen Container definieren, den du dann per CSS dort positionierst wo du ihn haben willst.

3bein ·

Und jetzt die alles entscheidende Frage. 😉

Wie definiere ich den denn? Einige werden mich jetzt dafür schlagen und mir die zahlreichen Howtos vor die Füsse schmeissen.
Ich gehe davon aus, das er derzeit ###nsbcat2menu### heissen sollte. Oder?
Aber die Variante, den Div Container zu positionieren werd ich mal testen.

lg

Anhur ·

Hi
Ich weiss nicht genau wie du deine Seite bzw. dein Template aufgebaut hast.
Falls du eine HTML Datei in dein TS einbindest solltest du dort irgendwas in der Art

<style type="text/css">
#nsbcat{
 position:absolute;
 left:450px;
 top:350px;
}
</style>
....
<div id="nsbcat">###nsbcat2menu###</div>

haben.

In deinem TS Setup sollte dann irgendwo etwas in der Art

seite.10.marks.nsbcat2menu < lib.nsbcat2menu

vorkommen. Vorausgesetzt dein TLO PAGE ist seite usw.

googol ·

Hi,

wie bekommt man das &no_cache=1 aus der URL rauß wenn man nsb_cat2menu verwendet?

Danke,

Philipp

RainMan ·

Hallo,
ich bekomme einfach kein vernünftiges Menu zusammengebaut und egal was ich mache, es sind immer alle Menüpunkte ausgeklappt.
Das Anweisung expAll - Funktioniert bei mir gar nicht.
Was mach ich falsch?

-Typo3 4.5.7
-tt_products 2.7.2
-mbi_products_categories 0.1.4
-nsb_cat2menu 0.0.1

Ich habe folgende Kategorien:
1. Alle Produkte (oberste Kategorie)
2. Kategorie 1 (Oberkategorie:Alle Produkte)
3. Kategorie 1.1 (Oberkategorie:Kategorie 1)
4. Kategorie 1.2 (Oberkategorie:Kategorie 1)
5. Kategorie 2 (Oberkategorie:Alle Produkte)
6. Kategorie 2.1 (Oberkategorie:Kategorie 2)
7. Kategorie 2.1 (Oberkategorie:Kategorie 2)

Die Menüstruktur soll so sein:

.....Alle Produkte
.....Kategorie 1
.....--Kategorie 1.1
.....--Kategorie 1.2
.....Kategorie 2
.....--Kategorie 2.1
.....--Kategorie 1.1

lib.nsbcat2menu = HMENU
lib.nsbcat2menu.special = userfunction
lib.nsbcat2menu.special.userFunc = tx_nsbcat2menu_pi1->main
lib.nsbcat2menu.special.catList= 14
lib.nsbcat2menu.special.pidlist= 31
lib.nsbcat2menu.special.catTable= tt_products_cat
lib.nsbcat2menu.special.parentEntry= parent_category
lib.nsbcat2menu.special.extTrigger= tt_products
lib.nsbcat2menu.special.varCat=cat
lib.nsbcat2menu.special.targetId = 30
lib.nsbcat2menu.special.recSel = 1
lib.nsbcat2menu.1 = TMENU
lib.nsbcat2menu.1 {
   wrap=<ul>|</ul>
   noBlur = 1
   expAll = 0
   NO = 1
   NO {
      ATagTitle.field = title
      ATagParams =
      wrapItemAndSub = <li class="level1">|</li>
   }
   ACT < .NO
   ACT.ATagParams = class="act"
}
lib.nsbcat2menu.2 = TMENU
lib.nsbcat2menu.2 {
   wrap= <ul>|</ul>
   noBlur = 1
   expAll = 0
   NO = 1
   NO {
      ATagTitle.field = title
      ATagParams = class="sub"
      wrapItemAndSub = <li class="level2">|</li>
   }
   ACT < .NO
   ACT.ATagParams = class="act3"
}

lib.nsbcat2menu.3 = TMENU
lib.nsbcat2menu.3 < lib.nsbcat2menu.2
lib.nsbcat2menu.4 = TMENU
lib.nsbcat2menu.4 < lib.nsbcat2menu.2

Als HTML soll etwas sowas rauskommen:

<ul>
  <li>
    <a href="" title="">Alle Produkte</a>
  </li>
  <li class="active">
    <span class="activeKategorie">
      <a href="" title="">Kategorie 1</a>
      <ul>
        <li class="active">
          <a href="" title="">Kategorie 1.1</a>
        </li>
        <li>
          <a href="" title="">Kategorie 1.2</a>
        </li>
       </ul>
     </span>
  </li>
  <li>
    <a href="" title="">Kategorie 2</a>
  </li>
</ul>

Ich bin sehr dankbar für jede Hilfe.

MfG. RainMan