[geeklog-cvs] geeklog: Static page comments are now searchable (cf. bug #0000902)
geeklog-cvs at lists.geeklog.net
geeklog-cvs at lists.geeklog.net
Sat Oct 17 21:08:06 EDT 2009
changeset 7388:dbf2c1e5cedc
url: http://project.geeklog.net/cgi-bin/hgwebdir.cgi/geeklog/rev/dbf2c1e5cedc
user: Sami Barakat
date: Sun Oct 18 02:06:26 2009 +0100
description:
Static page comments are now searchable (cf. bug #0000902)
diffstat:
plugins/staticpages/functions.inc | 61 +++++++++++++++++++++++-------
1 files changed, 47 insertions(+), 14 deletions(-)
diffs (102 lines):
diff -r 39932e68c099 -r dbf2c1e5cedc plugins/staticpages/functions.inc
--- a/plugins/staticpages/functions.inc Sun Oct 18 02:05:53 2009 +0100
+++ b/plugins/staticpages/functions.inc Sun Oct 18 02:06:26 2009 +0100
@@ -598,7 +598,7 @@
*/
function plugin_dopluginsearch_staticpages($query, $datestart, $dateend, $topic, $type, $author, $keyType, $page, $perpage)
{
- global $_TABLES, $LANG_STATIC;
+ global $_TABLES, $_DB_dbms, $LANG_STATIC, $LANG09;
// Make sure the query is SQL safe
$query = trim(addslashes($query));
@@ -614,18 +614,51 @@
$sql .= "AND (sp_uid = '$author') ";
}
- $search = new SearchCriteria('staticpages', $LANG_STATIC['staticpages']);
+ $search_p = new SearchCriteria('staticpages', $LANG_STATIC['staticpages']);
$columns = array('title' => 'sp_title', 'sp_content');
- $sql .= $search->getDateRangeSQL('AND', 'sp_date', $datestart, $dateend);
- list($sql,$ftsql) = $search->buildSearchSQL($keyType, $query, $columns, $sql);
+ $sql .= $search_p->getDateRangeSQL('AND', 'sp_date', $datestart, $dateend);
+ list($sql,$ftsql) = $search_p->buildSearchSQL($keyType, $query, $columns, $sql);
- $search->setSQL($sql);
- $search->setFTSQL($ftsql);
- $search->setRank(3);
- $search->setURLRewrite(true);
+ $search_p->setSQL($sql);
+ $search_p->setFTSQL($ftsql);
+ $search_p->setRank(3);
+ $search_p->setURLRewrite(true);
- return $search;
+ // Search static page comments
+ $sql = "SELECT c.cid AS id, c.title AS title, c.comment AS description, ";
+ $sql .= "UNIX_TIMESTAMP(c.date) AS date, c.uid AS uid, ";
+
+ // MSSQL has a problem when concatenating numeric values
+ if ($_DB_dbms == 'mssql') {
+ $sql .= "'/comment.php?mode=view&cid=' + CAST(c.cid AS varchar(10)) AS url ";
+ } else {
+ $sql .= "CONCAT('/comment.php?mode=view&cid=',c.cid) AS url ";
+ }
+
+ $sql .= "FROM {$_TABLES['users']} AS u, {$_TABLES['comments']} AS c ";
+ $sql .= "LEFT JOIN {$_TABLES['staticpage']} AS s ON ((s.sp_id = c.sid) ";
+ $sql .= COM_getPermSQL('AND',0,2,'s') . COM_getTopicSQL('AND',0,'s') . COM_getLangSQL('sid','AND','s') . ") ";
+ $sql .= "WHERE (u.uid = c.uid) AND (s.commentcode >= 0) AND (s.sp_date <= NOW()) ";
+
+ if (!empty($topic)) {
+ $sql .= "AND (s.tid = '$topic') ";
+ }
+ if (!empty($author)) {
+ $sql .= "AND (c.uid = '$author') ";
+ }
+
+ $search_c = new SearchCriteria('comments', array($LANG_STATIC['staticpages'],$LANG09[66]));
+
+ $columns = array('title' => 'c.title', 'comment');
+ $sql .= $search_c->getDateRangeSQL('AND', 'c_date', $datestart, $dateend);
+ list($sql, $ftsql) = $search_c->buildSearchSQL($keyType, $query, $columns, $sql);
+
+ $search_c->setSQL($sql);
+ $search_c->setFTSQL($ftsql);
+ $search_c->setRank(2);
+
+ return array($search_p, $search_c);
}
@@ -1009,7 +1042,7 @@
$inst_parms = plugin_autoinstall_staticpages('staticpages');
$pi_gl_version = $inst_parms['info']['pi_gl_version'];
-
+
require_once $_CONF['path'] . 'plugins/staticpages/sql/'
. $_DB_dbms . '_updates.php';
@@ -1029,16 +1062,16 @@
DB_query($sql);
}
}
-
- update_ConfValues_1_6_0();
-
+
+ update_ConfValues_1_6_0();
+
$current_version = '1.6.1';
break;
default:
$done = true;
}
- }
+ }
DB_query("UPDATE {$_TABLES['plugins']} SET pi_version = '$code_version', pi_gl_version = '$pi_gl_version' WHERE pi_name = 'staticpages'");
More information about the geeklog-cvs
mailing list