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 '
'.Searching_for.' Home
'; 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 ''; echo '
 '.Categories.'

'; 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 '
'; } if ($no_results == 1) { echo '

No results found.

'; } } print_footer (); ?>