'SELECT headline(unix_group_name, q) as unix_group_name, headline(short_description, q) as short_description, type_id, groups.group_id, license, register_time FROM groups, groups_idx, to_tsquery($1) q ',
array (implode (' ', $words))) ;
$qpa = db_construct_qpa ($qpa,
- 'WHERE status IN ($1, $2) AND is_public=1 AND short_description <> $3 AND groups.group_id = groups_idx.group_id',
+ 'WHERE status IN ($1, $2) AND short_description <> $3 AND groups.group_id = groups_idx.group_id',
array ('A',
'H',
'')) ;
$qpa = db_construct_qpa ($qpa,
'SELECT unix_group_name, short_description, type_id, groups.group_id, license, register_time FROM groups ') ;
$qpa = db_construct_qpa ($qpa,
- 'WHERE status IN ($1, $2) AND is_public=1 AND short_description <> $3',
+ 'WHERE status IN ($1, $2) AND short_description <> $3',
array ('A',
'H',
'')) ;
}
} else {
$qpa = db_construct_qpa ($qpa,
- 'SELECT group_name,unix_group_name,type_id,groups.group_id, short_description,license,register_time FROM groups WHERE status IN ($1, $2) AND is_public=1 AND short_description <> $3 AND groups.group_id = groups_idx.group_id',
+ 'SELECT group_name,unix_group_name,type_id,groups.group_id, short_description,license,register_time FROM groups WHERE status IN ($1, $2) AND short_description <> $3 AND groups.group_id = groups_idx.group_id',
array ('A',
'H',
'')) ;
function getQuery() {
global $LUSER;
- $pids = array () ;
- if (isset ($LUSER)) {
- foreach ($LUSER->getGroups() as $p) {
- $pids[] = $p->getID() ;
- }
- }
-
$qpa = db_construct_qpa () ;
if (forge_get_config('use_fti')) {
if (count ($this->words)) {
$words = $this->getFormattedWords();
$qpa = db_construct_qpa ($qpa,
- 'SELECT DISTINCT ON (rank(vectors, q), group_name) type_id, g.group_id, headline(group_name, q) as group_name, unix_group_name, headline(short_description, q) as short_description FROM groups AS g, to_tsquery($1) AS q, groups_idx as i WHERE g.status in ($2, $3) AND (g.is_public=1 ',
+ 'SELECT DISTINCT ON (rank(vectors, q), group_name) type_id, g.group_id, headline(group_name, q) as group_name, unix_group_name, headline(short_description, q) as short_description FROM groups AS g, to_tsquery($1) AS q, groups_idx as i WHERE g.status in ($2, $3) ',
array ($words,
'A',
'H')) ;
-
- if (isset ($LUSER)) {
- $qpa = db_construct_qpa ($qpa,
- 'OR g.group_id = ANY($1) ',
- array ($pids)) ;
- }
$qpa = db_construct_qpa ($qpa,
- ') AND (vectors @@ q AND ') ;
+ 'AND (vectors @@ q AND ') ;
} else {
$qpa = db_construct_qpa ($qpa,
- 'SELECT DISTINCT ON (group_name) type_id, g.group_id, group_name, unix_group_name, short_description FROM groups AS g WHERE g.status in ($1, $2) AND (g.is_public=1 ',
+ 'SELECT DISTINCT ON (group_name) type_id, g.group_id, group_name, unix_group_name, short_description FROM groups AS g WHERE g.status in ($1, $2) AND (',
array ('A',
'H')) ;
- if (isset ($LUSER)) {
- $qpa = db_construct_qpa ($qpa,
- 'OR g.group_id = ANY($1) ',
- array (db_int_array_to_any_clause($pids))) ;
- }
- $qpa = db_construct_qpa ($qpa,
- ') AND (') ;
-
}
if (count($this->phrases)) {
$qpa = db_construct_qpa ($qpa,
}
} else {
$qpa = db_construct_qpa ($qpa,
- 'SELECT g.group_name AS group_name, g.unix_group_name AS unix_group_name, g.type_id AS type_id, g.group_id AS group_id, g.short_description AS short_description FROM groups g WHERE g.status IN ($1, $2) AND (g.is_public=1 ',
+ 'SELECT g.group_name AS group_name, g.unix_group_name AS unix_group_name, g.type_id AS type_id, g.group_id AS group_id, g.short_description AS short_description FROM groups g WHERE g.status IN ($1, $2) AND ((',
array ('A', 'H')) ;
- if (isset ($LUSER)) {
- $qpa = db_construct_qpa ($qpa,
- 'OR g.group_id = ANY($1) ',
- array (db_int_array_to_any_clause($pids))) ;
- }
- $qpa = db_construct_qpa ($qpa,
- ') AND ((') ;
$qpa = $this->addIlikeCondition ($qpa, 'g.group_name') ;
$qpa = db_construct_qpa ($qpa,
') OR (') ;
* @return string html output
*/
function getRows() {
- $rowsCount = $this->searchQuery->getRowsCount();
$result =& $this->searchQuery->getResult();
$return = '';
+ $i = 0;
- for($i = 0; $i < $rowsCount; $i++) {
- if (db_result($result, $i, 'type') == 2) {
+ while ($row = db_fetch_array($result)) {
+ if (!forge_check_perm ('project_read', $row_top['group_id'])) {
+ continue ;
+ }
+ $i++;
+ if ($row['type'] == 2) {
$what = 'foundry';
} else {
$what = 'projects';
}
$return .= '<tr '.$GLOBALS['HTML']->boxGetAltRowStyle($i).'>'
- .'<td width="30%"><a href="'.util_make_url('/'.$what.'/'.db_result($result, $i, 'unix_group_name').'/').'">'
+ .'<td width="30%"><a href="'.util_make_url('/'.$what.'/'.$row['unix_group_name'].'/').'">'
.html_image('ic/msg.png', '10', '12')
- .' '.$this->highlightTargetWords(db_result($result, $i, 'group_name')).'</a></td>'
- .'<td width="70%">'.$this->highlightTargetWords(db_result($result, $i, 'short_description')).'</td></tr>';
+ .' '.$this->highlightTargetWords($row['group_name']).'</a></td>'
+ .'<td width="70%">'.$this->highlightTargetWords($row['short_description']).'</td></tr>';
}
return $return;