Zum Inhalt springen

Variablenübergabe Typoscript und PHP Script

Erstellt am 25. April 2006 · 9 Antworten · letzte Antwort am 27. April 2006

Tags: Frage

chokeholder ·

Hallo Zusammen!

Ich suche schon lange nach einer Lösung für folgendes Problem:

Ich brauche ein einfaches Beispiel, wie ich in Typoscript ein PHP-Script aufrufe und diesem Script einen Wert (Integer) übergebe. Danach soll mir dieses PHP-Script einen Integerwert an Typoscript übergeben, welchen ich dann dort weiterbenutzen kann (möchte mit diesem Wert in Typoscript eine Page UID aufrufen).

Hoffe ich konnte mich verständlich ausdrücken 😉.

Schon mal vielen Dank!

#---Hier wird die Random Page ID ausgelesen---
includeLibs.random_select = fileadmin/php_scripts/random_select.php
temp.info = USER
temp.info {
  userFunc =random->main
}

tempcontent.10  = CONTENT
tempcontent.10 {
table = tt_content
select { 
pidInList = temp.info #---Hier kommt die RandomPageID aus dem Script hin
orderBy = sorting 
where = colPos=0 
} 
}

lib.blauZeile2 < tempcontent.10
chokeholder ·

Danke FordPrefect!

Er gibt nun den Inhalt aus, aber leider nicht korrekt. Es scheint mir, als ob er die Angaben:

orderBy = sorting 
where = colPos=0

nicht übernimmt, da nun die Inhalte aller Spalten ausgegeben werden. Ich habe mal die Reihenfolge des "where" Ausdrucks geändert, aber leider keine Besserung.

Mir ist grade aufgefallen, dass auch wenn ich

pidInList.data = 51

per Hand setze, abwechselnd der Inhalt von Page 51 und 53 angezeigt wird, obwohl eigentlich nur 51 erscheinen sollte.

Hast du vielleicht noch so nen guten Tipp?

Gruß Chokeholder

chokeholder ·

Hi!

"pidInList = 51" liefert das korrekte Ergebnis, es wird nur die gewünschte Spalte angezeigt.

"pidInList.data = 51" und "pidInList.data = temp.info" liefern die gleichen, leider falschen Ergebnisse. Es werden alle Spalten ausgegeben, seltsamer Weise die Inhalte von PageID 51 oder 53, per Zufall (was ich nicht will), manchmal auch die Inhalte beider PageIDs untereinander. 51 und 53 haben die gleiche Parent ID 50.

Seitenbaum:

Page 50
|- Page 51
|- Page 53

Leider konnte mir dein Link nicht weiterhelfen, ich arbeite weder mit Markern noch mit Frames. Der Fehler muss in dieser select Anfrage liegen.

Das php Script macht nicht mehr als Folgendes:

$content = 51;
return $content;

Gruß Choke

chokeholder ·

Ändert leider nichts.

Seltsam ist, dass er dann die where Klausel gar nicht berücksichtigt. Der Fehler muss irgendwo anders liegen.

Wenn ich das mit pidInList.data = 51 mache, gehts ja auch nicht.
pidInList = 51 geht.

Gibts da noch anderes Varianten?

chokeholder ·

Das Problem liegt in

pidInList.data = xyz

auch wenn ich zB:
pidInList.data= 30
schreibe, kommt abwechselnd der ganze Content von Page 51 oder 53, auch wenn sonst nichts anderes im Template dazu steht.

Warum klappt es bei bei
pidInList= 30 (ohne .data) ???

Das kann doch nicht sein

FordPrefect ·

Hi,

den Snippet hab ich mal im netz gefunden:

select.pidInList = PHP_SCRIPT_EXT
select.pidInList.value = media/scripts/random_content.php

oder

select.pidInList = PHP_SCRIPT_EXT
select.pidInList.data = media/scripts/random_content.php

Gruss

ford

chokeholder ·

Hallo!

Nachdem ich das Problem nicht lösen konnte, habe ich das PHP Script direkt als Content Element gemacht. Problem jetzt: Ich muss den Content nun per Hand (besser gesagt das PHP Script tut dies) formatieren, aber immerhin habe ich so erreicht was ich will. Oder gibts einen Weg in einem PHP Script die Rendering Engine für die Contentspalte von Typo3 zu nutzen!

Vielen Dank!!!