From: Reini U. <ru...@us...> - 2004-10-14 17:19:27
|
Update of /cvsroot/phpwiki/phpwiki/lib/WikiDB/backend In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12729/WikiDB/backend Modified Files: ADODB.php PearDB.php cvs.php Log Message: allow most_popular sortby arguments Index: ADODB.php =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/lib/WikiDB/backend/ADODB.php,v retrieving revision 1.44 retrieving revision 1.45 diff -u -2 -b -p -d -r1.44 -r1.45 --- ADODB.php 6 Sep 2004 08:33:09 -0000 1.44 +++ ADODB.php 14 Oct 2004 17:19:17 -0000 1.45 @@ -636,5 +636,5 @@ extends WikiDB_backend * Find highest or lowest hit counts. */ - function most_popular($limit=0, $sortby = '') { + function most_popular($limit=0, $sortby='-hits') { $dbh = &$this->_dbh; extract($this->_table_names); @@ -647,6 +647,8 @@ extends WikiDB_backend $where = " AND hits > 0"; } - if ($sortby) $orderby = " ORDER BY " . $this->sortby($sortby, 'db'); - else $orderby = " ORDER BY hits $order"; + if ($sortby != '-hits') + $orderby = " ORDER BY " . $this->sortby($sortby, 'db'); + else + $orderby = " ORDER BY hits $order"; $limit = $limit ? $limit : -1; @@ -1171,4 +1173,7 @@ extends WikiDB_backend_ADODB_generic_ite // $Log$ +// Revision 1.45 2004/10/14 17:19:17 rurban +// allow most_popular sortby arguments +// // Revision 1.44 2004/09/06 08:33:09 rurban // force explicit mysql auto-incrementing, atomic version Index: PearDB.php =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/lib/WikiDB/backend/PearDB.php,v retrieving revision 1.60 retrieving revision 1.61 diff -u -2 -b -p -d -r1.60 -r1.61 --- PearDB.php 9 Jul 2004 10:06:50 -0000 1.60 +++ PearDB.php 14 Oct 2004 17:19:17 -0000 1.61 @@ -40,5 +40,4 @@ extends WikiDB_backend $prefix = isset($dbparams['prefix']) ? $dbparams['prefix'] : ''; - $this->_table_names = array('page_tbl' => $prefix . 'page', @@ -153,5 +152,5 @@ extends WikiDB_backend } - $this->lock(); + $this->lock(array($page_tbl), true); $data = $this->get_pagedata($pagename); if (!$data) { @@ -186,5 +185,5 @@ extends WikiDB_backend . " WHERE pagename=?", array($hits, $this->_serialize($data), $pagename)); - $this->unlock(); + $this->unlock(array($page_tbl)); } @@ -200,7 +199,7 @@ extends WikiDB_backend return $dbh->getOne($query); - $this->lock(); $id = $dbh->getOne($query); if (empty($id)) { + $this->lock(array($page_tbl), true); // write lock $max_id = $dbh->getOne("SELECT MAX(id) FROM $page_tbl"); $id = $max_id + 1; @@ -209,6 +208,6 @@ extends WikiDB_backend . " VALUES (%d,'%s',0)", $id, $dbh->quoteString($pagename))); + $this->unlock(array($page_tbl)); } - $this->unlock(); return $id; } @@ -569,5 +568,5 @@ extends WikiDB_backend * Find highest or lowest hit counts. */ - function most_popular($limit=false) { + function most_popular($limit=0, $sortby='-hits') { $dbh = &$this->_dbh; extract($this->_table_names); @@ -580,4 +579,7 @@ extends WikiDB_backend $where = " AND hits > 0"; } + if ($sortby != '-hits') + $orderby = " ORDER BY " . $this->sortby($sortby, 'db'); + else $orderby = " ORDER BY hits $order"; //$limitclause = $limit ? " LIMIT $limit" : ''; @@ -589,5 +591,5 @@ extends WikiDB_backend . $orderby; if ($limit) { - list($from,$count) = $this->limit($limit); + list($from, $count) = $this->limit($limit); $result = $dbh->limitQuery($sql, $from, $count); } else { @@ -1031,4 +1033,7 @@ extends WikiDB_backend_PearDB_generic_it } // $Log$ +// Revision 1.61 2004/10/14 17:19:17 rurban +// allow most_popular sortby arguments +// // Revision 1.60 2004/07/09 10:06:50 rurban // Use backend specific sortby and sortable_columns method, to be able to Index: cvs.php =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/lib/WikiDB/backend/cvs.php,v retrieving revision 1.19 retrieving revision 1.20 diff -u -2 -b -p -d -r1.19 -r1.20 --- cvs.php 9 Jul 2004 10:06:50 -0000 1.19 +++ cvs.php 14 Oct 2004 17:19:17 -0000 1.20 @@ -420,5 +420,5 @@ extends WikiDB_backend } - function most_popular($limit) { + function most_popular($limit, $sortby='') { // TODO: needs to be tested ... $mp = $this->_getMostPopular(); |