Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten Ansicht
  #1  
Alt 28.05.07, 13:20
Forum Newbie
 
Registriert seit: 17.04.07
Alter: 32
Beiträge: 13

template nur ausgeben wenn seiten auf dem level vorhanden.


Hallo,

Ich möchte eine Kontextnavigation in einem DIV ausgeben lassen. Die Ausgabe soll aber komplett unterbunden werden wenn keine Navigationseinträge auf dem level existieren.

Den div in dem die Navigation ausgegeben werden soll habe ich in einem Template untergebracht. Das Template lasse ich zum Schluss in einen typoscript object path, der über tv erstellt wurde parsen.

Hier der ts code:
Typoscript-Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
temp.cnav = HMENU
temp.cnav.entryLevel = 1
temp.cnav.1 = TMENU
temp.cnav.1 {

NO.allWrap = <li class="cnav-no"> | </li>
ACT = 1
ACT.allWrap = <li class="cnav-act"> | </li>
}
temp.tplcnav = TEMPLATE
temp.tplcnav.template = FILE
temp.tplcnav.template.file = fileadmin/templates/roundnavbox.html
temp.tplcnav.marks.HEADER = TEXT
temp.tplcnav.marks.HEADER.value = Inhalte
temp.tplcnav.marks.LIS < temp.cnav

lib.contextnav < temp.tplcnav

Ich habe nicht wirklich viel Ahnung von ts, aber die Conditions können mir anscheinend nicht weiter helfen. Die if Objekte arbeiten ja auch immer noch auf den Einträgen selbst. Was ich möchte ist das Komplette Template nicht ausgeben wenn es keine Unterseiten gibt. Bitte auch tips falls die komplette Herangehensweise falsch ist.

Vielen Dank u. Gruß,

# eof
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #2  
Alt 28.05.07, 16:14
Benutzerbild von Kurt51
TYPO3forum.net Donater
 
Registriert seit: 21.07.06
Ort: Jülich
Beiträge: 1.029
Kurt51 eine Nachricht über Yahoo! schicken Kurt51 eine Nachricht über Skype™ schicken

Zitat:
Zitat von # eof Beitrag anzeigen
Hallo,

Ich möchte eine Kontextnavigation in einem DIV ausgeben lassen. Die Ausgabe soll aber komplett unterbunden werden wenn keine Navigationseinträge auf dem level existieren.

Den div in dem die Navigation ausgegeben werden soll habe ich in einem Template untergebracht. Das Template lasse ich zum Schluss in einen typoscript object path, der über tv erstellt wurde parsen.

Hier der ts code:
Typoscript-Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
temp.cnav = HMENU
temp.cnav.entryLevel = 1
temp.cnav.1 = TMENU
temp.cnav.1 {

NO.allWrap = <li class="cnav-no"> | </li>
ACT = 1
ACT.allWrap = <li class="cnav-act"> | </li>
}
temp.tplcnav = TEMPLATE
temp.tplcnav.template = FILE
temp.tplcnav.template.file = fileadmin/templates/roundnavbox.html
temp.tplcnav.marks.HEADER = TEXT
temp.tplcnav.marks.HEADER.value = Inhalte
temp.tplcnav.marks.LIS < temp.cnav

lib.contextnav < temp.tplcnav
Ich habe nicht wirklich viel Ahnung von ts, aber die Conditions können mir anscheinend nicht weiter helfen. Die if Objekte arbeiten ja auch immer noch auf den Einträgen selbst. Was ich möchte ist das Komplette Template nicht ausgeben wenn es keine Unterseiten gibt. Bitte auch tips falls die komplette Herangehensweise falsch ist.

Vielen Dank u. Gruß,

# eof
Du umhüllst das mit ...required = 1 und ... wrap = <div id="xyz">|</div>
__________________
Einen schönen Gruß aus Jülich
Kurt

http://www.kupix.de
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #3  
Alt 29.05.07, 08:39
Forum Newbie
 
Registriert seit: 17.04.07
Alter: 32
Beiträge: 13

Hallo Kurt51,

Zitat:
Zitat von Kurt51 Beitrag anzeigen
Du umhüllst das mit ...required = 1 und ... wrap = <div id="xyz">|</div>
Kannst du mir genauer erläutern was du meinst. Mit required und wrap schaffe ich ja nur, in Abhängigkeit ob Menüeinträge existieren, einen wrap um die Navigation selbst durchzuführen, nicht jedoch die Anzeige des Templates zu steuern, wie ich es vorhatte.

Ich würde diese Variatante nicht so gerne einsetzen. Um die Navigation ist eine Box mit runden Ecken. Dafür brauchts in CSS 4 divs. Aus nachvollziehbaren Gründen möchte ich eigentlich so viel wie Möglich html aus dem ts raushalten und lieber in Templates auslagern.

Aber vielleicht habe ich ja auch über das ts in der tv datenstruktur eine Möglichkeit das gewünscht zu erreichen?!

Viele Grüße,

# eof
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #4  
Alt 29.05.07, 10:47
TYPO3 Forum Team
Moderator
 
Registriert seit: 01.12.05
Ort: Kiel
Alter: 38
Beiträge: 2.022
Armin eine Nachricht über ICQ schicken Armin eine Nachricht über Skype™ schicken

Guten Morgen,

ich würde die Sache anders angehen, für mich logischer.

Da du ja einen Wrap um das HMENU letztendlich haben willst, würde ich es auch so angehen.

Typoscript-Code:
1:
2:
temp.cnav = HMENU
temp.cnav.wrap = |

Allerdings führt ein normaler wrap zu dem Problem, das dieser immer ausgeführt, egal ob Inhalt vorhanden oder nicht, also muss über stdWrap gegangen werden, und da noch ein cObject übergeben werden soll, halt als cObject.

Gehe ich jetzt von deine TS aus, müsste dieser also etwas umgestellt werden:

Typoscript-Code:
1:
2:
3:
temp.tplcnav = TEMPLATE
temp.tplcnav.template = FILE
temp.tplcnav.template.file = fileadmin/templates/roundnavbox.html
MARKS brauchst du nicht mehr, sondern |, wie bei einen normalen Wrap

Typoscript-Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
temp.cnav = HMENU
stdWrap.outerWrap.cObject < temp.tplcnav
temp.cnav.entryLevel = 1
temp.cnav.1 = TMENU
temp.cnav.1 {

NO.allWrap = <li class="cnav-no"> | </li>
ACT = 1
ACT.allWrap = <li class="cnav-act"> | </li>
}

Das wäre eine Art.

Du kannst es aber auch wie Kurt schon erwähnt, über required lösen, allerdings darf temp.cnav nix zurück liefern (also kein wrap der immer ausgeführt werden würde etc. pp.)

Nachtrag: Ist es nicht übersichtlicher, anstatt alles in Files zu packen mit Konstanten zu arbeiten oder zumindest alles in einen File zu packen?

Armin
__________________
Nichts kommt von selbst, sogar eine Dummheit muss man erst machen.

Tipps und Tricks zu TYPO3: http://typo3.intervation.de

Geändert von Armin (29.05.07 um 11:40 Uhr).
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #5  
Alt 29.05.07, 14:45
Forum Newbie
 
Registriert seit: 17.04.07
Alter: 32
Beiträge: 13

Hallo,

irgendwie hab ichs noch nicht.

Ich kriege es hin mit deinem Code den Inhalt des Templates _vor_ der Navigation auszugeben, mit required kriege ich es auch hin das Template nur auszugeben wenn es eine Navigation gibt. Allerdings kriege ich es nicht hin das Template _um_ die Navigation zu wrappen.

Typoscript-Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
temp.tplcnav = TEMPLATE
temp.tplcnav.template = FILE
temp.tplcnav.template.file = fileadmin/templates/roundnavbox.html

temp.cnav = HMENU
temp.cnav.entryLevel = 1

temp.cnav.stdWrap.outerWrap.cObject < temp.tplcnav
temp.cnav.stdWrap.required = 1

temp.cnav.1 = TMENU
temp.cnav.1 {

    # Normal state properties
NO.allWrap = <li> | </li>

    # Enable active state and set properties:
ACT = 1
ACT.allWrap = <li class="active"> | </li>
}
lib.contextnav < temp.cnav



Zitat:
Zitat von Armin Beitrag anzeigen
Du kannst es aber auch wie Kurt schon erwähnt, über required lösen, ...
Ich schein noch nicht ganz zu verstehen. Auch bei dem Weg ist man doch auf require angewiesen?!

Zitat:
Zitat von Armin Beitrag anzeigen
Nachtrag: Ist es nicht übersichtlicher, anstatt alles in Files zu packen mit Konstanten zu arbeiten oder zumindest alles in einen File zu packen?
Mit einer html Datei pro Template bin (wäre) ich schon ganz zu frieden. Zurzeit sogar fast schon mit einer Lösung die überhaupt funktioniert...

Gruß und Dank,

# eof
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #6  
Alt 29.05.07, 16:28
TYPO3 Forum Team
Moderator
 
Registriert seit: 01.12.05
Ort: Kiel
Alter: 38
Beiträge: 2.022
Armin eine Nachricht über ICQ schicken Armin eine Nachricht über Skype™ schicken

moin,

Typoscript-Code:
1:
Ich schein noch nicht ganz zu verstehen. Auch bei dem Weg ist man doch auf require angewiesen?! - ERROR: Line 0: Object Name String, "Ich" was not preceeded by any operator, =<>({
Ja klar, mein Fehler temp.cnav.stdWrap.required = 1 gehört natürlich mit rein.

Zitat:
Allerdings kriege ich es nicht hin das Template _um_ die Navigation zu wrappen.
Hast du ein | in das Template eingefügt wo der Inhalt rein soll?

Armin
__________________
Nichts kommt von selbst, sogar eine Dummheit muss man erst machen.

Tipps und Tricks zu TYPO3: http://typo3.intervation.de
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #7  
Alt 29.05.07, 17:34
Forum Newbie
 
Registriert seit: 17.04.07
Alter: 32
Beiträge: 13

Hey, super!

Ich wußte nicht das ich das Pipe Zeichen auch in dem Template unterbringen kann um die wrap stelle zu markieren. Ich habe die Überschrift des Kastens (in dem Template in einer h2) auch noch in das ts ausgegliedert und lasse es durch den leveltitel ersetzen. J

Das ts sieht jetzt so aus:

Typoscript-Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
temp.tplcnav = TEMPLATE
temp.tplcnav.template = FILE
temp.tplcnav.template.file = fileadmin/templates/roundnavbox.html

temp.cnav = HMENU
temp.cnav.entryLevel = 1

temp.cnav.stdWrap.outerWrap.cObject < temp.tplcnav
temp.cnav.stdWrap.required = 1

temp.cnav.1 = TMENU
temp.cnav.1 {
NO.allWrap = <li> | </li>
ACT = 1
ACT.allWrap = <li class="active"> | </li>
}
temp.cnav.1.stdWrap.prepend = TEXT
temp.cnav.1.stdWrap.prepend.wrap = <h2> | </h2>
temp.cnav.1.stdWrap.prepend.data = leveltitle:1
temp.cnav.1.wrap = <ul> | </ul>

lib.contextnav < temp.cnav

Vielen Dank für Eure Hilfe,

# eof
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #8  
Alt 29.05.07, 17:55
TYPO3 Forum Team
Moderator
 
Registriert seit: 01.12.05
Ort: Kiel
Alter: 38
Beiträge: 2.022
Armin eine Nachricht über ICQ schicken Armin eine Nachricht über Skype™ schicken

moin,

hier noch etwas zur Vertiefung mit dem Umgang von TEMPLATE

typo3.intervation.de:Tutorial:Allgemein:Flexible MARKER im Text

Armin
__________________
Nichts kommt von selbst, sogar eine Dummheit muss man erst machen.

Tipps und Tricks zu TYPO3: http://typo3.intervation.de
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
Antwort


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are An


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
leere <ul></ul> wenn kein submenü vorhanden yallayalla GMENU, HMENU, TMENU und Co. 5 04.01.08 21:57
Untermenü nur einblenden, wenn Eintrag vorhanden lobby GMENU, HMENU, TMENU und Co. 1 27.11.07 16:30
Stylesheet austauschen wenn Untermenü vorhanden Sampaguita GMENU, HMENU, TMENU und Co. 11 13.11.07 11:36
Textanzeige nur wenn Submenupunkte vorhanden DerUnsympath TYPO3 4.x Fragen und Probleme 2 10.08.06 17:05
Überschrift ersetzen wenn keine vorhanden ist vanne TYPO3 3.x Fragen und Probleme 0 15.06.05 09:15


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:08 Uhr.


Powered by vBulletin® Version 3.6.8 Patch Level 2 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0
Template-Modifikationen durch TMS