$value) { //$_strlen_value = MB_SAFE ? mb_strlen($value) : strlen($value); $_strlen_value = strlen($value); if($_strlen_value >= $content["search"]["minchar"]) { $value = trim($value); $content["search_word"][$key] = preg_quote($value); $content["search_word"][$key] = str_replace("\\?", '.?', $content["search_word"][$key]); $content["search_word"][$key] = str_replace("\\*", '.*', $content["search_word"][$key]); $content['highlight'][] = $value; } } if(count($content['highlight'])) { $s_result_highlight = implode(' ', $content['highlight']); if(!empty($_POST["search_input_field"])) { // make a redirection to avoid message when using browser back $GLOBALS['_getVar']['searchstart'] = 1; $GLOBALS['_getVar']['searchwords'] = $s_result_highlight; headerRedirect(PHPWCMS_URL.'index.php' . returnGlobalGET_QueryString('rawurlencode')); } $s_result_highlight = rawurlencode($s_result_highlight); $sql = "SELECT article_id, article_cid, article_title, article_username, article_subtitle, "; $sql .= "article_summary, article_keyword, UNIX_TIMESTAMP(article_tstamp) AS article_date "; $sql .= "FROM ".DB_PREPEND."phpwcms_article ar "; $sql .= "LEFT JOIN ".DB_PREPEND."phpwcms_articlecat ac ON "; $sql .= "(ar.article_cid = ac.acat_id OR ar.article_cid = 0)"; $sql .= " WHERE "; // limit to special structure IDs if not all if(count($content["search"]["start_at"])) { $sql .= 'ar.article_cid IN ('.implode(',', $content["search"]["start_at"]).')'; } else { $sql .= "IF(ar.article_cid = 0, " . (empty($GLOBALS['indexpage']['acat_nosearch']) ? 1 : 0) .", 1)"; } $sql .= " AND ac.acat_nosearch != 1 AND ac.acat_aktiv=1 AND ac.acat_public=1 AND "; if(!FEUSER_LOGIN_STATUS) { $sql .= "ac.acat_regonly=0 AND "; } $sql .= "ar.article_public=1 AND ar.article_aktiv=1 AND ar.article_deleted=0 AND ar.article_nosearch!=1 AND "; // enhanced IF statement by kh 2008/12/03 $sql .= "IF((ar.article_begin < NOW() AND ar.article_end > NOW()) OR (ar.article_archive_status=1 AND ac.acat_archive=1), 1, 0) "; $sql .= "GROUP BY ar.article_id"; if($sresult = mysql_query($sql, $db)) { $s_search_words = implode('|', $content["search_word"]); while($srow = mysql_fetch_assoc($sresult)) { // read article base info for search $s_id = $srow["article_id"]; $s_cid = $srow["article_cid"]; $s_title = $srow["article_title"]; $s_date = $srow["article_date"]; $s_user = $srow["article_username"]; $s_text = $srow["article_subtitle"].' '.$srow["article_summary"]; // read article content for search $csql = "SELECT acontent_title, acontent_subtitle, acontent_text, acontent_html, acontent_files, acontent_type, acontent_form FROM "; $csql .= DB_PREPEND."phpwcms_articlecontent WHERE acontent_aid=".$s_id." "; $csql .= "AND acontent_visible=1 AND acontent_trash=0 AND "; if( !FEUSER_LOGIN_STATUS ) { $csql .= 'acontent_granted=0 AND '; } $csql .= "acontent_type IN (0, 1, 2, 4, 5, 6, 7, 11, 14, 26, 27, 29, 100, 31, 32)"; if($scresult = mysql_query($csql, $db)) { while($scrow = mysql_fetch_row($scresult)) { $s_text .= ' '.$scrow[0].' '.$scrow[1].' '.$scrow[2].' '.$scrow[3]; switch($scrow[5]) { case 7: // file list, get files listed here $s_files = getFileInformation( explode(':', $scrow[4]) ); if(is_array($s_files) && count($s_files)) { // retrieve file information foreach($s_files as $s_files_value) { $s_text .= ' '.$s_files_value['f_name']; } } break; // optimize images for search case 2: case 29: $scrow[6] = @unserialize($scrow[6]); if(isset($scrow[6]['images']) && is_array($scrow[6]['images']) && count($scrow[6]['images'])) { $s_imgname = ''; foreach($scrow[6]['images'] as $s_imgtext) { $s_text .= ' '.str_replace('|', ' ', $s_imgtext[6]); $s_imgname .= ' '.$s_imgtext[1]; } $s_text .= $s_imgname; } break; case 31: $scrow[6] = @unserialize($scrow[6]); if(isset($scrow[6]['images']) && is_array($scrow[6]['images']) && count($scrow[6]['images'])) { foreach($scrow[6]['images'] as $s_imgtext) { $s_text .= ' '.$s_imgtext['thumb_name']; $s_text .= ' '.$s_imgtext['caption']; $s_text .= ' '.$s_imgtext['url']; $s_text .= ' '.$s_imgtext['zoom_name']; } } break; // search recipe case 26: $scrow[6] = @unserialize($scrow[6]); if(isset($scrow[6]['preparation'])) { $s_text .= ' '.$scrow[6]['preparation'].' '.$scrow[6]['ingredients']; $s_text .= ' '.$scrow[6]['calorificvalue'].' '.$scrow[6]['calorificvalue_add']; } break; } $s_text = preg_replace('/]*>.*?<\/script>/is', '', $s_text); // strip all