Static page comments are now searchable (cf. bug #0000902) HEAD
authorSami Barakat
Sun Oct 18 02:06:26 2009 +0100 (3 months ago)
branchHEAD
changeset 7388dbf2c1e5cedc
parent 738739932e68c099
child 7389abd5bf00c26b
Static page comments are now searchable (cf. bug #0000902)
plugins/staticpages/functions.inc
     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