Zum Inhalt springen

Mobile Menü

Erstellt am 4. Oktober 2013 · 7 Antworten · letzte Antwort am 9. Januar 2014

Tags: JavaScript & AJAX, HTML & CSS, TYPO3 4.x, Frage

Philipp88 ·

Hallo 🙂

Ich möchte meine Typo3 als Mobile Webseite umsetzen mittels jquerymobile. Da dieses relativ Neuland für mich ist, habe ich gleich eine Fragen dazu:

Navigation:

Meine Navigation auf meiner Hauptseite sieht ungefähr so aus:

- Seite 1
- Seite 2
-- Seite 2.1
-- Seite 2.2
--- Seite 2.2.1
--- Seite 2.2.2
-- Seite 2.3
- Seite 3
usw.

Da es ja wenig Sinn macht diese Navigation 1:1 zu übernehmen, dachte ich die Navigation dynamisch aufzubauen.
Also ich dachte in etwa so:
Wenn ein Benutzer auf Seite 1 geht, werden alle Unterseiten von Seite 1 angezeigt inklusive Zurückbutton (zur vorigen Ebene). Das selbe auch mit Seite 2, Seite 2.1, Seite 2.2 usw.
Wenn es keine Unterseiten gibt, soll er das Menü der selben Ebene anzeigen.
Ist so etwas irgendwie möglich?

Ich würde mich riesig über Tipps freuen 🙂
Danke im Vorraus
Philipp

Philipp88 ·

Hat wirklich keiner eine Idee?

ich könne mir ne if- Anweisung so vorstellen, nur keine Ahnung wie es in Typoscript geht:

menuid = Elternpid

if(aktuelle pid Unterseiten erhält) {
menuid = aktuelle pid
}

und zum schluss wo das Menü aufgebaut wird, Special.value.data = menuid.
Oder liege ich da falsch mit der Überlegung?

Da ja die aktuellen Unterseiten einer Seite angezeigt werden soll, wird ja noch nicht angezeigt von welcher... Ist es irgendwie möglich die Hauptseite als <li role="heading"> anzeigen zu lassen und diese auf die Seite zu verlinken?

Hoffe ihr versteht was ich mein.

etux ·
mobile_menu = HMENU
mobile_menu {
	wrap = <nav>|</nav>
	special = directory
	special.value.data = page:uid
	1 = TMENU
	1 {
		wrap = <ul>|</ul>
		NO {
			wrapItemAndSub = <li>|</li>
		}
	}
	2 < .1
	3 < .1
}
Philipp88 ·

Hallo,

vielen dank es funktioniert soweit sehr gut 🙂

Nur ist noch die kleine Unschönheit, dass bei der letzten Ebene wo es kein Untermenü gibt nix angezeigt wird 🙁 Kann man es irgendwie abändern, dass wenn kein Untermenü existiert das übergeordnete Menü nehmt?

Philipp88 ·

Ich habe jetzt versucht, per if und conditiion zu unterscheiden ob Unterseite existiert oder nicht. Die if funktioniert auch und die Variable wird auch gesetzt (Wert 1 wenn Unterseiten vorhanden). Leider bekomme ich keine entsprechende condition hin 🙁

Menuid = TEXT
Menuid {
  value = 1
  
  if.isTrue.numRows {
    table = pages
    where = pid = this
  }
}

mid = TEXT

[Menuid > 0]
mid.data = page:uid
[else]
mid.data = page:pid
[global]

Hat jemand eine Lösung?

etux ·
Philipp88 schrieb

Hat jemand eine Lösung?

Sorry, meine E-Mail-Benachrichtigung ist nicht aktiv – habe Deine letzten Beiträge nur zufällig entdeckt. o.O

mobile_menu = HMENU
mobile_menu {
  wrap = <nav>|</nav>
  special = directory
  special {
    value {
      data = page:uid
      override {
        data = page: pid
        if {
          isFalse {
            numRows {
              table = pages
              where = pid = this
            }
          }
        }
      }
    }
  }
  1 = TMENU
  1 {
    wrap = <ul>|</ul>
    NO {
      wrapItemAndSub = <li>|</li>
    }
  }
  2 < .1
  3 < .1
}

Edit:
Bei data = page:pid habe ich ein Leerzeichen dazwischen gesetzt, da sonst der Forum-Editor ein Smile daraus macht:
data = page: pid
Das Leerzeichen dürften aber an die Funktion des Scripts nichts ändern.

Philipp88 ·

Ich muss das Thema leider nochmal aufgreifen 🙁

Es funktioniert soweit alles sehr gut 🙂 Leider wird aber das Menü auch angezeigt (leer), wenn das Menü Seiten enthält die nav_hide=1 sind 🙁 Gibt es da noch Möglichkeit das zu unterdrücken?
Ich habe probiert in den Wherestatment "and nav_hide=0" zu setzen, leider ohne Erfolg🙁8

Chrissli ·

1. Hast du es mal mit

 andWhere = nav_hide = 0

versucht?

2. Heisst das Feld in der DB denn auch nav_hide? Bin da nicht so firm.