• Es ist bereits Apfeltalk-Tradition und wir möchten sie auch in diesem Jahr fortsetzen: Unser Apfeltalk-Weihnachtslogo-Wettbewerb hat begonnen! Gestaltet für uns das Weihnachtsbanner, das im Monat Dezember bis zum Weihnachtsfest unsere Webseite schmücken soll. Lasst Eurer Kreativität freien Lauf! Hier geht es zum Wettbewerb --> Klick
  • November - das bedeutet oftmals Herbstblues, grauer Himmel, Tristesse und Wetter, bei dem man gern im Warmen bleibt. Aber nur oftmals! Wir fordern Euch gern auf, gegen den Herbstblues anzukämpfen und hoffen, dabei hilft Euch unser aktuelles Monatsthema. Neugierig geworden? --> Zum Mitmachen bitte hier klicken

[TYPO3] Bestimmten Wert mittels Typoscript aus Datenbank auslesen

ffleige

Auralia
Registriert
10.05.05
Beiträge
203
Hallo,

ich stehe mal wieder vor einem kleinen, aber lästigen Problem bei Typo3.

Ich möchte aus einer Datenbanktabelle einen bestimmten Wert durch Typoscript auslesen lassen, z. B. durch folgendes Konstrukt:

Code:
page.10.marks.PAGETITLE = TEXT
page.10.marks.PAGETITLE {
  data = DB : tx_pisprojectlist_project : 1 : projecttitle
}

Das funktioniert auch wunderbar! Aber jetzt möchte ich Dynamik in die ganze Sache hereinbringen. Die statische UID soll durch einen dynamischen Wert eines Parameters (P) ersetzt werden. Also in etwa so:

Code:
page.10.marks.PAGETITLE = TEXT
page.10.marks.PAGETITLE {
  data = DB : tx_pisprojectlist_project : {GPvar:P} : projecttitle
  insertData = 1
}

Das funktioniert jetzt leider nicht mehr. :-(
Der Zugriff auf den Parameter klappt eingentlich (habe ihn mir mittels "value" einmal ausgeben lassen), aber halt nicht im Kontext mit der "data"-Anweisung.

Kenn jemand eine Lösung für dieses Problem oder eine Alternative?
Vielen Dank schon mal für eure Hilfe! :-)

Viele Grüße
Frank
 
Gelöst durch User-Function

Hallo,

habe das Problem mit Hilfe einer User-Function gelöst:

TypoScript-Code (Auszug):
Code:
# Binde die benötigte Klasse ein
includeLibs.tx_pisprojectlist_pi1 = EXT:pisprojectlist/pi1/class.tx_pisprojectlist_pi1.php

page.10.marks.PAGETITLE = USER_INT
page.10.marks.PAGETITLE {
  userFunc = tx_pisprojectlist_pi1->getProjecttitle
}

PHP-Code (Auszug aus class.tx_pisprojectlist_pi1.php):
Code:
function getProjecttitle($content,$conf)
{
  if (!isset($_GET["P"])) return $content; 
  return $content . current($GLOBALS['TYPO3_DB']->sql_fetch_row($GLOBALS['TYPO3_DB']->exec_SELECTquery("pisprojecttitle","tx_pisprojectlist_project","uid=" . $_GET["P"])));
}


Aber vielleicht hat jemand trotzdem eine Idee, wie man so etwas "eleganter" lösen kann. :-)

Viele Grüße
Frank