Hallo,
bin gerade dabei mich in Typo3 einzuarbeiten und eine Seite zu Erstellen. Problematik dabei: Ich möchte ein Textmenü erstellen, das in der zweiten Ebene ansetzt (Soweit kein Problem) und einen Anrisstext des jew. verlinkten Inhaltes beinhaltet. Der Anrisstext soll dabei nicht automatisch erstellt werden, sondern aus dem sonst ungenutzen Border-Inhaltselement stammen. So sollte das ganze dann später in HTML aussehen:
<ul>
<li>
<h2>Ich bin Menüpunkt 1</h2>
Ich bin der Anrisstext von MP1
<a href="link">mehr...</a>
</li>
<li class="active">
<h2>Ich bin Menüpunkt 2</h2>
Ich bin der Anrisstext von MP2
<a href="link">mehr...</a>
</li>
<li>
<h2>Ich bin Menüpunkt 3</h2>
Ich bin der Anrisstext von MP3
<a href="link">mehr...</a>
</li>
</ul>
Was ich bisher hinbekommen habe ist den Anrisstext aus den Feldern des Page-Records auszulesen, also z.B. aus dem Subtitle. Ich würde aber gerne den Anrisstext aus einem Inhaltsblock auslesen. Z.B. dem Rightborder. Hier mal mein letzter Versuch in der Sache:
# Submenü
marks.SUB_MENU = HMENU
marks.SUB_MENU {
entryLevel=1
1 = TMENU
1 {
wrap=<ul>|</ul>
NO = 1
NO {
ANRISS = CONTENT
ANRISS {
table = tt_content
select {
where = colPos = 3 AND pid = {field:pid}
orderBy = sorting
languageField = sys_language_uid
}
}
allWrap = <li id="item{field:uid}"><h2>{field:title}</h2> {ANRISS} |</li>
allWrap.insertData = 1
stdWrap.data = str :
stdWrap.wrap = mehr...
#stdWrap = mehr
}
ACT = 1
ACT {
ANRISS = CONTENT
ANRISS {
table = tt_content
select {
where = colPos = 3 AND uid = {field:uid}
orderBy = sorting
languageField = sys_language_uid
}
}
allWrap = <li id="item{field:uid}" class="aktiv"><h2>{field:title}</h2> {ANRISS} |</li>
allWrap.insertData = 1
stdWrap.data = str :
stdWrap.wrap = mehr...
#stdWrap = mehr
}
SPC=1
}
}
und hier der funktionierende Versuch mit dem Subtitle:
marks.SUB_MENU = HMENU
marks.SUB_MENU {
entryLevel=1
1 = TMENU
1 {
wrap=<ul>|</ul>
NO = 1
NO {
allWrap = <li id="item{field:uid}"><h2>{field:title}</h2> {field:subtitle} |</li>
allWrap.insertData = 1
stdWrap.data = str :
stdWrap.wrap = mehr...
#stdWrap = mehr
}
ACT = 1
ACT {
allWrap = <li id="item{field:uid}" class="aktiv"><h2>{field:title}</h2> {field:subtitle} |</li>
allWrap.insertData = 1
stdWrap.data = str :
stdWrap.wrap = mehr...
#stdWrap = mehr
}
SPC=1
}
}
Ich hoffe irgendjemand kann mich hier auf den richtigen Weg bringen, danke.
Christian
Hallo.
Warum willst Du unbedingt aus der Borderspalte den Inhalt nehmen? Wenn die Texte eh manuell gepflegt werden, dann wäre doch die Verwendung der Metafelder der Page sinnig (zumal sie ja eben z.B. als Abstract genau den Zweck haben, eien Seite kurz zu beschreiben). Auf die Inhalte kannst Du dann via TS recht einfach zugreifen, da der Datensatz eh schon in Bearbeitung ist.
Viele Grüße
Julian
Hallo Julian,
ich wollte den Inhalt aus der Borderspalte aus zwei Gründen nehmen:
1. Weil er noch nicht benutzt ist :-)
2. Weil ich hierfür den RTE nutzen kann, wenn ich den RTE auch für die Metadaten nutzen kann, wäre das eine alternative. Es soll für den Benutzer zumindest möglich sein in die Übersicht ein kleine Bild mit einzubinden.
Grüße
Christian [/quote]
Hallo Christian.
Bin gerade im Moment an einer sehr ähnlichen Navigation :-)
Der Schlüssel dürfte stdWrap bzw. davon die override-Eigenschaft sein. Auf diese Weise bekommen wir ein cObject ins Menü. Und was wir mit dem cObject anstellen, das ist unsere Sache (z.B. Dein ANRISS=CONTENT...).
Viele Grüße
Julian
Juhu, ich bin etwas weiter aber stoße als Typo3-Neuling doch direkt an die nächste Wand. Ich habe das ganze nun mit folgendem Code bewerkstelligt:
marks.SUB_MENU = HMENU
marks.SUB_MENU {
entryLevel=1
1 = TMENU
1 {
wrap=<ul class="submenue">|</ul>
NO = 1
NO {
allWrap = <li id="item{field:uid}"><h2>{field:title}</h2><span class="hide"> |<br class="clear" /></span></li>
allWrap.insertData = 1
stdWrap.data = str :
stdWrap.wrap = mehr...
stdWrap.prepend = CONTENT
stdWrap.prepend {
table = tt_content
select {
pidInList.field = uid
max = 1
where = colPos = 3
}
}
}
ACT = 1
ACT {
allWrap = <li id="item{field:uid}" class="aktiv"><h2>{field:title}</h2><span class="hide"> |<br class="clear" /></span></li>
allWrap.insertData = 1
stdWrap.data = str :
stdWrap.wrap = mehr...
stdWrap.typolink
stdWrap.prepend = CONTENT
stdWrap.prepend {
table = tt_content
select {
pidInList.field = uid
max = 1
where = colPos = 3
}
}
}
SPC=1
}
}
Funktioniert auch alles ganz super, nur, dass mein "mehr..." nicht mehr verlinkt ist, wenn ich bei einem Menüpunkt Anrisstext in der Borderspalte habe.
Vielleicht hat hier einer der Profis noch eine Idee?
grüße
Christian
Hat's das TS etwas zerhauen, oder steht das bei Dir wirklich so?
stdWrap.data = str :
stdWrap.wrap = mehr...
stdWrap.typolink
Die Zeile 1 und 3 irritieren mich etwas, da sie nicht korrektes TS sind.
Viele Grüße
Julian
Julian.Hofmann schrieb
Die Zeile 1 und 3 irritieren mich etwas, da sie nicht korrektes TS sind.
Oh, die Zeile 3 sollte wirklich nicht so sein, das ist ein Überbleibsel vom vorherigen Testen.
Zeilen 1+2 Hab ich mir "irgendwie" ergoogelt und waren bis dahin die einzigste Möglichkeit den Linktext durch das Wort "mehr..." zu ersetzen und nicht zu ergänzen. Ohne die erste Zeile funktionierte das ganze nicht.
Zwecks des mehr-Links:
Eine Möglichkeit wäre, dass Du als prepend-Objekt ein COA nimmst, und daran dann einen TEXT samt Link anhängst.
stdWrap.prepend = COA
stdWrap.prepend.10 = CONTENT
stdWrap.prepend.10 {
table = tt_content
select {
pidInList.field = uid
max = 1
where = colPos = 3
}
}
stdWrap.prepend.20 = TEXT
stdWrap.prepend.20.value = mehr...
stdWrap.prepend.20.typolink.parameter.field = uid
Hallo,
dank Deiner Tipps hat bei mir nun alles geklappt, Danke. Hier nochmal mein ganzes TypoScript zur Dokumentation. Kann man evtl. auch noch sauberer hinbekommen aber ich bin für den Anfang ganz zufrieden mit mir:
# Submenü
marks.SUB_MENU = HMENU
marks.SUB_MENU {
entryLevel=1
1 = TMENU
1 {
wrap=<ul class="submenue">|</ul>
NO = 1
NO {
allWrap = <li id="item{field:uid}"><h2>{field:title}</h2><span class="hide"> |<br class="clear" /></span></li>
allWrap.insertData = 1
stdWrap.data = str :
stdWrap.wrap =
stdWrap.prepend = COA
stdWrap.prepend.10 = CONTENT
stdWrap.prepend.10 {
table = tt_content
select {
pidInList.field = uid
max = 1
where = colPos = 3
}
}
stdWrap.prepend.20 = TEXT
stdWrap.prepend.20.value = mehr...
stdWrap.prepend.20.typolink.parameter.field = uid
}
ACT = 1
ACT {
allWrap = <li id="item{field:uid}" class="aktiv"><h2>{field:title}</h2><span class="hide"> |<br class="clear" /></span></li>
allWrap.insertData = 1
stdWrap.data = str :
stdWrap.wrap =
stdWrap.prepend = COA
stdWrap.prepend.10 = CONTENT
stdWrap.prepend.10 {
table = tt_content
select {
pidInList.field = uid
max = 1
where = colPos = 3
}
}
stdWrap.prepend.20 = TEXT
stdWrap.prepend.20.value = mehr...
stdWrap.prepend.20.typolink.parameter.field = uid
}
SPC=1
}
}