Zum Inhalt springen

realURL::encodeSpURL_doEncode - Parameter unklar

Erstellt am 6. Oktober 2006 · 3 Antworten · letzte Antwort am 21. Oktober 2006

Tags: Frage

Spyro ·

Hi Leude,

will die oben genannte Funktion in einer Ext. benutzten. In der Beschreibung steht folgendes:

	/**
	 * Transforms a query string into a speaking URL according to the configuration in ->extConf
	 *
	 * @param	string		Input query string
	 * @param	boolean		If set, the cHashCache table is used for "&cHash"
	 * @param	string		Original URL
	 * @return	string		Output Speaking URL (with as many GET parameters encoded into the URL as possible).
	 * @see encodeSpURL()
	 */
	function encodeSpURL_doEncode($inputQuery, $cHashCache=FALSE, $origUrl='')	{
.....

Kann mir jemand kurz erklären, was mit "$inputQuery" (Input query string) gemeint ist?

MfG,
Spyro

Spyro ·

So bin inzwischen weiter 🙂
Die "$inputQuery" is nichts anderes als die baseURL mit den ganzen Parametern hintendrann #paralyzed# . Wenn man den Wald vor lauter Bäumen nicht sieht...
Aber für mich ergibt sich gerade ein nächstes Problem. Wenn ich die Methode aufrufe, referenziert die Methode innerhalb der Klasse tx_realurl nochmals auf andere Methoden. Bei deren Aufruf wird aber nicht "tx_realurl::" vorne angehängt, sondern "user_meineextension::".

Konkretes Beispiel:
Ich rufe tx_realurl::encodeSpURL_doEncode() auf.
Diese wiederum referenziert auf encodeSpURL_setSequence() innerhalb tx_realurl.
Wird diese nun aufgerufen so kommt folgendes dabei heraus:

Fatal error: Call to undefined method user_meineextension::encodeSpURL_setSequence() in ../typo3conf/ext/realurl/class.tx_realurl.php on line 232.

Gibts ne Möglichkeit in PHP so ne Art namespace(á la C++) temporär zu setzten? Oder hat jemand vllt sogar einen besseren Lösungsansatz?

MfG,
Spyro

\ EDIT1:
"PHP has no namespace support, with all PHP functions sharing the same global namespace."
http://en.wikipedia.org/wiki/PHP -> Criticism
Ok, damit fällt die Option schonmal weg :-(

\ EDIT2:
Also ich bin jetzt soweit, dass ich statt der tslib_pibase einfach die tx_realurl als Mutterklasse vererbe. pi_wrapInBaseClass() einfach aus dem TYPO3-Code extrahiert und eingefügt. Jetzt muss ich sagen, dass ich wohl doch noch ein paar Dinge bei der encodeSpURL_doEncode()-Methode übersehen habe... Zumindest bekomme ich keine brauchbare Ausgabe, denn sie gibt mir genau den String zurück, den ich ihr liefere(das $inputQuery). Muss nochmal drüberschauen, was ich da falsch verstanden habe.

Spyro ·

Wieso einfach wenn es auch umständlich geht...
Gibt ne Methode der Klasse tslib_pibase mit dem schönen Namen pi_getPageLink().
Funktionsweise tslib_pibase::pi_getPageLink($pageID) und schon bekommt man zugehörigen Link sogar RealURL-encoded -.-

Anmerkung an mich selber: Das nächste mal mehr Informationen in den Thread schreiben, was ich eignetlich machen will...

Schönes Wochenende noch 🙂

Spyro