Zum Inhalt springen

CoolUri - fehler nach Update

Erstellt am 13. April 2009 · 5 Antworten · letzte Antwort am 14. Mai 2009

Tags: Frage

Akifsahin ·

Moin leuts,
hat jemand ne Idee zu folgendem Problem?

Nach dem letzten Update von CoolUri hab ich die neuste Version hochgeladen, meine XML Datei angepasst, und erhalte nur beim Aufruf der Hauptdomain folgende Fehlermeldung:

Warning: Invalid argument supplied for foreach() in /html/typo3conf/ext/cooluri/class.tx_cooluri.php on line 424

Warning: implode() [function.implode]: Invalid arguments passed in /html/typo3conf/ext/cooluri/class.tx_cooluri.php on line 425

Alles andere funktioniert einwandfrei. Irgendwas scheint faul zu sein, aber wirklich verstehen tue ich diese Implode - Geschichte nicht.

Guitar ·

Das gleiche Problem trat bei mir auf, nachdem ich eine lokale TYPO3-Installation in einen "Virtual Host" beim Apache2 unter Ubuntu "umgewandelt" hatte. Das Problem tritt nur auf der Startseite auf,und nur, wenn man die Domain direkt aufruft. Wenn ich hingegen die Seite über http://domain.de/startseite/ aufrufe, funktioniert alles. Auch bei den Unterseiten tritt keine Fehlermeldung auf.

Irgendjemand eine Idee?

Gruß
Wolfgang

Akifsahin ·

Moin,
so habe soeben mit Jan Bednarik, dem Programmierer austauschen können. Es handelt sich um einen Bug der bereits in der SVN - Version von CoolUri behoben ist. In kürze soll es ein Update auf Typo3.org zum download geben, wo dieser Fehler behoben ist.

Also bissl geduld.

drcho ·

Ich hab das gleiche Problem gehabt (coolURI v1.0.16). Eine kleine Änderung in der Datei class.tx_cooluri.php führt bei mir zur Lösung des Problems. Es liegt an der Funktion extractArraysFromParams, Zeile 421 ff. Derzeit sieht die Funktion so aus:

function extractArraysFromParams($params) {
  	// turn array back into query string
  	// so it can be used with parse_str
  	foreach ($params as $k=>$v) $params[$k] = $k.'='.$v;
	$qs = implode('&',$params);
  	parse_str($qs,$output);
  	return $output;
}

Wenn aber die Domain ohne Parameter (www.example.com) aufgerufen wird, ist $params leer, was die Fehlermeldung hervorruft. Hier der geänderte Code, der das Problem auflöst:

function extractArraysFromParams($params) {
  	// turn array back into query string
  	// so it can be used with parse_str
  	if (is_array($params)) {
  		foreach ($params as $k=>$v) $params[$k] = $k.'='.$v;
		$qs = implode('&',$params);
  		parse_str($qs,$output);
  	}
  	else {
  		$output = NULL;
  	}
  	return $output;
  }

Hoffe damit weiter geholfen zu haben.