Standalone Skript mit DB-Abfrage [Gelöst]

  • ammannd ammannd
    Leonidas
    0 x
    150 Beiträge
    0 Hilfreiche Beiträge
    23. 02. 2010, 17:07

    Liebe Community

    Ich stehe gerade etwas auf der Leitung, und auch mit der Suche habe ich die Lösung nicht gefunden. Ich habe ein externes PHP-Skript, das ein paar DB-Einträge abrufen und sie formatiert zurückgeben soll (in meinem Fall als iCal Objekt). Wie kann ich aber in meinem externen Skript auf die DB-Funktionalität von Typo3 zurückgreifen?

    Klar, ich könnte mir das auch "händisch" zurechtlegen, doch wäre es ja viel schöner, wenn ich die richtigen Klassen einbinden könnte, und dann via $GLOBALS['TYPO3_DB']->exec_SELECTquery(...) meine Datensätze holen würde. Welche Klassen muss ich da einbinden und wie geht das genau?

    Danke und liebe Grüsse
    Dave


  • 1
  • ammannd ammannd
    Leonidas
    0 x
    150 Beiträge
    0 Hilfreiche Beiträge
    23. 02. 2010, 17:10

    ich bin da gerade auf das Stichwort eID gestossen... geht es womöglich damit?

  • BlackPixel BlackPixe...
    Sternenflotten-Admiral
    0 x
    230 Beiträge
    3 Hilfreiche Beiträge
    24. 02. 2010, 08:36

    Naja, eID hört sich zwar nett an, ist aber in seiner funktionialität sehr eingeschränkt. Funktionen wie $this->cObj->enableFields() müssen von Hand zusammengetragen werden. Auch ein Text durch $this->pi_RTEcssText() laufen zu lassen muss erst händisch aufgebaut werden.

    Anderer ansatzpunkt der sehr gut funktioniert ist mit typeNum.

    beispiel:
    Erstell in Deinem TS Setup folgende Struktur
    [TS]// Normale Ajax Ausgabe für Inhalte, Texte und Bilder
    nlajax = PAGE
    nlajax {
    typeNum = 3612
    config {
    disableAllHeaderCode = 1
    no_cache = 1
    additionalHeaders = Content-Type:text/html;charset=utf-8|Expires: Mon, 26 Jul 1997 05:00:00 GMT|Last-Modified: 1999 GMT|Cache-Control: no-cache|Pragma: no-cache|Cache-Control: post-check=0, pre-check=0, FALSE
    }

    10 < plugin.tx_mrnlfromttnews_pi1
    10 {
    userFunc = tx_mrnlfromttnews_pi1->main
    mode=ajax
    }
    }
    [/TS]

    Damit rufst Du einfach die main Methode deiner Klasse auf. Als Parameter übergibst Du mode = ajax.

    In Deiner pi1 machst Du eine Abfrage und verweisst auf eine bestimmte Methode die dir den Content zurückgibt:

    1. function main($content, $conf) {
    2. $this->conf = $conf;
    3. $this->init();
    4.  
    5. switch ($this->conf[mode]) {
    6. case ajax:
    7. return $this->ajxControll();
    8. break;
    9.  
    10. default:
    11. $content = $this->getContent();
    12. break;
    13. }
    14. return $this->pi_wrapInBaseClass($content);
    15. }

    So kannst Du normale Ausgaben mit dem Plugin erhalten und bei einer Anfrage ala index.php?type=3612&param1=.... nur die Inhalte für Ajax ohne Seite zurückgeben. Der Vorteil: Es steht die pibase, t3lib, cObj und alles andere in Deiner Ajaxfunktion zur Verfügung.

    TYPO3 Slider Revolution: https://www.rutschmann.biz/extensions/typo3-slider-revolution/
    TYPO3 Layerslider Extension: http://www.rutschmann.biz/extensions/typo3-layerslider/
    TYPO3 Responsive Flipbook Extension: http://www.rutschmann.biz/extensions/typo3-responsive-flipbook/
    TYPO3 PayPal Download Checkout: http://www.rutschmann.biz/extensions/typo3-paypal-download/

    http://www.rutschmann.biz/
    ----------------------------------------------------
    Extbase, Fluid, HTML & CSS Development

  • ammannd ammannd
    Leonidas
    0 x
    150 Beiträge
    0 Hilfreiche Beiträge
    25. 02. 2010, 10:53

    hm... clever! hab mal an typenum gedacht aber diese idee irgendwie wieder verworfen (warum auch immer). ich werds jetzt so umsetzen, denn das scheint mir die einfachste und beste lösung zu sein!

    vielen herzlichen dank!!

  • 1