Piwik 1.7 Fehler bei "Alle Webseiten"


#1

Hallo,

ich habe mit der neusten Version nun das Problem, wenn ich die Statistikübersicht eines Tages von eienr Webseite offen hab und auf “Alle Webseiten” klicke, einen Fehler bekomme.


Url: index.php?module=MultiSites&action=index&idSite=1&period=day&date=yesterday

"Das Datumsformat muss YYYY-MM-DD, or 'today' or 'yesterday' oder eine andere, von der Funktion strtotime unterstützte Zeichenkette sein. (Besuchen Sie http://php.net/strtotime für nähere Informationen)"

#0 /var/www/vhosts/*/httpdocs/st/core/Archive.php(228): Piwik_Date::factory('Object id #175')
#1 /var/www/vhosts/*/httpdocs/st/core/Archive/Array/IndexedBySite.php(36): Piwik_Archive::build('1', 'day', 'Object id #175', Object(Piwik_Segment))
#2 /var/www/vhosts/*/httpdocs/st/core/Archive.php(199): Piwik_Archive_Array_IndexedBySite->__construct(Array, 'day', 'Object id #175', Object(Piwik_Segment))
#3 /var/www/vhosts/*/httpdocs/st/plugins/MultiSites/API.php(136): Piwik_Archive::build('all', 'day', 'Object id #175', false)
#4 /var/www/vhosts/*/httpdocs/st/plugins/MultiSites/Controller.php(58): Piwik_MultiSites_API->getAll('day', '2012-02-15', false)
#5 /var/www/vhosts/*/httpdocs/st/plugins/MultiSites/Controller.php(36): Piwik_MultiSites_Controller->getSitesInfo()
#6 [internal function]: Piwik_MultiSites_Controller->index()
#7 /var/www/vhosts/*/httpdocs/st/core/FrontController.php(138): call_user_func_array(Array, Array)
#8 /var/www/vhosts/*/httpdocs/st/index.php(53): Piwik_FrontController->dispatch()
#9 {main}

Ich kann somit nicht mehr so ohne weiteres auf die Übersicht aller Webseiten wechseln.
Hat jemand ein ähnliches Problem oder gar eine Lösung?

Gruß


#2

Wenn ich das richtig sehe ist im Plugin MultiSites in der Datei API.php ein Fehler in Zeile 133 (plugins/MultiSites/API.php)


$strLastDate = (string)Piwik_Period_Range::removePeriod($period, Piwik_Date::factory($date), $n = 1);

Es handelt sich hier um ein Objekt, dass man nicht als String umwandeln kann.
Nimmt man den String weg funktioniert alles.


$strLastDate = Piwik_Period_Range::removePeriod($period, Piwik_Date::factory($date), $n = 1);


#3

Mhn, so wies aussieht wird aber ein String erwartet. Wer weiß wie es sich auf nachfolgende Anweisungen auswirkt. Ich hab es aufjedenfall mal reported, mal schaun was kommt …

Ticket:

Hast du auch diesen Fehler?


#4

Es wird zwar ein String erwartet, aber man kann nicht das Object in einen String umwandeln. Das was man dann bekommt in ein String der sagt “Object ID # 186”.

Ich hatte den Fehler und ich habe genau diese Änderung vorgenommen. Danach ist der Fehler verschwunden.

Auch wenn ich hier neu bin, aber das ist der Fehler und an dieser Stelle die Lösung.


(Peterbo) #5

Hallo,

ist eine PHP-Version <5.2 im Einsatz? Hier wäre das Problem, dass der (string)-Typecast nicht die magische __toString()-Methode aufruft. Das machen nur echo und printf, etc.

Falls das der Fall ist, bitte einmal Zeile 133 der /plugins/MultiSites/API.php durch folgenden Code ersetzen:


$strLastDate = Piwik_Period_Range::removePeriod($period, Piwik_Date::factory($date), $n = 1)->toString();

Und dann bitte berichten, was passiert.

Peter


#6

Die PHP-Version ist bei mir tatsächlich 5.1.6

Wenn ich den Code entsprechend ändere funktioniert alles bestens.


(Peterbo) #7

Änderung ist eingecheckt und muss dann in der nächsten Version nicht mehr von Hand geändert werden, Piwik dev.


#8

Danke, funktioniert perferkt.