rendered paste body<?php/*** ZNP**** $Id: search.php,v 1.25 2006-11-13 12:20:30 qyon Exp $**** File name : search.php** Started : 28.08.2006 r.** License : GPL***************************************************************************/ require_once('commons.php'); $q = trim($_GET['q']); $drop_char_match = array('%','--', '\'', ',', '@', '\\', '/', '\'', "'"); $q = str_replace($drop_char_match, '', $q); $results_count = 0; if ($q) { $drop_char_match = array('-','+','%','*','--', '\'', ',', '@', '\\', '/', '\'', "'"); $test = str_replace($drop_char_match, '', $q); // wyszukujemy slowa $list = explode(' ', $test); $first = true; foreach ($list as $item) { if(strlen($item) < 3) { trigger_error("Każde z szukanych słów musi mieć minimum 3 znaki!", E_USER_WARNING); } } $sql = 'SELECT distinct(co_id) AS ID, co_title AS TITLE, te2.te_text AS TEXT, co_ca_id AS CA_ID, ca.ca_name AS CA_NAME, co_disp AS DISPLAY, us_first_name AS AUTHOR_FIRST_NAME, us_last_name AS AUTHOR_LAST_NAME FROM '.TABLE_CONTENTS.' co JOIN '.TABLE_TEXTS.' te2 ON te2.te_id = co.co_content_te_id JOIN '.TABLE_CATEGORIES.' ca ON ca.ca_id = co.co_ca_id LEFT JOIN '.TABLE_USERS.' us ON us.us_id = co.co_us_id JOIN '. TABLE_OSOBY_GRUP . ' og ON og.og_us_id = us.us_id JOIN '. TABLE_UPRAWINIENIA_GRUP . ' ug ON (ug.upr_gr_id =og.og_gr_id) AND (ug.upr_ca_id = co.co_ca_id) AND (ug.upr_action = '.ACTION_READ.') WHERE MATCH(te2.te_text) AGAINST(\''.$q.'\' IN BOOLEAN MODE) AND co.co_special = 0'; $db->sql_query($sql); $result = Array(); while($row = $db->sql_fetch()) { $row['TEXT'] = strip_tags($row['TEXT']); $row['TEXT'] = highlight(smart_substr($row['TEXT'],find_first($row['TEXT'], $list),SEARCH_RESULT_SHORT), $list); $result[$row['CA_NAME']][] = $row; } if ($result) { foreach($result as $key => $value) { $template->assign_block('GROUP', Array('NAME' => $key)); foreach($value as $text) { $template->assign_block('GROUP.TEXT', $text); } } } $results_count = count($result); if ($_GET['comments']) { $sql = 'SELECT distinct(com.com_id) AS COM_ID, co.co_id AS ID, co_title AS TITLE, com.com_text AS TEXT, com.com_visible AS DISPLAY, co_ca_id AS CA_ID, ca.ca_name AS CA_NAME, us_first_name AS AUTHOR_NAME, us_first_name AS AUTHOR_FIRST_NAME, us_last_name AS AUTHOR_LAST_NAME FROM '.TABLE_COMMENTS.' com LEFT JOIN '.TABLE_USERS.' us ON us.us_id = com.com_us_id JOIN '.TABLE_CONTENTS.' co ON co.co_id = com.com_co_id JOIN '.TABLE_CATEGORIES.' ca ON ca.ca_id = co.co_ca_id WHERE MATCH(com.com_text) AGAINST(\''.$q.'\' IN BOOLEAN MODE)'; $db->sql_query($sql); $result = Array(); while($row = $db->sql_fetch()) { $row['TEXT'] = strip_tags($row['TEXT']); $row['TEXT'] = highlight(smart_substr($row['TEXT'],find_first($row['TEXT'], $list),SEARCH_RESULT_SHORT), $list); $result[$row['CA_NAME']][] = $row; } if ($result) { foreach($result as $key => $value) { $template->assign_block('COMMENTS', Array('NAME' => $key)); foreach($value as $text) { $template->assign_block('COMMENTS.TEXT', $text); } } } $results_count += count($result); $template->assign('COMMENTS', true); } $template->assign('QUERY', htmlspecialchars($q)); $template->assign('RESULTS_COUNT', $results_count); page_display('search_results.tpl'); } else { page_display('search.tpl'); }?>