Seditio Source
Root |
./othercms/Cotonti-0.6.25/plugins/search/search.php
<?PHP
/* ====================
[BEGIN_SED_EXTPLUGIN]
Code=search
Part=main
File=search
Hooks=standalone
Tags=
Order=10
[END_SED_EXTPLUGIN]
==================== */

/**
 * Search standalone.
 *
 * @package Cotonti
 * @version 0.0.6
 * @author Olivier C. & Spartan & Boss
 * @copyright Copyright (c) 2008-2009 Cotonti Team
 * @license BSD License
 */

defined('SED_CODE') && defined('SED_PLUG') or die('Wrong URL');

// Include functions
require_once $cfg['plugins_dir'].'/search/inc/search.func.inc.php';

// Read GET/POST params
$sq = sed_import('sq','P','TXT',$cfg['plugin']['search']['maxsigns']);
$pre = sed_import('pre','G','TXT');
$sq = (!empty($pre)) ? $pre : $sq;
$sq = preg_replace('/ +/', ' ', $sq);
$sq = sed_sql_prep($sq);
$a = sed_import('a','P','ALP');
$tab = sed_import('tab','G','ALP');
$frm = sed_import('frm','G','BOL');
$d = sed_import('d', 'G', 'INT');
if (empty(
$d)) $d = 0;
if (
$frm) $tab='frm';
if (!empty(
$pre)) $a = 'search';
$hl = urlencode(mb_strtoupper($sq));

// Search title
$plugin_title  = "<a href='".sed_url('plug', 'e=search')."'>".$L['plu_title_all']."</a>";
$plugin_title .= ($tab=='frm' || $tab=='pag') ? " ".$cfg['separator']." " : "";
if(
$tab=='frm')
{
$plugin_title .= "<a href='".sed_url('plug', 'e=search&tab=frm')."'>".$L['plu_title_frmtab']."</a>"; }
elseif(
$tab=='pag')
{
$plugin_title .= "<a href='".sed_url('plug', 'e=search&tab=pag')."'>".$L['plu_title_pagtab']."</a>"; }

// If advanced search
if($tab=='frm' || $tab=='pag')
{
   
// Include file
   
require_once("plugins/search/inc/search.ext.inc.php");

   
// If date is required
   
if($within > 0)
    {
       
// Date FROM and TO in timestamp format
       
$from_mktime = mktime(0,0,0,$from_month,$from_day,$from_year);
       
$to_mktime = mktime(0,0,0,$to_month,$to_day,$to_year);
    }
}

// If it is search query
if($a=='search')
{
   
// Query too short message
   
if(mb_strlen($sq) < $cfg['plugin']['search']['minsigns'])
    {
       
$error_string .= "<p>".$L['plu_querytooshort']."</p>";
        unset(
$a);
    }

   
// Count query words
   
$words = explode(' ', $sq);
   
$words_count = count($words);

   
// Too many words error message
   
if($words_count > $cfg['plugin']['search']['maxwords'])
    {
       
$error_string .= "<p>".$L['plu_toomanywords']." ".$cfg['plugin']['search']['maxwords'].".</p>";
        unset(
$a);
    }

   
// Making query string
   
$sqlsearch = implode("%", $words);
   
$sqlsearch = "%".$sqlsearch."%";

   
// String query for addition pages fields.
   
$addfields = trim($cfg['plugin']['search']['addfields']);
    if(
strlen($addfields))
    {
           
$addfields_sql = "";
            foreach(
explode(',', $addfields) as $addfields_el)
            {
                 
$addfields_el = trim($addfields_el);
                  if(
strlen($addfields_el))
                  {
                       
$addfields_sql .= " OR p.".$addfields_el." LIKE '".$sqlsearch."'";
                  }
            }
      }
}


// If it is forum tab and it is on, the search forums
if($tab=='frm' && !$cfg['disable_forums'])
{
    if (
$d > 0 && !empty($pre))
    {
       
$sea_frmtitle = $_SESSION['sea_frmtitle'];
       
$sea_frmtext = $_SESSION['sea_frmtext'];
       
$sea_frmreply = $_SESSION['sea_frmreply'];
       
$sea_frmsort = $_SESSION['sea_frmsort'];
       
$sea_frmsort2 = $_SESSION['sea_frmsort2'];
       
$sea_frmsub = $_SESSION['sea_frmsub'];
    }
    else
    {
       
$sea_frmtitle = sed_import('sea_frmtitle','P','INT');
       
$sea_frmtext = sed_import('sea_frmtext','P','INT');
       
$sea_frmreply = sed_import('sea_frmreply','P','INT');
       
$sea_frmsort = sed_import('sea_frmsort','P','INT');
       
$sea_frmsort2 = sed_import('sea_frmsort2','P','ALP');
        if (!
in_array($sea_frmsort2, array('ASC', 'DESC')))
        {
           
$sea_frmsort2 = 'ASC';
        }
       
$sea_frmsub = sed_import('sea_frmsub','P','ARR');

        if (
count($sea_frmsub) == 0) $sea_frmsub = array('all');
        if (empty(
$sea_frmtitle) && empty($sea_frmtext))
        {
           
$sea_frmtitle = 1;
           
$sea_frmtext = 1;
        }

       
$_SESSION['sea_frmtitle'] = $sea_frmtitle;
       
$_SESSION['sea_frmtext'] = $sea_frmtext;
       
$_SESSION['sea_frmreply'] = $sea_frmreply;
       
$_SESSION['sea_frmsort'] = $sea_frmsort;
       
$_SESSION['sea_frmsort2'] = $sea_frmsort2;
       
$_SESSION['sea_frmsub'] = $sea_frmsub;
    }

   
$sql1 = sed_sql_query("SELECT s.fs_id, s.fs_title, s.fs_category FROM $db_forum_sections AS s
        LEFT JOIN
$db_forum_structure AS n ON n.fn_code=s.fs_category
        ORDER by fn_path ASC, fs_order ASC"
);

   
// Making the sections list
   
$plugin_forum_sec_list  = "<select multiple name='sea_frmsub[]' size='10'>";
   
$plugin_forum_sec_list .= "<option value='all'".(($sea_frmsub[0]=='all' || count($sea_frmsub)==0)?" selected='selected'":"").">".$L['plu_allsections']."</option>";
    while(
$row1 = mysql_fetch_array($sql1))
    {
        if(
sed_auth('forums', $row1['fs_id'], 'R'))
        {
           
$plugin_forum_sec_list .= "<option value='".$row1['fs_id']."'";

           
// Select sections which have been selected before
           
if(count($sea_frmsub) > 0)
            {
                for(
$i=0; $i<count($sea_frmsub); $i++)
                {
                   
$plugin_forum_sec_list .= $row1['fs_id'] == $sea_frmsub[$i] && $sea_frmsub[0] != 'all' ? " selected='selected'" : "";
                }
            }

           
$plugin_forum_sec_list .= ">".sed_build_forums($row1['fs_id'], $row1['fs_title'], $row1['fs_category'], FALSE)."</option>";
        }
    }
   
$plugin_forum_sec_list .= "</select>";

   
// Making the list for ordering
   
$plugin_forum_res_sort  = "<select name='sea_frmsort'>";
   
$plugin_forum_res_sort .= "<option value='1'".(($sea_frmsort==1 || !isset($sea_frmsort))?" selected":"").">".$L['plu_frm_res_sort1']."</option>";
   
$plugin_forum_res_sort .= "<option value='2'".($sea_frmsort==2?" selected":"").">".$L['plu_frm_res_sort2']."</option>";
   
$plugin_forum_res_sort .= "<option value='3'".($sea_frmsort==3?" selected":"").">".$L['plu_frm_res_sort3']."</option>";
   
$plugin_forum_res_sort .= "<option value='4'".($sea_frmsort==4?" selected":"").">".$L['plu_frm_res_sort4']."</option>";
   
$plugin_forum_res_sort .= "<option value='5'".($sea_frmsort==5?" selected":"").">".$L['plu_frm_res_sort5']."</option>";
   
$plugin_forum_res_sort .= "</select>";

   
// Ordering params
   
$plugin_forum_res_desc = "<input type='radio' name='sea_frmsort2' value='DESC' id='frmsort2_DESC'".($sea_frmsort2=='ASC'?"":" checked")." /><label for='frmsort2_DESC'>".$L['plu_sort_desc']."</label>";
   
$plugin_forum_res_asc = "<input type='radio' name='sea_frmsort2' value='ASC' id='frmsort2_ASC'".($sea_frmsort2=='ASC'?" checked":"")." /><label for='frmsort2_ASC'>".$L['plu_sort_asc']."</label>";

   
// Extra search options
   
$plugin_forum_search_names = "<input type='checkbox' name='sea_frmtitle' id='sea_frmtitle'".(($sea_frmtitle==1 || count($sea_frmsub)==0)?" checked='true'":"")." value='1' /><label for='sea_frmtitle'>".$L['plu_frm_search_names']."</label>";
   
$plugin_forum_search_post = "<input type='checkbox' name='sea_frmtext' id='sea_frmtext'".(($sea_frmtext==1 || count($sea_frmsub)==0)?" checked='true'":"")." value='1' /><label for='sea_frmtext'>".$L['plu_frm_search_post']."</label>";
   
$plugin_forum_search_answ = "<input type='checkbox' name='sea_frmreply' id='sea_frmreply'".($sea_frmreply==1?" checked='true'":"")." value='1' /><label for='sea_frmreply'>".$L['plu_frm_search_answ']."</label>";

   
// Output data array
   
$t->assign(array(
       
"PLUGIN_FORUM_SEC_LIST" => $plugin_forum_sec_list,
       
"PLUGIN_FORUM_RES_SORT" => $plugin_forum_res_sort,
       
"PLUGIN_FORUM_RES_DESC" => $plugin_forum_res_desc,
       
"PLUGIN_FORUM_RES_ASC" => $plugin_forum_res_asc,
       
"PLUGIN_FORUM_SEARCH_NAMES" => $plugin_forum_search_names,
       
"PLUGIN_FORUM_SEARCH_POST" => $plugin_forum_search_post,
       
"PLUGIN_FORUM_SEARCH_ANSW" => $plugin_forum_search_answ,
       
"PLUGIN_FORUM_SEARCH_DATE" => $html_code_java.$html_code_date
   
));

   
// Parse the block
   
$t->parse('MAIN.FORUMS_OPTIONS');

   
// If in search query, continue
   
if($a == 'search')
    {
       
// Checking the sections array
       
if($sea_frmsub[0]=='all')
        {
           
// All sections
           
$sqlsections = '';
        }
        else
        {
           
// Walking through array
           
foreach($sea_frmsub as $i => $k)
            {
               
// Making new array
               
$sections1[] = "s.fs_id='".sed_sql_prep($k)."'";
            }
           
// Making SQL query
           
$sqlsections = "AND (".implode(' OR ', $sections1).")";
        }

       
// Handling param - Show only topics with replies
       
if($sea_frmreply=='1')
        {
$frm_reply = "AND t.ft_postcount>1"; }

       
// Handling param - Date/time
       
if($within > 0)
        {
           
// If searching in titles and posts or just posts
           
if(($sea_frmtitle==1 && $sea_frmtext==1) || $sea_frmtext==1)
            {
               
// In db - from creation date to the date updated
               
$sqlsections2 = "AND p.fp_creation>=$from_mktime AND p.fp_updated<=$to_mktime";
            }
           
// Othewise use topic dates
           
else
            {
               
// В логике - от даты создания, до даты обновления темы.
                // Хотя дата обновления = это дата последнего поста, обрабатывается запрос нормально.
                // Видимо в самом запросе ниже есть ограничение на круг поиска.
               
$sqlsections2 = "AND t.ft_creationdate>=$from_mktime AND t.ft_updated<=$to_mktime";
            }
        }

       
// Handling param - ordering
       
if ($sea_frmsort == 1)
           
$orderby = "ft_updated ".$sea_frmsort2;
        elseif (
$sea_frmsort == 2)
           
$orderby = "ft_creationdate ".$sea_frmsort2;
        elseif (
$sea_frmsort == 3)
           
$orderby = "ft_title ".$sea_frmsort2;
        elseif (
$sea_frmsort == 4)
           
$orderby = "ft_postcount ".$sea_frmsort2;
        elseif (
$sea_frmsort == 5)
           
$orderby = "ft_viewcount ".$sea_frmsort2;

       
// Text output in results
       
$text_from_sql = $cfg['plugin']['search']['showtext_ext'] == 1 ? "p.fp_text," : "";

       
// Search in titles only
       
if ($sea_frmtitle == 1 && $sea_frmtext != 1)
        {

           
$sql = sed_sql_query("SELECT SQL_CALC_FOUND_ROWS p.fp_id, $text_from_sql t.ft_firstposterid,
                    t.ft_firstpostername, t.ft_title, t.ft_id, t.ft_updated, s.fs_id, s.fs_title, s.fs_category
                 FROM
$db_forum_posts p, $db_forum_topics t, $db_forum_sections s
                WHERE 1 AND (t.ft_title LIKE '"
.sed_sql_prep($sqlsearch)."')
                AND p.fp_topicid=t.ft_id
$frm_reply
                AND p.fp_sectionid=s.fs_id
$sqlsections $sqlsections2
                GROUP BY t.ft_id ORDER BY
$orderby
                LIMIT
$d, ".$cfg['plugin']['search']['maxitems_ext']);
           
$items = sed_sql_numrows($sql);
           
$totalitems = sed_sql_foundrows();
        }

       
// Othewise search in post body
       
elseif ($sea_frmtext == 1 && $sea_frmtitle != 1)
        {
           
$sql = sed_sql_query("SELECT SQL_CALC_FOUND_ROWS p.fp_id, $text_from_sql p.fp_updated, t.ft_firstposterid,
                    t.ft_firstpostername, t.ft_title, t.ft_id, s.fs_id, s.fs_title, s.fs_category
                 FROM
$db_forum_posts p, $db_forum_topics t, $db_forum_sections s
                WHERE 1 AND (p.fp_text LIKE '"
.sed_sql_prep($sqlsearch)."')
                AND p.fp_topicid=t.ft_id
$frm_reply
                AND p.fp_sectionid=s.fs_id
$sqlsections $sqlsections2
                GROUP BY t.ft_id ORDER BY
$orderby
                LIMIT
$d, ".$cfg['plugin']['search']['maxitems_ext']);
           
$items = sed_sql_numrows($sql);
           
$totalitems = sed_sql_foundrows();
        }

       
// Otherwise search both titles and body
       
elseif ($sea_frmtext == 1 && $sea_frmtitle == 1)
        {
           
$sql = sed_sql_query("SELECT SQL_CALC_FOUND_ROWS p.fp_id, $text_from_sql t.ft_firstposterid,
                    t.ft_firstpostername, t.ft_title, t.ft_id, t.ft_updated, s.fs_id, s.fs_title, s.fs_category
                 FROM
$db_forum_posts p, $db_forum_topics t, $db_forum_sections s
                WHERE 1 AND (p.fp_text LIKE '"
.sed_sql_prep($sqlsearch)."'
                    OR t.ft_title LIKE '"
.sed_sql_prep($sqlsearch)."')
                AND p.fp_topicid=t.ft_id
$frm_reply
                AND p.fp_sectionid=s.fs_id
$sqlsections $sqlsections2
                GROUP BY t.ft_id ORDER BY
$orderby
                LIMIT
$d, ".$cfg['plugin']['search']['maxitems_ext']);
           
$items = sed_sql_numrows($sql);
           
$totalitems = sed_sql_foundrows();
        }

       
// Othewise error message
       
else
        {
           
$error_string .= "<p>".$L['plu_notseltopmes']."</p>";
            unset(
$a);
           
$items = 0;
        }

       
// Display results if some were found
       
if($items > 0)
        {
           
$jj=0;
            while(
$row = mysql_fetch_array($sql))
            {
               
// Display only what the user is allowed to see
               
if(sed_auth('forums', $row['fs_id'], 'R'))
                {
                    if(
$row['ft_updated'] > 0)
                    {
                       
$post_url = ($cfg['plugin']['search']['searchurl'] == 'Single') ? sed_url('forums', 'm=posts&id='.$row['fp_id'].'&highlight='.$hl) : sed_url('forums', 'm=posts&p='.$row['fp_id'].'&highlight='.$hl, '#'.$row['fp_id']);
                       
$t->assign(array(
                           
"PLUGIN_FR_CATEGORY" => sed_build_forums($row['fs_id'], $row['fs_title'], $row['fs_category'], TRUE),
                           
"PLUGIN_FR_TITLE" => "<a href='$post_url'>".htmlspecialchars($row['ft_title'])."</a>",
                           
"PLUGIN_FR_TEXT" => hw_clear_mark($row['fp_text'], 0, $words),
                           
"PLUGIN_FR_TIME" => $row['ft_updated'] > 0 ? @date($cfg['dateformat'], $row['ft_updated'] + $usr['timezone'] * 3600) : @date($cfg['dateformat'], $row['fp_updated'] + $usr['timezone'] * 3600),
                           
"PLUGIN_FR_ODDEVEN" => sed_build_oddeven($jj),
                           
"PLUGIN_FR_NUM" => $jj,
                    ));
                       
$t->parse("MAIN.FORUMS_RESULTS.ITEM");
                    }
                   
$jj++;
                }
            }

           
// Making the output array
           
$t->assign(array(
               
"PLUGIN_FORUM_FOUND" => $L['plu_found']." ".($items == $cfg['plugin']['search']['maxitems_ext'] ? $L['plu_moreres'].' ' : '').$items." ".$L['plu_match']
            ));

           
// Parsing the block
           
$t->parse('MAIN.FORUMS_RESULTS');

           
// Pagination
           
if ($items < $totalitems)
            {
               
$pagnav = sed_pagination(sed_url('plug', array('e' => 'search', 'pre' => $sq, 'tab' => 'frm')), $d, $totalitems, $cfg['plugin']['search']['maxitems_ext']);
                list(
$pagination_prev, $pagination_next) = sed_pagination_pn(sed_url('plug', array('e' => 'search', 'pre' => $sq, 'tab' => 'frm')), $d, $totalitems, $cfg['plugin']['search']['maxitems_ext'], TRUE);
               
$t->assign(array(
                   
'PLUGIN_PAGEPREV' => $pagination_prev,
                   
'PLUGIN_PAGENEXT' => $pagination_next,
                   
'PLUGIN_PAGNAV' => $pagnav
               
));
            }
            else
            {
               
$t->assign(array(
                   
'PLUGIN_PAGEPREV' => '',
                   
'PLUGIN_PAGENEXT' => '',
                   
'PLUGIN_PAGNAV' => ''
               
));
            }
        }

       
// Othewise tell that nothing was found
       
else
        {
           
$error_string .= "<p>".$L['plu_noneresult']."</p>";
        }
    }
}

// Otherwise if page tab selected and not disabled
elseif($tab=='pag' && !$cfg['disable_page'])
{
    if (
$d > 0 && !empty($pre))
    {
       
$sea_pagtitle = $_SESSION['sea_pagtitle'];
       
$sea_pagdesc = $_SESSION['sea_pagdesc'];
       
$sea_pagtext = $_SESSION['sea_pagtext'];
       
$sea_pagfile = $_SESSION['sea_pagfile'];
       
$sea_pagsort = $_SESSION['sea_pagsort'];
       
$sea_pagsort2 = $_SESSION['sea_pagsort2'];
       
$sea_pagsub = $_SESSION['sea_pagsub'];
    }
    else
    {
       
$sea_pagtitle = sed_import('sea_pagtitle','P','INT');
       
$sea_pagdesc = sed_import('sea_pagdesc','P','INT');
       
$sea_pagtext = sed_import('sea_pagtext','P','INT');
       
$sea_pagfile = sed_import('sea_pagfile','P','INT');
       
$sea_pagsort = sed_import('sea_pagsort','P','INT');
       
$sea_pagsort2 = sed_import('sea_pagsort2','P','ALP');
        if (!
in_array($sea_pagsort2, array('ASC', 'DESC')))
        {
           
$sea_pagsort2 = 'ASC';
        }
       
$sea_pagsub = sed_import('sea_pagsub','P','ARR');

        if (
count($sea_pagsub) == 0) $sea_pagsub = array('all');
        if (empty(
$sea_pagtitle) && empty($sea_pagdesc) && empty($sea_pagtext))
        {
           
$sea_pagtitle = 1;
           
$sea_pagdesc = 1;
           
$sea_pagtext = 1;
        }

       
$_SESSION['sea_pagtitle'] = $sea_pagtitle;
       
$_SESSION['sea_pagdesc'] = $sea_pagdesc;
       
$_SESSION['sea_pagtext'] = $sea_pagtext;
       
$_SESSION['sea_pagfile'] = $sea_pagfile;
       
$_SESSION['sea_pagsort'] = $sea_pagsort;
       
$_SESSION['sea_pagsort2'] = $sea_pagsort2;
       
$_SESSION['sea_pagsub'] = $sea_pagsub;
    }

   
// Making the category list
   
$plugin_page_sec_list  = "<select multiple name='sea_pagsub[]' size='10'>";
   
$plugin_page_sec_list .= "<option value='all'".(($sea_pagsub[0]=='all' || count($sea_pagsub)==0)?" selected='selected'":"").">".$L['plu_allcategories']."</option>";
    foreach(
$sed_cat as $i =>$x)
    {
        if(
$i!='all' && $i!='system' && sed_auth('page', $i, 'R'))
        {
            if(
$x['group']==0)
            {
               
$plugin_page_sec_list .= "<option value='".$i."'";

               
// Select what has been selected
               
if(count($sea_pagsub) > 0)
                {
                    for(
$j=0; $j<count($sea_pagsub); $j++)
                    {
                       
$plugin_page_sec_list .= $i == $sea_pagsub[$j] && $sea_pagsub[0] != 'all' ? " selected='selected'" : "";
                    }
                }

               
$plugin_page_sec_list .= ">".$x['tpath']."</option>";
            }
        }
    }
   
$plugin_page_sec_list .= "</select>";

   
// Result ordering list
   
$plugin_page_res_sort  = "<select name='sea_pagsort'>";
   
$plugin_page_res_sort .= "<option value='1'".(($sea_pagsort==1 || !isset($sea_pagsort))?" selected":"").">".$L['plu_pag_res_sort1']."</option>";
   
$plugin_page_res_sort .= "<option value='2'".($sea_pagsort==2?" selected":"").">".$L['plu_pag_res_sort2']."</option>";
   
$plugin_page_res_sort .= "<option value='3'".($sea_pagsort==3?" selected":"").">".$L['plu_pag_res_sort3']."</option>";
   
$plugin_page_res_sort .= "</select>";

   
// Result ordering param
   
$plugin_page_res_desc = "<input type='radio' name='sea_pagsort2' value='DESC' id='pagsort2_DESC'".($sea_pagsort2=='ASC'?"":" checked")." /><label for='pagsort2_DESC'>".$L['plu_sort_desc']."</label>";
   
$plugin_page_res_asc = "<input type='radio' name='sea_pagsort2' value='ASC' id='pagsort2_ASC'".($sea_pagsort2=='ASC'?" checked":"")." /><label for='pagsort2_ASC'>".$L['plu_sort_asc']."</label>";

   
// Extra search options
   
$plugin_page_search_names = "<input type='checkbox' name='sea_pagtitle' id='sea_pagtitle'".(($sea_pagtitle==1 || count($sea_pagsub)==0)?" checked='true'":"")." value='1' /><label for='sea_pagtitle'>".$L['plu_pag_search_names']."</label>";
   
$plugin_page_search_desc = "<input type='checkbox' name='sea_pagdesc' id='sea_pagdesc'".(($sea_pagdesc==1 || count($sea_pagsub)==0)?" checked='true'":"")." value='1' /><label for='sea_pagdesc'>".$L['plu_pag_search_desc']."</label>";
   
$plugin_page_search_text = "<input type='checkbox' name='sea_pagtext' id='sea_pagtext'".(($sea_pagtext==1 || count($sea_pagsub)==0)?" checked='true'":"")." value='1' /><label for='sea_pagtext'>".$L['plu_pag_search_text']."</label>";
   
$plugin_page_search_file = "<input type='checkbox' name='sea_pagfile' id='sea_pagfile'".($sea_pagfile==1?" checked='true'":"")." value='1' /><label for='sea_pagfile'>".$L['plu_pag_search_file']."</label>";

   
// Output array
   
$t->assign(array(
       
"PLUGIN_PAGE_SEC_LIST" => $plugin_page_sec_list,
       
"PLUGIN_PAGE_RES_SORT" => $plugin_page_res_sort,
       
"PLUGIN_PAGE_RES_DESC" => $plugin_page_res_desc,
       
"PLUGIN_PAGE_RES_ASC" => $plugin_page_res_asc,
       
"PLUGIN_PAGE_SEARCH_NAMES" => $plugin_page_search_names,
       
"PLUGIN_PAGE_SEARCH_DESC" => $plugin_page_search_desc,
       
"PLUGIN_PAGE_SEARCH_TEXT" => $plugin_page_search_text,
       
"PLUGIN_PAGE_SEARCH_FILE" => $plugin_page_search_file,
       
"PLUGIN_PAGE_SEARCH_DATE" => $html_code_java.$html_code_date
   
));

   
// Parsing the block
   
$t->parse('MAIN.PAGES_OPTIONS');

   
// If search is active
   
if($a == 'search')
    {
       
// Check categories
       
if($sea_pagsub[0]=='all')
        {
           
// All categories
           
$sqlsections = '';
        }
        else
        {
           
// Walking through array
           
foreach($sea_pagsub as $i => $k)
            {
               
// Making new array
               
$sections2[] = "page_cat='".sed_sql_prep($k)."'";
            }
           
// SQL query
           
$sqlsections = "AND (".implode(' OR ', $sections2).")";
        }

       
// +TITLE -DESC -TEXT
       
if($sea_pagtitle == 1 && $sea_pagdesc != 1 && $sea_pagtext != 1)
        {
           
$pagsql = "(p.page_title LIKE '".$sqlsearch."'".$addfields_sql.") AND ";
        }
       
// +TITLE +DESC -TEXT
       
elseif($sea_pagtitle == 1 && $sea_pagdesc == 1 && $sea_pagtext != 1)
        {
           
$pagsql = "(p.page_title LIKE '".$sqlsearch."' OR p.page_desc LIKE '".$sqlsearch."'".$addfields_sql.") AND ";
        }
       
// +TITLE -DESC +TEXT
       
elseif($sea_pagtitle == 1 && $sea_pagdesc != 1 && $sea_pagtext == 1)
        {
           
$pagsql = "(p.page_title LIKE '".$sqlsearch."' OR p.page_text LIKE '".sed_sql_prep($sqlsearch)."'".$addfields_sql.") AND ";
        }
       
// -TITLE +DESC -TEXT
       
elseif($sea_pagtitle != 1 && $sea_pagdesc == 1 && $sea_pagtext != 1)
        {
           
$pagsql = "(p.page_desc LIKE '".$sqlsearch."'".$addfields_sql.") AND ";
        }
       
// -TITLE +DESC +TEXT
       
elseif($sea_pagtitle != 1 && $sea_pagdesc == 1 && $sea_pagtext == 1)
        {
           
$pagsql = "(p.page_desc LIKE '".$sqlsearch."' OR p.page_text LIKE '".sed_sql_prep($sqlsearch)."'".$addfields_sql.") AND ";
        }
       
// -TITLE -DESC +TEXT
       
elseif($sea_pagtitle != 1 && $sea_pagdesc != 1 && $sea_pagtext == 1)
        {
           
$pagsql = "(p.page_text LIKE '".sed_sql_prep($sqlsearch)."'".$addfields_sql.") AND ";
        }
       
// +TITLE +DESC +TEXT
       
elseif($sea_pagtitle == 1 && $sea_pagdesc == 1 && $sea_pagtext == 1)
        {
           
$pagsql = "(p.page_text LIKE '".$sqlsearch."' OR p.page_title LIKE '".$sqlsearch."' OR p.page_desc LIKE '".sed_sql_prep($sqlsearch)."'".$addfields_sql.") AND ";
        }

       
// Otherwise error message
       
else
        {
           
$error_string .= "<p>".$L['plu_notseloption']."</p>";
            unset(
$a, $pagsql);
        }

       
// Handling param - date/time
       
if($within > 0)
        {
           
$sqlsections2 = "AND page_date>=$from_mktime AND page_date<=$to_mktime";
        }

       
// Handling param - ordering
       
if ($sea_pagsort == 1)
           
$orderby = "page_date ".$sea_pagsort2;
        elseif (
$sea_pagsort == 2)
           
$orderby = "page_title ".$sea_pagsort2;
        elseif (
$sea_pagsort == 3)
           
$orderby = "page_count ".$sea_pagsort2;

       
// If it was not canceled, continue
       
if($a == 'search')
        {
           
// Display text in results
           
$text_from_sql = $cfg['plugin']['search']['showtext_ext'] == 1 ? "page_text, page_type," : "";

           
// Only pages with files
           
if($sea_pagfile==1)
            {
               
$sql = sed_sql_query("SELECT SQL_CALC_FOUND_ROWS page_id, page_date, page_ownerid, page_title, page_type,
                       
$text_from_sql page_cat FROM $db_pages p, $db_structure s
                        WHERE
$pagsql
                    p.page_file='1'
                              AND p.page_state='0'
                            AND p.page_cat=s.structure_code
                            AND p.page_cat NOT LIKE 'system'
$sqlsections2
                   
$sqlsections ORDER BY $orderby
                            LIMIT
$d, ".$cfg['plugin']['search']['maxitems_ext']);
               
$items = sed_sql_numrows($sql);
               
$totalitems = sed_sql_foundrows();
            }
           
// Otherwise everything
           
else
            {
               
$sql = sed_sql_query("SELECT SQL_CALC_FOUND_ROWS page_id, page_alias, page_date, page_ownerid, page_title, page_type,
                       
$text_from_sql page_cat from $db_pages p, $db_structure s
                    WHERE
$pagsql
                    p.page_state='0'
                    AND p.page_cat=s.structure_code
                    AND p.page_cat NOT LIKE 'system'
$sqlsections2
                   
$sqlsections ORDER BY $orderby
                    LIMIT
$d, ".$cfg['plugin']['search']['maxitems_ext']);
               
$items = sed_sql_numrows($sql);
               
$totalitems = sed_sql_foundrows();
            }
        }

       
// Display results if something was found
       
if($items > 0)
        {
           
$jj=0;
            while(
$row = mysql_fetch_array($sql))
            {
               
// Display only what the user is allowed to see
               
if(sed_auth('page', $row['page_cat'], 'R'))
                {
                   
$page_url = empty($row['page_alias']) ? sed_url('page', 'id='.$row['page_id'].'&highlight='.$hl)
                        :
sed_url('page', 'al='.$row['page_alias'].'&highlight='.$hl);
                   
$t->assign(array(
                       
"PLUGIN_PR_CATEGORY" => "<a href='".sed_url('list', 'c='.$row['page_cat'])."'>".$sed_cat[$row['page_cat']]['tpath']."</a>",
                       
"PLUGIN_PR_TITLE" => "<a href='$page_url'>".htmlspecialchars($row['page_title'])."</a>",
                       
"PLUGIN_PR_TEXT" => hw_clear_mark($row['page_text'], $row['page_type'], $words),
                       
"PLUGIN_PR_TIME" => @date($cfg['dateformat'], $row['page_date'] + $usr['timezone'] * 3600),
                       
"PLUGIN_PR_ODDEVEN" => sed_build_oddeven($jj),
                       
"PLUGIN_PR_NUM" => $jj,
                    ));
                   
$t->parse("MAIN.PAGES_RESULTS.ITEM");
                   
$jj++;
                }
            }

           
// Output array
           
$t->assign(array(
               
"PLUGIN_PAGE_FOUND" => $L['plu_found']." ".($items == $cfg['plugin']['search']['maxitems_ext'] ? $L['plu_moreres'].' ' : '').$items." ".$L['plu_match']
            ));

           
// Parsing the block
           
$t->parse('MAIN.PAGES_RESULTS');

           
// Pagination
           
if ($items < $totalitems)
            {
               
$pagnav = sed_pagination(sed_url('plug', array('e' => 'search', 'pre' => $sq, 'tab' => 'pag')), $d, $totalitems, $cfg['plugin']['search']['maxitems_ext']);
                list(
$pagination_prev, $pagination_next) = sed_pagination_pn(sed_url('plug', array('e' => 'search', 'pre' => $sq, 'tab' => 'pag')), $d, $totalitems, $cfg['plugin']['search']['maxitems_ext'], TRUE);
               
$t->assign(array(
                   
'PLUGIN_PAGEPREV' => $pagination_prev,
                   
'PLUGIN_PAGENEXT' => $pagination_next,
                   
'PLUGIN_PAGNAV' => $pagnav
               
));
            }
            else
            {
               
$t->assign(array(
                   
'PLUGIN_PAGEPREV' => '',
                   
'PLUGIN_PAGENEXT' => '',
                   
'PLUGIN_PAGNAV' => ''
               
));
            }
        }

       
// Otherwise nothing was found message
       
else
        {
           
$error_string .= "<p>".$L['plu_noneresult']."</p>";
        }
    }
}

// Otherwise use common search
else
{
   
// Parameter import
   
if ($d > 0 && !empty($pre))
    {
        if (!
$cfg['disable_pages'])
        {
           
$sea_pagtitle = $_SESSION['sea_pagtitle'];
           
$sea_pagdesc = $_SESSION['sea_pagdesc'];
           
$sea_pagtext = $_SESSION['sea_pagtext'];
           
$sea_pagfile = $_SESSION['sea_pagfile'];
           
$sea_pagsort = $_SESSION['sea_pagsort'];
           
$sea_pagsort2 = $_SESSION['sea_pagsort2'];
           
$sea_pagsub = $_SESSION['sea_pagsub'];
        }

        if (!
$cfg['disable_forums'])
        {
           
$sea_frmtitle = $_SESSION['sea_frmtitle'];
           
$sea_frmtext = $_SESSION['sea_frmtext'];
           
$sea_frmreply = $_SESSION['sea_frmreply'];
           
$sea_frmsort = $_SESSION['sea_frmsort'];
           
$sea_frmsort2 = $_SESSION['sea_frmsort2'];
           
$sea_frmsub = $_SESSION['sea_frmsub'];
        }
    }
    else
    {
        if (!
$cfg['disable_pages'])
        {
           
$sea_pagtitle = sed_import('sea_pagtitle','P','INT');
           
$sea_pagdesc = sed_import('sea_pagdesc','P','INT');
           
$sea_pagtext = sed_import('sea_pagtext','P','INT');
           
$sea_pagfile = sed_import('sea_pagfile','P','INT');
           
$sea_pagsort = sed_import('sea_pagsort','P','INT');
           
$sea_pagsort2 = sed_sql_prep(sed_import('sea_pagsort2','P','TXT'));
           
$sea_pagsub = sed_import('sea_pagsub','P','ARR');
            if (
count($sea_pagsub) == 0) $sea_pagsub = array('all');
        }

        if (!
$cfg['disable_forums'])
        {
           
$sea_frmtitle = sed_import('sea_frmtitle','P','INT');
           
$sea_frmtext = sed_import('sea_frmtext','P','INT');
           
$sea_frmreply = sed_import('sea_frmreply','P','INT');
           
$sea_frmsort = sed_import('sea_frmsort','P','INT');
           
$sea_frmsort2 = sed_sql_prep(sed_import('sea_frmsort2','P','TXT'));
           
$sea_frmsub = sed_import('sea_frmsub','P','ARR');
            if (
count($sea_frmsub) == 0) $sea_frmsub = array('all');
        }

        if (empty(
$sea_pagtitle) && empty($sea_pagdesc) && empty($sea_pagtext)
            && empty(
$sea_frmtitle) && empty($sea_frmtext))
        {
           
$sea_pagtitle = 1;
           
$sea_pagdesc = 1;
           
$sea_pagtext = 1;
           
$sea_frmtitle = 1;
           
$sea_frmtext = 1;
        }

        if (!
$cfg['disable_pages'])
        {
           
$_SESSION['sea_pagtitle'] = $sea_pagtitle;
           
$_SESSION['sea_pagdesc'] = $sea_pagdesc;
           
$_SESSION['sea_pagtext'] = $sea_pagtext;
           
$_SESSION['sea_pagfile'] = $sea_pagfile;
           
$_SESSION['sea_pagsort'] = $sea_pagsort;
           
$_SESSION['sea_pagsort2'] = $sea_pagsort2;
           
$_SESSION['sea_pagsub'] = $sea_pagsub;
        }

        if (!
$cfg['disable_forums'])
        {
           
$_SESSION['sea_frmtitle'] = $sea_frmtitle;
           
$_SESSION['sea_frmtext'] = $sea_frmtext;
           
$_SESSION['sea_frmreply'] = $sea_frmreply;
           
$_SESSION['sea_frmsort'] = $sea_frmsort;
           
$_SESSION['sea_frmsort2'] = $sea_frmsort2;
           
$_SESSION['sea_frmsub'] = $sea_frmsub;
        }
    }

   
// If forums are enabled
   
if(!$cfg['disable_forums'])
    {
       
$sql1 = sed_sql_query("SELECT s.fs_id, s.fs_title, s.fs_category FROM $db_forum_sections AS s
            LEFT JOIN
$db_forum_structure AS n ON n.fn_code=s.fs_category
            ORDER by fn_path ASC, fs_order ASC"
);

       
// Sections list
       
$plugin_forum_sec_list  = "<select multiple name='sea_frmsub[]' size='6'>";
       
$plugin_forum_sec_list .= "<option value='all'".(($sea_frmsub[0]=='all' || count($sea_frmsub)==0)?" selected='selected'":"").">".$L['plu_allsections']."</option>";
        while(
$row1 = mysql_fetch_array($sql1))
        {
            if(
sed_auth('forums', $row1['fs_id'], 'R'))
            {
               
$plugin_forum_sec_list .= "<option value='".$row1['fs_id']."'";

               
// Apply selection
               
if(count($sea_frmsub) > 0)
                {
                    for(
$i=0; $i<count($sea_frmsub); $i++)
                    {
                       
$plugin_forum_sec_list .= $row1['fs_id'] == $sea_frmsub[$i] && $sea_frmsub[0] != 'all' ? " selected='selected'" : "";
                    }
                }

               
$plugin_forum_sec_list .= ">".sed_build_forums($row1['fs_id'], $row1['fs_title'], $row1['fs_category'], FALSE)."</option>";
            }
        }
       
$plugin_forum_sec_list .= "</select>";

       
// Extra options
       
$plugin_forum_search_names = "<input type='checkbox' name='sea_frmtitle' id='sea_frmtitle'".(($sea_frmtitle==1 || count($sea_frmsub)==0)?" checked='true'":"")." value='1' /><label for='sea_frmtitle'>".$L['plu_frm_search_names']."</label>";
       
$plugin_forum_search_post = "<input type='checkbox' name='sea_frmtext' id='sea_frmtext'".(($sea_frmtext==1 || count($sea_frmsub)==0)?" checked='true'":"")." value='1' /><label for='sea_frmtext'>".$L['plu_frm_search_post']."</label>";

       
// Output
       
$t->assign(array(
           
"PLUGIN_FORUM_SEC_LIST" => $plugin_forum_sec_list,
           
"PLUGIN_FORUM_SEARCH_NAMES" => $plugin_forum_search_names,
           
"PLUGIN_FORUM_SEARCH_POST" => $plugin_forum_search_post,
        ));
    }

   
// If pages are enabled
   
if(!$cfg['disable_page'])
    {
       
// Category list
       
$plugin_page_sec_list  = "<select multiple name='sea_pagsub[]' size='6'>";
       
$plugin_page_sec_list .= "<option value='all'".(($sea_pagsub[0]=='all' || count($sea_pagsub)==0)?" selected='selected'":"").">".$L['plu_allcategories']."</option>";
        foreach(
$sed_cat as $i =>$x)
        {
            if(
$i!='all' && $i!='system' && sed_auth('page', $i, 'R'))
            {
                if(
$x['group']==0)
                {
                   
$plugin_page_sec_list .= "<option value='".$i."'";

                   
// Apply selection
                   
if(count($sea_pagsub) > 0)
                    {
                        for(
$j=0; $j<count($sea_pagsub); $j++)
                        {
                           
$plugin_page_sec_list .= $i == $sea_pagsub[$j] && $sea_pagsub[0] != 'all' ? " selected='selected'" : "";
                        }
                    }

                   
$plugin_page_sec_list .= ">".$x['tpath']."</option>";
                }
            }
        }
       
$plugin_page_sec_list .= "</select>";

       
// Extra options
       
$plugin_page_search_names = "<input type='checkbox' name='sea_pagtitle' id='sea_pagtitle'".(($sea_pagtitle==1 || count($sea_pagsub)==0)?" checked='true'":"")." value='1' /><label for='sea_pagtitle'>".$L['plu_pag_search_names']."</label>";
       
$plugin_page_search_desc = "<input type='checkbox' name='sea_pagdesc' id='sea_pagdesc'".(($sea_pagdesc==1 || count($sea_pagsub)==0)?" checked='true'":"")." value='1' /><label for='sea_pagdesc'>".$L['plu_pag_search_desc']."</label>";
       
$plugin_page_search_text = "<input type='checkbox' name='sea_pagtext' id='sea_pagtext'".(($sea_pagtext==1 || count($sea_pagsub)==0)?" checked='true'":"")." value='1' /><label for='sea_pagtext'>".$L['plu_pag_search_text']."</label>";

       
// Output array
       
$t->assign(array(
           
"PLUGIN_PAGE_SEC_LIST" => $plugin_page_sec_list,
           
"PLUGIN_PAGE_SEARCH_NAMES" => $plugin_page_search_names,
           
"PLUGIN_PAGE_SEARCH_DESC" => $plugin_page_search_desc,
           
"PLUGIN_PAGE_SEARCH_TEXT" => $plugin_page_search_text,
        ));
    }

   
// Parse the block
   
if(!$cfg['disable_forums'] || !$cfg['disable_page'])
    {
       
$t->parse('MAIN.EASY_OPTIONS');
    }

   
// If search is active
   
if($a == 'search' && strlen($sq) > 0)
    {
        if(!
$cfg['disable_forums'])
        {
           
// Check sections
           
if($sea_frmsub[0]=='all')
            {
               
// All sections
               
$sqlsections = '';
            }
            else
            {
               
// Walking through array
               
foreach($sea_frmsub as $i => $k)
                {
                   
// Making new array.
                   
$sections1[] = "s.fs_id='".sed_sql_prep($k)."'";
                }
               
// SQL query
               
$sqlsections = "AND (".implode(' OR ', $sections1).")";
            }

           
// Display text in results
           
$text_from_sql = $cfg['plugin']['search']['showtext'] == 1 ? "p.fp_text," : "";

           
// Search titles only
           
if($sea_frmtitle == 1 && $sea_frmtext != 1)
            {
               
$sql = sed_sql_query("SELECT SQL_CALC_FOUND_ROWS p.fp_id, $text_from_sql t.ft_firstposterid,
                        t.ft_firstpostername, t.ft_title, t.ft_id, t.ft_updated, s.fs_id, s.fs_title, s.fs_category
                     FROM
$db_forum_posts p, $db_forum_topics t, $db_forum_sections s
                    WHERE 1 AND (t.ft_title LIKE '"
.sed_sql_prep($sqlsearch)."')
                    AND p.fp_topicid=t.ft_id
                    AND p.fp_sectionid=s.fs_id
$sqlsections
                    GROUP BY t.ft_id ORDER BY fp_id DESC
                    LIMIT
$d, ".$cfg['plugin']['search']['maxitems']);
               
$items1 = sed_sql_numrows($sql);
               
$totalitems1 = sed_sql_foundrows();
            }

           
// Bodies only
           
elseif($sea_frmtext==1 && $sea_frmtitle!=1)
            {
               
$sql = sed_sql_query("SELECT SQL_CALC_FOUND_ROWS p.fp_id, $text_from_sql p.fp_updated,
                        t.ft_firstposterid, t.ft_firstpostername, t.ft_title, t.ft_id, s.fs_id, s.fs_title, s.fs_category
                     FROM
$db_forum_posts p, $db_forum_topics t, $db_forum_sections s
                    WHERE 1 AND (p.fp_text LIKE '"
.sed_sql_prep($sqlsearch)."')
                    AND p.fp_topicid=t.ft_id
                    AND p.fp_sectionid=s.fs_id
$sqlsections
                    GROUP BY t.ft_id ORDER BY fp_id DESC
                    LIMIT
$d, ".$cfg['plugin']['search']['maxitems']);
               
$items1 = sed_sql_numrows($sql);
               
$totalitems1 = sed_sql_foundrows();
            }

           
// Title+body
           
elseif($sea_frmtext==1 && $sea_frmtitle==1)
            {
               
$sql = sed_sql_query("SELECT SQL_CALC_FOUND_ROWS p.fp_id, $text_from_sql t.ft_firstposterid, t.ft_firstpostername, t.ft_title, t.ft_id, s.fs_id, t.ft_updated, s.fs_title, s.fs_category
                     FROM
$db_forum_posts p, $db_forum_topics t, $db_forum_sections s
                    WHERE 1 AND (p.fp_text LIKE '"
.sed_sql_prep($sqlsearch)."' OR t.ft_title LIKE '".sed_sql_prep($sqlsearch)."')
                    AND p.fp_topicid=t.ft_id
                    AND p.fp_sectionid=s.fs_id
$sqlsections
                    GROUP BY t.ft_id ORDER BY fp_id DESC
                    LIMIT
$d, ".$cfg['plugin']['search']['maxitems']);
               
$items1 = sed_sql_numrows($sql);
               
$totalitems1 = sed_sql_foundrows();
            }

           
// Otherwise error message
           
else
            {
               
$error_string .= "<p>".$L['plu_notseltopmes']."</p>";
                unset(
$a);
               
$items1 = 0;
            }

           
// Display results if something was found
           
if($items1 > 0)
            {
               
$jj=0;
                while(
$row = mysql_fetch_array($sql))
                {
                   
// Check permissions
                   
if(sed_auth('forums', $row['fs_id'], 'R'))
                    {
                       
$post_url = ($cfg['plugin']['search']['searchurl'] == 'Single') ? sed_url('forums', 'm=posts&id='.$row['fp_id'].'&highlight='.$hl) : sed_url('forums', 'm=posts&p='.$row['fp_id'].'&highlight='.$hl, '#'.$row['fp_id']);
                       
$t->assign(array(
                           
"PLUGIN_FR_CATEGORY" => sed_build_forums($row['fs_id'], $row['fs_title'], $row['fs_category'], TRUE),
                           
"PLUGIN_FR_TITLE" => "<a href='$post_url'>".htmlspecialchars($row['ft_title'])."</a>",
                           
"PLUGIN_FR_TEXT" => hw_clear_mark($row['fp_text'], 0, $words),
                           
"PLUGIN_FR_TIME" => $row['ft_updated'] > 0 ? @date($cfg['dateformat'], $row['ft_updated'] + $usr['timezone'] * 3600) : @date($cfg['dateformat'], $row['fp_updated'] + $usr['timezone'] * 3600),
                           
"PLUGIN_FR_ODDEVEN" => sed_build_oddeven($jj),
                           
"PLUGIN_FR_NUM" => $jj,
                            ));
                       
$t->parse("MAIN.EASY_FORUMS_RESULTS.ITEM");
                       
$jj++;
                    }
                }

               
// Output
               
$t->assign(array(
                   
"PLUGIN_EASY_FORUM_FOUND" => $L['plu_found']." ".($items1 == $cfg['plugin']['search']['maxitems'] ? $L['plu_moreres'].' ' : '').$items1." ".$L['plu_match']
                ));

               
$t->parse('MAIN.EASY_FORUMS_RESULTS');
            }
        }

       
// If pages are enabled
       
if(!$cfg['disable_page'])
        {
           
// Check the categories
           
if($sea_pagsub[0]=='all')
            {
               
// All categories
               
$sqlsections = '';
            }
            else
            {
               
// Walking through array
               
foreach($sea_pagsub as $i => $k)
                {
                   
// Making new array
                   
$sections2[] = "page_cat='".sed_sql_prep($k)."'";
                }
               
// SQL query
               
$sqlsections = "AND (".implode(' OR ', $sections2).")";
            }

           
// +TITLE -DESC -TEXT
           
if($sea_pagtitle == 1 && $sea_pagdesc != 1 && $sea_pagtext != 1)
            {
               
$pagsql = "(p.page_title LIKE '".$sqlsearch."'".$addfields_sql.") AND ";
            }
           
// +TITLE +DESC -TEXT
           
elseif($sea_pagtitle == 1 && $sea_pagdesc == 1 && $sea_pagtext != 1)
            {
               
$pagsql = "(p.page_title LIKE '".$sqlsearch."' OR p.page_desc LIKE '".$sqlsearch."'".$addfields_sql.") AND ";
            }
           
// +TITLE -DESC +TEXT
           
elseif($sea_pagtitle == 1 && $sea_pagdesc != 1 && $sea_pagtext == 1)
            {
               
$pagsql = "(p.page_title LIKE '".$sqlsearch."' OR p.page_text LIKE '".sed_sql_prep($sqlsearch)."'".$addfields_sql.") AND ";
            }
           
// -TITLE +DESC -TEXT
           
elseif($sea_pagtitle != 1 && $sea_pagdesc == 1 && $sea_pagtext != 1)
            {
               
$pagsql = "(p.page_desc LIKE '".$sqlsearch."'".$addfields_sql.") AND ";
            }
           
// -TITLE +DESC +TEXT
           
elseif($sea_pagtitle != 1 && $sea_pagdesc == 1 && $sea_pagtext == 1)
            {
               
$pagsql = "(p.page_desc LIKE '".$sqlsearch."' OR p.page_text LIKE '".sed_sql_prep($sqlsearch)."'".$addfields_sql.") AND ";
            }
           
// -TITLE -DESC +TEXT
           
elseif($sea_pagtitle != 1 && $sea_pagdesc != 1 && $sea_pagtext == 1)
            {
               
$pagsql = "(p.page_text LIKE '".sed_sql_prep($sqlsearch)."'".$addfields_sql.") AND ";
            }
           
// +TITLE +DESC +TEXT
           
elseif($sea_pagtitle == 1 && $sea_pagdesc == 1 && $sea_pagtext == 1)
            {
               
$pagsql = "(p.page_text LIKE '".$sqlsearch."' OR p.page_title LIKE '".$sqlsearch."' OR p.page_desc LIKE '".sed_sql_prep($sqlsearch)."'".$addfields_sql.") AND ";
            }

           
// Otherwise error message
           
else
            {
               
$error_string .= "<p>".$L['plu_notseloption']."</p>";
                unset(
$a, $pagsql);
            }

           
// Continue if not cancelled
           
if($a == 'search')
            {
               
// Display text in results
               
$text_from_sql = $cfg['plugin']['search']['showtext'] == 1 ? "page_text, page_type," : "";

               
$sql = sed_sql_query("SELECT SQL_CALC_FOUND_ROWS page_id, page_alias, page_date, page_ownerid, page_title, page_type,
                       
$text_from_sql page_cat from $db_pages p, $db_structure s
                    WHERE
$pagsql
                    p.page_state='0'
                    AND p.page_cat=s.structure_code
                    AND p.page_cat NOT LIKE 'system'
                   
$sqlsections ORDER BY page_cat ASC, page_title ASC
                    LIMIT
$d, ".$cfg['plugin']['search']['maxitems']);
               
$items2 = sed_sql_numrows($sql);
               
$totalitems2 = sed_sql_foundrows();

               
// Display results if something was found
               
if($items2 > 0)
                {
                   
$jj=0;
                    while(
$row = mysql_fetch_array($sql))
                    {
                       
// Apply permissions
                       
if(sed_auth('page', $row['page_cat'], 'R'))
                        {
                           
$page_url = empty($row['page_alias']) ? sed_url('page', 'id='.$row['page_id'].'&highlight='.$hl)
                                :
sed_url('page', 'al='.$row['page_alias'].'&highlight='.$hl);
                           
$t->assign(array(
                               
"PLUGIN_PR_CATEGORY" => "<a href='".sed_url('list', 'c='.$row['page_cat'])."'>".$sed_cat[$row['page_cat']]['tpath']."</a>",
                               
"PLUGIN_PR_TITLE" => "<a href='$page_url'>".htmlspecialchars($row['page_title'])."</a>",
                               
"PLUGIN_PR_TEXT" => hw_clear_mark($row['page_text'], $row['page_type'], $words),
                               
"PLUGIN_PR_TIME" => @date($cfg['dateformat'], $row['page_date'] + $usr['timezone'] * 3600),
                               
"PLUGIN_PR_ODDEVEN" => sed_build_oddeven($jj),
                               
"PLUGIN_PR_NUM" => $jj,
                            ));
                           
$t->parse("MAIN.EASY_PAGES_RESULTS.ITEM");
                           
$jj++;
                        }
                    }

                   
// Output
                   
$t->assign(array(
                       
"PLUGIN_EASY_PAGE_FOUND" => $L['plu_found']." ".($items2 == $cfg['plugin']['search']['maxitems'] ? $L['plu_moreres'].' ' : '').$items2." ".$L['plu_match']
                    ));

                   
$t->parse('MAIN.EASY_PAGES_RESULTS');
                }
            }
        }

       
// Common "nothing was found" message
       
if(!$items1 > 0 && !$items2 > 0)
        {
           
$error_string .= "<p>".$L['plu_noneresult']."</p>";
        }
        else
        {
            if (
$totalitems1 > $totalitems2)
            {
               
$totalitems = $totalitems1;
            }
            else
            {
               
$totalitems = $totalitems2;
            }
           
// Pagination
           
if ($items < $totalitems)
            {
               
$pagnav = sed_pagination(sed_url('plug', array('e' => 'search', 'pre' => $sq)), $d, $totalitems, $cfg['plugin']['search']['maxitems']);
                list(
$pagination_prev, $pagination_next) = sed_pagination_pn(sed_url('plug', array('e' => 'search', 'pre' => $sq)), $d, $totalitems, $cfg['plugin']['search']['maxitems'], TRUE);
               
$t->assign(array(
                   
'PLUGIN_PAGEPREV' => $pagination_prev,
                   
'PLUGIN_PAGENEXT' => $pagination_next,
                   
'PLUGIN_PAGNAV' => $pagnav
               
));
            }
            else
            {
               
$t->assign(array(
                   
'PLUGIN_PAGEPREV' => '',
                   
'PLUGIN_PAGENEXT' => '',
                   
'PLUGIN_PAGNAV' => ''
               
));
            }
        }
    }
}

// Output
$t->assign(array(
   
"PLUGIN_TITLE" => $plugin_title,
   
"PLUGIN_SEARCH_ACTION" => empty($tab) ? sed_url('plug', 'e=search') : sed_url('plug', 'e=search&tab=' . $tab),
   
"PLUGIN_SEARCH_TEXT" => "<input type='text' name='sq' value='".htmlspecialchars($sq)."' size='32' maxlength='".$cfg['plugin']['search']['maxsigns']."' />",
   
"PLUGIN_SEARCH_KEY" => "<button type='submit'>".$L['plu_search_key']."</button>",
   
"PLUGIN_ERROR" => $error_string
));

// Display warnings and error messages
if(strlen($error_string))
{
$t->parse('MAIN.ERROR'); }

// Debug info
// sed_print($_POST, $sed_cat, $words);

?>