1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

[TYPO3] Bestimmten Wert mittels Typoscript aus Datenbank auslesen

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von ffleige, 15.01.07.

  1. ffleige

    ffleige Auralia

    Dabei seit:
    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
     
  2. ffleige

    ffleige Auralia

    Dabei seit:
    10.05.05
    Beiträge:
    203
    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
     

Diese Seite empfehlen