Kilo Mike - Ich blocke….

Bandit600 bloggt weiter…

Du durchsuchst gerade das Archiv des Monats Oktober 2007.

Archiv: Oktober 2007

2007 18 Okt

kurze Wortmeldung

Abgelegt unter: Allgemein | RSS 2.0 | TB | Tags:  | Keine Kommentare

Nachdem es jetzt fast einen Monat lang ziemlich ruhig war, möchte ich heute nur kurz zu Wort melden.. JA, es geht mir gut.. Falls sich jmd Gedanken gemacht hat.. Aber ich brüte zur Zeit über einem Projekt… U.a. kommt die OpenSource Software Gallery2 zum Einsatz… Hierbei tritt oder besser trat ein Fehler beim Betrachten eines Albums auf, wenn der Betrachter ein “normaler” User war und das entsprechende Bild bewertet war… Die Fehlermeldung hatte ein “undefined class: userRating” im Inhalt..

Nach kurzer Suche hab eich folgende Lösung gefunden:

Just applied this fix yesterday (I’ve been busy), and it seems to have stopped the issue for guests, but it just made the problem worse - if I viewed an album containing items that had never been rated, then suddenly it generated the exact same error for each item that hadn’t been rated.

After doing some digging in the code, I determined what’s going on… We’re setting the default values prior to doing the search, so the $data array is getting overwritten for any items that actually exist - thereby ignoring the default values that were previously set.

However, if ratings are not enabled for a particular item, then the default values are never set for that item, which in turn generates the error.

Therefore, the values need to be set for every item that exists, before searching for ratings.

RatingsHelper.class

Find

while ($result = $searchResults->nextResult()) {
$rating = $result[1] / 1000;
$data[(int)$result[0]] = array(’itemId’ => (int)$result[0],
‘rating’ => GalleryUtilities::roundToString($rating, 3),
‘votes’ => (int)$result[2],
‘averagePercent’ => GalleryUtilities::roundToString(($rating * 100 / 5), 3),
’stars’ => round($rating * 2)
);

if ($rating == 0) {
$data[(int)$result[0]]['stars'] = 1;
}
}

Replace

while ($result = $searchResults->nextResult()) {
$rating = $result[1] / 1000;
$data[(int)$result[0]] = array(’itemId’ => (int)$result[0],
‘rating’ => GalleryUtilities::roundToString($rating, 3),
‘votes’ => (int)$result[2],
‘averagePercent’ => GalleryUtilities::roundToString(($rating * 100 / 5), 3),
’stars’ => round($rating * 2),
‘userRating’ => ‘N/A’,
‘userStars’ => 0
);

if ($rating == 0) {
$data[(int)$result[0]]['stars'] = 1;
}
}

Quelle

Bei mir hat’s geholfen, ich hoffe jmd anderes kann damit auch was anfangen..


Kilo Mike - Ich blocke…. läuft unter Wordpress 2.7.1
Anpassung und Design: Gabis Wordpress-Templates
20 Verweise - 0,318 Sekunden.