Hallo,
ich habe eine Extension die mittels ExtBase und Fluid erstellt wurde.
Wie kann ich mit ExtBase POST oder GET Parameter holen / auslesen?
Bei der pibase-Extension früher hat man ja immer t3lib_div::_GP('irgendwas') verwendet.
Gibt es denn was spezielles für ExtBase um das zu erledigen?
Hallo
Mit
$this->request->getArguments();
bzw.
$this->request->getArgument('variable');
kannst du die Parameter abfragen.
Google hilft --> http://wiki.typo3.org/Extbase_HowTos#Accessing_GET.2FPOST_vars
Mit
$this->request->hasArgument('variable')
kannst du zudem überprüfen ob die Variable gesetzt wurde.
Gruss Marc
HM, okay. Danke. Das ja schonmal gut zu wissen. Aber wie verhält es sich mit normalen Links ohne prefix. Also show=test anstelle von tx_myextension_pi1[show]=test. Da dann einfach t3lib_div::_GP('show') verwenden?
Hallo besucher,
Da in Extbase ja immer eine Action angesprungen wird, kannst Du in Deiner Action die Parameter als Argumente übergeben.
Bsp:
Extensionname: Besucher
Pluginname: Hilfe
Parametername: Fragen (nehmen wir an, es sind mehrere, also ein Array)
Spezielle Variable: Frage1
dann sieht deine Action so aus:
class Tx_Besucher_Controller_HilfeController extends Tx_Extbase_MVC_Controller_ActionController {
public function indexAction($fragen) {
$frage1 = $fragen['frage1'];
}
}
Aufpassen musst du dann natürlich bei der Übergabe der Parameter:
http://www.deineseite.de/fragenkatalog/index.php&tx_besucher_hilfe[fragen][frage1]=BekloppteFrage
Ist jetzt alles aus dem Kopf, wenn was falsch ist, bitte melden, dann korrigier ich es.
Gruß Sven
ps: Bevor Du hier bei jeder Frage ein Thema aufmachst, suche Dir bitte auch ein Tutorial 😉
Hallo, danke für die Antwort aber das war jetzt nicht sehr hilfreich. Ich weiß schon das eigentlich immer ein Controller-/Action Kombination aufgerufen wird. Aber in einem Fall möchte ich das halt nicht. Das benutze ich einfach einen normalen Link:
<f:link.page pageUid="123" additionalParams="{foo:bar}">
Klick mich!
</f:link.page>
Dieser Link sieht dann so aus:
DOMAIN/index.php?id=123&foo=bar
Es wird nun auf die Seite 123 umgeleitet und dort nun der Strandard Controller-/Action Kombinatin aufgerufen. Wie kann denn nun aber in meiner Action den Parameter foo auslesen? Es gibt ja $this->request->getArgument('variable'). Geht das denn für alle Links: tx_myext_pi1[foo]=bar und foo=bar?
Wenn wir Dir helfen sollen, sind Aussagen wie "das möchte ich halt nicht" auch wenig hilfreich.
getArgument('variable') ist nur bei "tx_myext_pi1[variable]=bar" einsetzbar. Da Du den Link ja selbst erstellst, kannst Du den Parameter doch anpassen, oder? Wenn Du den Link nicht anpassen kannst (weil es z.B. von außen kommt), dann müsste ich jetzt erst selbst suchen, wie man das macht. Dafür habe ich aber grad keine Zeit, denn ich antworte hier in dem Forum in meiner Freizeit und wenn man sich hier Mühe macht auf Fragen eine Antwort zu finden, die dann auch noch im Sinne der Extbase-Entwickler ist, als Antwort dann aber "das war jetzt nicht sehr hilfreich" bekommt, dann vergeht einem echt die Lust zu helfen.
Das mal nebenbei.
b2t: wenn du den Link mit Fluid erstellst und auf der Zielseite mit Extbase arbeitest, ist meine vorgestellt Lösung die sauberste und auch bei Dir ohne Probleme einsetzbar.
So, jetzt hab ich aber doch nochmal das request-Objekt debugt und da finde ich keine "unsauberen" Parameter. Ich würde dann wahrscheinlich auf die pibase-Methode zurückgreifen, aber ich betone nochmal (auch für andere, die das Problem haben), ich halte es NICHT für sauber!
Es gibt aber Situationen, in denen die POST-Daten von extern kommen. Ich sitze z.B. gerade daran, die Paypal-IPN-Daten zu verarbeiten. Ich frage mich daher gerade, ob es eine Möglichkeit gibt, sauber auf POST-Daten zuzugreifen. Sauber im Sinne von "TYPO3 hat sich bereits um das Ausmerzen von Angriffen gekümmert und lässt nur vernünftige daten durch". Ansonsten kann man natürlich auch jederzeit auf die superglobale $_POST-Variable zugreifen.
Hallo Zusammen
Weiss jemand von euch den Namespace und den Namen von t3lib_div::GP('param') bei Typo3 6.1? Ich finde nirgends eine Liste welche Funktion neu wie heisst bei T3 6.1.
Gruss
Hab's grad selbst gefunden. Wer Schreibfehlerfrei Googlen kann ist klar im Vorteil ;-).
https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/Index.html