Static page comments are now searchable (cf. bug #0000902)
1.1 --- a/plugins/staticpages/functions.inc Sun Oct 18 02:05:53 2009 +0100
1.2 +++ b/plugins/staticpages/functions.inc Sun Oct 18 02:06:26 2009 +0100
1.3 @@ -598,7 +598,7 @@
1.4 */
1.5 function plugin_dopluginsearch_staticpages($query, $datestart, $dateend, $topic, $type, $author, $keyType, $page, $perpage)
1.6 {
1.7 - global $_TABLES, $LANG_STATIC;
1.8 + global $_TABLES, $_DB_dbms, $LANG_STATIC, $LANG09;
1.9
1.10 // Make sure the query is SQL safe
1.11 $query = trim(addslashes($query));
1.12 @@ -614,18 +614,51 @@
1.13 $sql .= "AND (sp_uid = '$author') ";
1.14 }
1.15
1.16 - $search = new SearchCriteria('staticpages', $LANG_STATIC['staticpages']);
1.17 + $search_p = new SearchCriteria('staticpages', $LANG_STATIC['staticpages']);
1.18
1.19 $columns = array('title' => 'sp_title', 'sp_content');
1.20 - $sql .= $search->getDateRangeSQL('AND', 'sp_date', $datestart, $dateend);
1.21 - list($sql,$ftsql) = $search->buildSearchSQL($keyType, $query, $columns, $sql);
1.22 + $sql .= $search_p->getDateRangeSQL('AND', 'sp_date', $datestart, $dateend);
1.23 + list($sql,$ftsql) = $search_p->buildSearchSQL($keyType, $query, $columns, $sql);
1.24
1.25 - $search->setSQL($sql);
1.26 - $search->setFTSQL($ftsql);
1.27 - $search->setRank(3);
1.28 - $search->setURLRewrite(true);
1.29 + $search_p->setSQL($sql);
1.30 + $search_p->setFTSQL($ftsql);
1.31 + $search_p->setRank(3);
1.32 + $search_p->setURLRewrite(true);
1.33
1.34 - return $search;
1.35 + // Search static page comments
1.36 + $sql = "SELECT c.cid AS id, c.title AS title, c.comment AS description, ";
1.37 + $sql .= "UNIX_TIMESTAMP(c.date) AS date, c.uid AS uid, ";
1.38 +
1.39 + // MSSQL has a problem when concatenating numeric values
1.40 + if ($_DB_dbms == 'mssql') {
1.41 + $sql .= "'/comment.php?mode=view&cid=' + CAST(c.cid AS varchar(10)) AS url ";
1.42 + } else {
1.43 + $sql .= "CONCAT('/comment.php?mode=view&cid=',c.cid) AS url ";
1.44 + }
1.45 +
1.46 + $sql .= "FROM {$_TABLES['users']} AS u, {$_TABLES['comments']} AS c ";
1.47 + $sql .= "LEFT JOIN {$_TABLES['staticpage']} AS s ON ((s.sp_id = c.sid) ";
1.48 + $sql .= COM_getPermSQL('AND',0,2,'s') . COM_getTopicSQL('AND',0,'s') . COM_getLangSQL('sid','AND','s') . ") ";
1.49 + $sql .= "WHERE (u.uid = c.uid) AND (s.commentcode >= 0) AND (s.sp_date <= NOW()) ";
1.50 +
1.51 + if (!empty($topic)) {
1.52 + $sql .= "AND (s.tid = '$topic') ";
1.53 + }
1.54 + if (!empty($author)) {
1.55 + $sql .= "AND (c.uid = '$author') ";
1.56 + }
1.57 +
1.58 + $search_c = new SearchCriteria('comments', array($LANG_STATIC['staticpages'],$LANG09[66]));
1.59 +
1.60 + $columns = array('title' => 'c.title', 'comment');
1.61 + $sql .= $search_c->getDateRangeSQL('AND', 'c_date', $datestart, $dateend);
1.62 + list($sql, $ftsql) = $search_c->buildSearchSQL($keyType, $query, $columns, $sql);
1.63 +
1.64 + $search_c->setSQL($sql);
1.65 + $search_c->setFTSQL($ftsql);
1.66 + $search_c->setRank(2);
1.67 +
1.68 + return array($search_p, $search_c);
1.69 }
1.70
1.71
1.72 @@ -1009,7 +1042,7 @@
1.73
1.74 $inst_parms = plugin_autoinstall_staticpages('staticpages');
1.75 $pi_gl_version = $inst_parms['info']['pi_gl_version'];
1.76 -
1.77 +
1.78 require_once $_CONF['path'] . 'plugins/staticpages/sql/'
1.79 . $_DB_dbms . '_updates.php';
1.80
1.81 @@ -1029,16 +1062,16 @@
1.82 DB_query($sql);
1.83 }
1.84 }
1.85 -
1.86 - update_ConfValues_1_6_0();
1.87 -
1.88 +
1.89 + update_ConfValues_1_6_0();
1.90 +
1.91 $current_version = '1.6.1';
1.92 break;
1.93
1.94 default:
1.95 $done = true;
1.96 }
1.97 - }
1.98 + }
1.99
1.100 DB_query("UPDATE {$_TABLES['plugins']} SET pi_version = '$code_version', pi_gl_version = '$pi_gl_version' WHERE pi_name = 'staticpages'");
1.101