Zum Inhalt springen

Anfängerfrage: (Wie) PHP-VARIABLEN im TS-Code DIREKT ansprechbar?

Erstellt am 20. Oktober 2006 · 3 Antworten · letzte Antwort am 4. November 2006

Tags: PHP, Frage

refalo ·

Dies könnte eine Anfängerfrage sein (Sorry im Voraus! :o ):

Ich weiß natürlich, dass und wie man(zumindest prinzipiell) TS-Variablen im PHP-Code ansprechen kann. 😉

Ich möchte aber jetzt genau ANDERSHERUM EINE PHP-VARIABLE (meinetwegen gern auch mit der Einschränkung, dass es ein globales PHP-Array bestimmter Bauart sein muss oder so ...!) in meinem Typoscript-Code (genauer Setup-Bereich) ansprechen. Ich will nur ca. folgendes machen:

MARKER = PHP-Variable

Die PHP-Variable ist jeweils mit einem Stringinhalt (genauer Link-Tag samt URL, Parameter usw...) gefüllt, der von meiner PHP-Extension ständig aktualisiert wird. Die "TS-Zuweisung" würde dann den Marker entsprechend neu belegen /aktualisieren.

Eigentlich müsste das doch "irgendwie" gehen, da sich hinter TS-Code ja in Wirklichkeit nur PHP-Array-Belegung verbirgt...!?

Danke für Hilfe und Gruß refalo.

refalo ·

Ok. Wie üblich selbst gelöst. Im Grunde hatte ich mir die Antwort schon fast selbst präsentiert ( :o ):

Im TS-Code (kleine Syntaxfehler OHNE GEWÄHR! ):

MARKER = COA
MARKER{
  10 = TEXT
  10.dataWrap = { global : ownKey }
}

Im PHP-Code (Das globale Array $GLOBALS muss ja nicht deklariert werden!) :

$GLOBALS['ownKey'] = 'ownPrefix'.time().'ownPostFix'  ( Beispielsweise! )

Siehe auch hier:
#476352

Und tschüss. 8-)
[/url]

martin_md ·

Wenn Du weist, wie man im PHP-Code die TS-Variablen ansprechen kann (und zwar konkret die Uid des ausgegeben Elementes), könntest Du mich bitte in diese Kunst einweisen?

Danke und Gruß
Martin

refalo ·

@martin_md:

In Deinem TS-Code (siehe folgendes Bsp.) hast Du z.B. eine Variable 'testUid',
die Du in Deiner Extension 'myExtension' von PHP ansprechen möchtest:

...

plugin.tx_myExtension_pi1{
   
   ...
   
   testUid = 4711
   
   ...
}

...

Deine (Haupt-)Extension-Klasse (PHP-Datei!) sieht dann am Anfang etwa so aus:

...
require_once(PATH_tslib.'class.tslib_pibase.php');
...

class tx_myExtension extends tslib_pibase {
   
   ...
   
   var ...
   var $conf;
   ...

   function main($content,$conf){
      
      ...
      
      $this->conf = $conf;
      
      ...
      ... = $this->conf['testUid'];
      ...
      
   }
   
   ...
}

...

Hilft Dir das schon mal ein bißchen weiter? 😉

Gruß refalo.