GET Operation bei selbstgeschriebenem AddOn

GeorgeS

Bekanntes Mitglied
Lizenzinhaber
Registriert
13. Jan. 2014
Beiträge
234
Punkte
68
Hallo,


wie es aussieht, unterstützt XenForo bei selbstgeschriebenen AddOns keine GET-Operationen?

Code:
meineseite.de/index.php?pages/myaddon

sei die URL, um mein Addon aufzurufen. Dahinter steht dann das in den Elementen definierte php Script. Ich arbeite viel mit Formularen, und rufe zur Bearbeitung eben immer wieder das definierte Script auf. Das funktioniert auch ohne Probleme.

Jetzt will ich aber auch GET Operationen verwenden, d.h. die Parameter in der URL übergeben. Parameter werden durch "?" von der eigentlichen URL getrennt, aber der Aufruf hat ja schon einen Parameter, nämlich "pages/myaddon". Weitere Parameter werden dann durch "&" getrennt, also

Code:
meineseite.de/index.php?pages/myaddon&p1

Ich würde jetzt erwarten, dass $_GET irgendwelche Inhalte hat, das ist aber nicht der Fall, $_GET ist leer. Scheinbar "verfrühstückt" XenForo die in der URL übergebenen Parameter und reicht sie nicht weiter.

Aber ich war ja mit meinen Ideen noch nicht am Ende. Die Scripte finden sich in /myaddon. Also habe ich ein Script /myaddon/abc.php erzeugt und versucht, das aufzurufen:

Code:
meineseite.de/myaddon/abc.php

Kommentar von XenForo: Seite nicht gefunden

Das war der Moment, wo ich mich entschied, hier mal nachzufragen.
 
Doch tut XenForo nur werden alle Parameter sei es $_GET oder $_POST von XenForo lapidar gesagt verarbeitet/geprüft etc und dann geleert

Code:
 $DeinParameter = $this->_input->filterSingle('HIERDEINPARAMETER', XenForo_Input::UINT);

So besorgst Du Dir in Deinem Script die Daten.
 
Zuletzt bearbeitet von einem Moderator:
Hallo, au lait -


ich habe das mal so ausprobiert:

Code:
  XenForo_Autoloader::getInstance()->setupAutoloader($fileDir . '/library');
  XenForo_Application::set('page_start_time', $startTime);
  XenForo_Session::startPublicSession();
  $meinParameter = $this->_input->filterSingle('p1', XenForo_Input::UINT);

und diese Fehlermeldung bekommen:

Fatal Error: Using $this when not in object context
 
DIES ist das richtige in Deinem Fall

Code:
$fileDir = dirname(__FILE__);
require($fileDir . '/library/XenForo/Autoloader.php');
XenForo_Autoloader::getInstance()->setupAutoloader($fileDir . '/library');
$input = new XenForo_Input(new Zend_Controller_Request_Http());
$id = $input->filterSingle('id', XenForo_Input::UINT);

print $id;
exit;
 
Hallo,


der "require" führt zu einer Fehlermeldung "Cannot redeclare class xenforo_autoloader", also habe ich das weggelassen.

Da mein Parameter ein String ist, habe ich die Anforderung in

Code:
  $id = $input->filterSingle('p1', XenForo_Input::STRING);

geändert, und nun geht es.

Vielen Dank für Deine schnelle Hilfe!
 
Zurück
Oben