From: Reini U. <ru...@us...> - 2004-07-08 19:04:59
|
Update of /cvsroot/phpwiki/phpwiki/lib/wikilens In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29226/wikilens Modified Files: RatingsDb.php RatingsUser.php Log Message: more unittest fixes (file backend, metadata RatingsDb) Index: RatingsDb.php =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/lib/wikilens/RatingsDb.php,v retrieving revision 1.5 retrieving revision 1.6 diff -u -2 -b -p -d -r1.5 -r1.6 --- RatingsDb.php 8 Jul 2004 13:50:33 -0000 1.5 +++ RatingsDb.php 8 Jul 2004 19:04:45 -0000 1.6 @@ -30,6 +30,7 @@ define('RATING_STORAGE','SQL'); //define('RATING_EXTERNAL',PHPWIKI_DIR . 'suggest.exe'); -class RatingsDb extends WikiDB { +//TODO: split into SQL and metadata backends +class RatingsDb extends WikiDB { function RatingsDb() { @@ -37,4 +38,6 @@ class RatingsDb extends WikiDB { $this->_dbi = &$request->_dbi; $this->_backend = &$this->_dbi->_backend; + $this->dimension = null; + if (RATING_STORAGE == 'SQL') { if (isa($this->_backend, 'WikiDB_backend_PearDB')) $this->dbtype = "PearDB"; @@ -49,4 +52,7 @@ class RatingsDb extends WikiDB { $request->_dbi->_backend->_table_names['rating_tbl'] = $rating_tbl; } + } else { + $this->iter_class = "WikiDB_Array_PageIterator"; + } } @@ -91,5 +97,5 @@ class RatingsDb extends WikiDB { if (RATING_STORAGE == 'SQL') { $ratings_iter = $this->sql_get_rating($dimension, $userid, $pagename); - if ($rating = $ratings_iter->next()) { + if ($rating = $ratings_iter->next() and isset($rating['ratingvalue'])) { return $rating['ratingvalue']; } else @@ -106,5 +112,5 @@ class RatingsDb extends WikiDB { if (RATING_STORAGE == 'SQL') { $ratings_iter = $this->sql_get_users_rated($dimension, $orderby); - if ($rating = $ratings_iter->next()) { + if ($rating = $ratings_iter->next() and isset($rating['ratingvalue'])) { return $rating['ratingvalue']; } else @@ -159,9 +165,8 @@ class RatingsDb extends WikiDB { if (RATING_STORAGE == 'SQL') { $ratings_iter = $this->sql_get_rating($dimension, $rater, $pagename); - if ($rating = $ratings_iter->next()) { + if ($rating = $ratings_iter->next() and isset($rating['ratingvalue'])) { return $rating['ratingvalue']; } else return false; - // return $ratings_iter; } else { return $this->metadata_get_rating($rater, $pagename, $dimension); @@ -176,5 +181,5 @@ class RatingsDb extends WikiDB { if (RATING_STORAGE == 'SQL') { $ratings_iter = $this->sql_get_users_rated($dimension, $orderby); - if ($rating = $ratings_iter->next()) { + if ($rating = $ratings_iter->next() and isset($rating['ratingvalue'])) { return $rating['ratingvalue']; } else @@ -194,7 +199,11 @@ class RatingsDb extends WikiDB { function get_rating_page($dimension=null, $rater=null, $ratee=null, $orderby = null, $pageinfo = "ratee") { - $result = $this->_backend->get_rating_page($dimension, $rater, $ratee, - $orderby, $pageinfo); - return new WikiDB_PageIterator($this, $result); + if (RATING_STORAGE == 'SQL') { + return $this->sql_get_rating($dimension, $rater, $ratee, $orderby, $pageinfo); + } else { + // empty dummy iterator + $pages = array(); + return new WikiDB_Array_PageIterator($pages); + } } @@ -317,4 +326,5 @@ class RatingsDb extends WikiDB { return $ratings_iter->count(); } else { + if (!$pagename) return 0; $page = $this->_dbi->getPage($pagename); $data = $page->get('rating'); @@ -349,4 +359,5 @@ class RatingsDb extends WikiDB { return $row['avg']; } else { + if (!$pagename) return 0; return 2.5; } @@ -527,5 +538,6 @@ class RatingsDb extends WikiDB { function metadata_get_rating($userid, $pagename, $dimension) { - $page = $this->_dbi->getPage($pagename); + if (!$pagename) + return false; $data = $page->get('rating'); if (!empty($data[$dimension][$userid])) @@ -676,4 +688,7 @@ extends WikiDB_backend_PearDB { // $Log$ +// Revision 1.6 2004/07/08 19:04:45 rurban +// more unittest fixes (file backend, metadata RatingsDb) +// // Revision 1.5 2004/07/08 13:50:33 rurban // various unit test fixes: print error backtrace on _DEBUG_TRACE; allusers fix; new PHPWIKI_NOMAIN constant for omitting the mainloop Index: RatingsUser.php =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/lib/wikilens/RatingsUser.php,v retrieving revision 1.3 retrieving revision 1.4 diff -u -2 -b -p -d -r1.3 -r1.4 --- RatingsUser.php 30 Jun 2004 20:06:44 -0000 1.3 +++ RatingsUser.php 8 Jul 2004 19:04:49 -0000 1.4 @@ -355,6 +355,6 @@ class RatingsUser { $dbi = $this->_get_rating_dbi(); - $rating_iter = $dbi->sql_get_rating(null, $this->_userid, null); - //$rating_iter = $dbi->get_rating(null, $this->_userid); + //$rating_iter = $dbi->sql_get_rating(null, $this->_userid, null); + $rating_iter = $dbi->get_rating_page(null, $this->_userid); while($rating = $rating_iter->next()) @@ -426,4 +426,7 @@ class _UserRating // $Log$ +// Revision 1.4 2004/07/08 19:04:49 rurban +// more unittest fixes (file backend, metadata RatingsDb) +// // Revision 1.3 2004/06/30 20:06:44 dfrankow // Use RatingsDb singleton. |