Hallo Forum!
Ein scheinbar (!) kleines Problem...
Frage: Wie kann man dem typolink-Titel/Alttext Dynamik verleihen?
Ziel: "Sprechender" dynamischer Titel, der z.B. aus dem Titel/Desc etc. der Zielseite generiert wird.
Lösungsansatz: Laut TSref kann auf die Eigenschaft title die Function stdWrap angewandt werden. Also habe ich folgendes versucht:
typolink.title = TEXT
typolink.title.value = MyTitle
Leider funktioniert der Code nicht. (Oder liegts an der Syntax?)
Hat vielleicht jemand eine Idee, wie man das Problem löst?
Danke
einfache Zuweisung wäre
typolink.title = MyTitle
dynamisch wäre das
typolink {
parameter = 7
title.cObject=TEXT
title.cObject.field=title
}
Prima, vieln Dank!
Eine Frage noch: "parameter = 7" -- wofür steht die 7 hier?
// Nachtrag
Pardon, ich hab mich geirrt und voreilig das Thema auf "gelöst" gesetzt. Die vorgeschlagene Variante funktioniert bei mir leider nicht...
Da der Code:
tt_content.text {
10 = TEXT
10.field = bodytext
10.wrap = |
10.parseFunc {
makelinks = 1
makelinks.http.keep = path
makelinks.http.extTarget = _blank
makelinks.mailto.keep = path
tags {
link = TEXT
link {
current = 1
typolink.wrap = |
typolink.parameter.data = parameters : allParams
typolink.ATagParams = class=link_A
typolink.target = {$cLinkTagTarget}
typolink.target.if.value.data = typolink.target
typolink.target.if.isFalse.value.data
typolink.target = _top
typolink.extTarget = {$cLinkTagTarget}
typolink.extTarget.if.value.data = typolink.target
typolink.extTarget.if.isFalse.value.data
typolink.extTarget = _blank
/*
typolink.title.cObject=COA
typolink.title.cObject.10=TEXT
typolink.title.cObject.10.value=[Link]
typolink.title.cObject.20=TEXT
typolink.title.cObject.20.field=title
*/
parameter = 7
typolink.title.cObject = TEXT
typolink.title.cObject.field = title
}
}
}
}
Was mache ich falsch?
typolink.title.cObject=TEXT
typolink.title.cObject.field=uid
Wenn man anstelle von title uid schreibt, wird (unabhängig von der jeweiligen uid der Zielseite) folgendes HTML generiert:
title="5"
Wie kann man das erklären?
das parameter war nur ein Beispiel für ein Link auf Seite 7
Wie ich seh hats bei Dir ja auch funktioniert, das entscheidene ist einfach, das Du das cObject brauchst, um ein Objekt daraus zu machen.
uid ist die ID der aktuellen Seite, title eben der Titel.
Du hast ja nur die Daten der aktuellen Seite und nicht die der Zielseite. Wenns um interne Linksgeht, kannst Du sie auch aus der DB holen.
Hallo!
Tut mir leid, aber ich verstehe es nicht... (Typisch, wenn Anfänger an die Feinhaiten ran wollen. 😉 )
steffenk schriebWie ich seh hats bei Dir ja auch funktioniert,
Nö, leider nicht. Selbst da, als es "funktioniert" hatte, wurde title="5" auf der Seite mit uid 9 angezeigt.
steffenk schriebdas entscheidene ist einfach, das Du das cObject brauchst, um ein Objekt daraus zu machen.
uid ist die ID der aktuellen Seite, title eben der Titel. Du hast ja nur die Daten der aktuellen Seite und nicht die der Zielseite.
Ja, das verstehe ich. Die Frage ist nur, wie (s. Code unten) man an die uid bzw. den title (oder sonst ein Feld) ran kommt.
steffenk schriebWenns um interne Linksgeht, kannst Du sie auch aus der DB holen.
Genau, und das versuche ich die Ganze Zeit, bis jetzt ohne Erfolg.
OK, versuchen wir mal das Problem Schrittweise zu lösen:
1. uid/title/alias etc. der hard gecodeten Seite bekommen
2. uid/title/alias etc. der aktuellen Seite bekommen
3. uid/title/alias etc. der Zielseite "aus der DB holen"
Schritt 1. (Code: Zeilen 23-25)
lib.parseFunc {
makelinks = 1
makelinks.http.keep = path
makelinks.http.extTarget = _blank
makelinks.mailto.keep = path
}
lib.parseFunc.tags.link {
current = 1
typolink.target = {$cLinkTagTarget}
typolink.target.if.value.data = typolink.target
typolink.target.if.isFalse.value.data
typolink.target = _top
typolink.extTarget = {$cLinkTagTarget}
typolink.extTarget.if.value.data = typolink.target
typolink.extTarget.if.isFalse.value.data
typolink.extTarget = _blank
typolink.wrap = |
typolink.parameter.data = parameters : allParams
typolink.title = statischer-Titel
typolink.parameter = 24
typolink.title.cObject=TEXT
typolink.title.cObject.field=title
typolink.ATagParams = class=link_A
}
}
}
}
lib.parseFunc_RTE < lib.parseFunc
Was ist hier falsch?
Wie hole ich die uid und pid eines verlinken Elementes?
Ich brauche das quasi für:
<a href="index.php?id=7" rev="7">
Gruß,
Bastian