ich benötige hilfe bei folgendem problem:
ich möchte das ergebnis eines sql-selects in einer ts-variablen ablegen.
die abfrage würde normal so aussehen:
SELECT uid FROM pages WHERE pid=15 ORDER BY sorting LIMIT 1
das ergebnis ist eine einzelne int und soll so übergeben werden:
temp.MenuLinks2.special.value = ergebnisDerSQLabfrage
ich steh aufm schlauch. hat jemand ne idee?
Moin,
per stdWarap und RECORDS sollte es gehen.
Armin
ich will nicht gierig oder undankbar wirken, aber ich benötige ein kleines beispiel (ist schließlich die anfängerrubrik ;-)
ich hatte mit folgendem experimentiert:
# DIESER TEIL SOLL DIE ABFRAGE DARSTELLEN
temp.testdaten2 = CONTENT
temp.testdaten2 {
table = pages
select {
where = pid = 15
max = 1
}
}
# DIESE ZEILE SOLL DAS ABFRAGEERGEBNIS ÜBERGEBEN
temp.MenuLinks2.special.value.data = temp.testdaten2
hab ich aus der tsRef und n bischen angepaßt. da ist zumindest schon mal n select drin. aber das klappt nicht...
kannst ja damit mal ein bisschen rumprobieren 🙂
temp.BEISPIEL = COA
temp.BEISPIEL {
5 = CONTENT
5 {
table = tt_content
select.orderBy = sorting
select.pidInList = 15
select.max =1
#select.andWhere =
}
#5.renderObj.stdWrap.wrap = hier wird gewrapt|
5.renderObj = TEXT
5.renderObj.field = uid
}
page.5 < temp.BEISPIEL
#temp.MenuLinks2.special.value <temp.RAND
Hier wird ein kompletter Datensatz aus der DB geholt und die UID in ein Textfeld geschrieben, die ausgabe zu page.5 klappt, ob du sie so in dein MenuObjekt bekommst musst mal probieren, ansonsten, halt wie Armin schon sagte, mal mit dem auskommentierten wrap weiterprobieren...
Guten Morgen,
ich hätte folgenden Vorschlag anzubieten:
temp.menu = COA
temp.menu {
10 = LOAD_REGISTER
10.specialUID.cObject = CONTENT
10.specialUID.cObject {
table = tt_content
select {
pidInList = 15
orderBy = sorting
max = 1
where = (NOT hidden) AND (NOT deleted)
}
renderObj = TEXT
renderObj.field = uid
}
20 = HMENU
20.special.value.data = register:specialUID
...
}
Da ich den nicht getestet habe, lege ich auch nicht meine Hand dafür ins Feuer. Aber in diese Kombination aus LOAD_REGISTER und CONTENT verwende ich häufiger.
hallo nochmal,
erstmal vielen dank für die antworten. leider hats bislang noch nicht geholfen. trotzdem bin ich etwas weiter:
verzeichnis = CONTENT
verzeichnis {
table = pages
select {
pidInList.data = TSFE : id
orderBy = sorting
max = 1
selectFields = uid
}
}
diese abfrage liefert als ergebnis die id der ersten unterseite der ausgewählten seite. wenn ich das ergebnis als text rendere und ausgebe, kann ich sehen, daß die richtige id ermittelt wird.
diese id möchte ich als special.value für ein menü verwenden. das rendern des ergebnisses laß ich deshalb weg, weil ich die ungerenderte id nur als zwischenergebnis benötige und gar nicht ausgeben will.
mein problem ist jetzt: wie übergebe ich das abfrageergebnis an special.value?
menuLinks = HMENU
menuLinks.special = directory
menuLinks.special.value = 9
...
das funktioniert. ich suche nun eine möglichkeit die ungefähr so aussieht:
menuLinks = HMENU
menuLinks.special = directory
menuLinks.special.value = verzeichnis
...
das funktioniert aber leider nicht. und auch dies hier liefert nicht das gewünschte ergebnis:
menuLinks = HMENU
menuLinks.special = directory
menuLinks.special.value.data = verzeichnis
...
hat jemand eine idee??
*nix kapier, wie ochs vorm berg steh*
Hi,
in der TSRef ist HMENU.special.value als "list of page-uid's /stdWrap" dokumentiert. Also müsstest du doch stdWrap benutzen können (nicht ausprobiert, keine Gewähr...):
menuLinks = HMENU
menuLinks.special = directory
menuLinks.special {
value.stdWrap.cObject = CONTENT
value.stdWrap.cObject {
table = pages
select {
pidInList.data = TSFE:id
orderBy = sorting
max = 1
selectFields = uid
}
}
}
Sag mal kurz Bescheid, ob das geht. Danke!
Tosta.
Ergänzung: Folgendes hab ich gerade erfolgreich ausprobiert:
20 = HMENU
20 {
special = directory
special.value.cObject = TEXT
special.value.cObject {
value = 175
}
1 = TMENU
1 {
noBlur = 1
wrap (
<div id="left_navi" style="background-color: yellow">
|
</div>
)
NO = 1
}
}
Das klappt: Es wird mir ein Menü der Unterseiten von Seite 175 gezeigt (hier zum Testen schön auffällig in Gelb). Statt eines TEXT-Elements kannst du dann auch dein CONTENT-Element benutzen.
Grundsätzlicher Tip: TS-Elemente immer in der TSRef nachschlagen und Typ prüfen: stdWrap bedeutet immer: alles ist möglich!
Tosta.
hallo toaster,
vielen dank für die hilfe, sieht auf den ersten blick toll aus. kann es leider erst am montag ausprobieren. bitte geduld...
gruß
smind