All pastes #338817 Raw Edit

amaliel

public php v1 · immutable
·published 2007-02-03 18:41 UTC
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&#380;de z szukanych s&#322;ów musi mie&#263; 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');    }?>