include_once("../include/swp_inc.php");
$language = $_GET['language'];
$language = verify_language ($language);
include_language_file ($language);
print_html_header ($language);
echo '
Software Pointers - '.Result_page.'';
print_style ();
print_header ();
print_bar ();
connect_db();
$orig_search = stripslashes(trim($_GET['q']));
$search = str_replace ('+', '[+]', $orig_search);
$search = str_replace ('?', '[?]', $search);
$search = str_replace ('*', '[*]', $search);
$search = str_replace ('^', '[^]', $search);
$search = str_replace ('$', '[$]', $search);
$search = str_replace ('-', '[-]', $search);
$search = str_replace ('\\', '\\\\', $search);
$search = str_replace ('"', '\"', $search);
$search_words = preg_split ('/[\s,]+/', $search);
$rlikes = '';
$rlikes2 = '';
foreach($search_words as $search_word) {
$s = '(^|[^a-zA-Z0-9_])'.$search_word.'($|[^a-zA-Z0-9_+#])';
if ($rlikes != '') {
$rlikes .= ' AND ';
}
$rlikes .= '(k.name_'.$language.' RLIKE "'.$s.'" OR k.description_'.$language.' RLIKE "'.$s.'")';
if ($rlikes2 != '') {
$rlikes2 .= ' AND ';
}
$rlikes2 .= '(title RLIKE "'.$s.'" OR description RLIKE "'.$s.'" OR own_description RLIKE "'.$s.'")';
}
$search = '(^|[^a-zA-Z0-9_])'.$search.'($|[^a-zA-Z0-9_+#])';
echo '
';
if (strlen($orig_search) < 2 and preg_match('/[a-zA-Z0-9]/', $orig_search) == 0) {
echo ''.search_1.'
';
} else {
// get keywords
$no_results = 1;
// hack: this works only for 3 hierarchical levels. Hopefully MySQL will come up with "connect by" if we need this to be more flexible
$result = my_query ('SELECT k.aid, k.name_'.$language.' AS name, k.description_'.$language.' AS description, p1.name_'.$language.' AS p1_name, p1.aid AS p1_aid, p2.name_'.$language.' AS p2_name, p2.aid AS p2_aid FROM (keywords AS k, classifications_'.$language.' AS c, links_'.$language.' AS l) LEFT JOIN keywords AS p1 ON p1.id = k.parent LEFT JOIN keywords AS p2 ON p2.id = p1.parent WHERE k.id = c.keyword AND ISNULL(k.duplicate) AND c.link = l.id AND c.status <= '.LS_PUBLIC_TEST.' AND l.status <= '.LS_PUBLIC_TEST.' AND ('.$rlikes.') GROUP BY k.aid ORDER BY concat(ifnull(p2.name_'.$language.',""), ifnull(p1.name_'.$language.',""), k.name_'.$language.')');
if (mysql_num_rows($result) > 0) {
$no_results = 0;
echo '';
echo ' '.Categories.' | ';
echo '
';
while ($row = mysql_fetch_assoc($result)) {
echo 'Home > ';
if (isset($row['p2_name'])) {
echo ''.htmlentities($row['p2_name']).' > ';
}
if (isset($row['p1_name'])) {
echo ''.htmlentities($row['p1_name']).' > ';
}
echo ''.htmlentities($row['name']).' '.(strlen($row['description']) > 0 ? ' - '.htmlentities($row['description']) : '').'
';
}
echo '
';
}
// get links
$result = my_query ('SELECT title, url, description, own_description, evaluation, id FROM links_'.$language.' WHERE status <= '.LS_PUBLIC_TEST.' AND ('.$rlikes2.') ORDER BY pagerank desc, title');
$matching_links = mysql_num_rows($result);
if ($matching_links > 0) {
$no_results = 0;
if ($matching_links > 1) {
echo '';
}
echo '';
echo ' '.Matching_Links;
if ($matching_links > 1) {
echo ' - '.Sorted_by1.''.Sort1.''.Sorted_by2.', '.Sort.' '.Sort2.'';
$titles = array();
while ($row = mysql_fetch_assoc($result)) {
$titles[$row['title'].$row['id']] = 1;
}
uksort($titles, strcasecmp);
$alt_rank = 0;
foreach ($titles as $t => $v) {
$titles[$t] = $alt_rank;
$alt_rank++;
}
mysql_data_seek ($result, 0);
}
echo ' |
';
while ($row = mysql_fetch_assoc($result)) {
print_link ($language, $row['id'], $row['url'], $row['title'], $row['evaluation'], $row['description'], $row['own_description'], $titles[$row['title'].$row['id']], $row['pagerank'], $swp_admin);
}
echo '
';
}
if ($no_results == 1) {
echo 'No results found.
';
}
}
print_footer ();
?>