md5(uniqid(rand(),1))); } else { $USER['ID'] = addslashes($USER['ID']); } if (!isset($USER['am'])) $USER['am'] = 1; } // Save the user profile in a cookie function user_save_profile() { global $xoopsModuleConfig, $USER, $HTTP_SERVER_VARS; static $profile_saved = 0; if (!$profile_saved) { $data = base64_encode(serialize($USER)); setcookie($xoopsModuleConfig['cookie_name'].'_data', $data, time()+86400*30, $xoopsModuleConfig['cookie_path']); $profile_saved=1; } } /************************************************************************** Database functions **************************************************************************/ // Fetch all rows in an array function db_fetch_rowset($result) { global $xoopsDB; $rowset = array(); while ($row = $xoopsDB->fetchArray($result)) $rowset[] = $row; return $rowset; } /************************************************************************** Utilities functions **************************************************************************/ // Function to create correct URLs for image name with space or exotic characters function path2url($path) { return str_replace("%2F","/",rawurlencode($path)); } // create tabs for multi-page navigation // $template = array( // 'left_text' => , // 'tab_header' => , // 'tab_trailer' => , // 'active_tab' => , // 'inactive_tab' => ); function create_tabs($items, $curr_page, $total_pages, $template) { global $xoopsModuleConfig; if (function_exists('theme_create_tabs')) { theme_create_tabs($items, $curr_page, $total_pages, $template); return; } $maxTab = $xoopsModuleConfig['max_tabs']; $tabs = sprintf($template['left_text'], $items, $total_pages); if (($total_pages == 1)) return $tabs; $tabs .= $template['tab_header']; if ($curr_page == 1) { $tabs .= sprintf($template['active_tab'], 1); } else { $tabs .= sprintf($template['inactive_tab'], 1, 1); } if ($total_pages > $maxTab){ $start = max(2, $curr_page - floor(($maxTab -2)/2)); $start = min($start, $total_pages - $maxTab +2); $end = $start + $maxTab -3; } else { $start = 2; $end = $total_pages-1; } for ($page = $start ; $page <= $end; $page++) { if ($page == $curr_page) { $tabs .= sprintf($template['active_tab'], $page); } else { $tabs .= sprintf($template['inactive_tab'], $page, $page); } } if ($total_pages > 1){ if ($curr_page == $total_pages) { $tabs .= sprintf($template['active_tab'], $total_pages); } else { $tabs .= sprintf($template['inactive_tab'], $total_pages, $total_pages); } } return $tabs.$template['tab_trailer']; } /************************************************************************** Functions for album/picture management **************************************************************************/ // Get the list of albums that the current user can't see function get_private_album_set() { global $ALBUM_SET, $USER_DATA, $FORBIDDEN_SET, $xoopsDB,$xoopsUser,$suid; if (is_object ($xoopsUser)){ $usergroups= $xoopsUser->getgroups(); $usergroup=implode(",",$usergroups); } else $usergroup= XOOPS_GROUP_ANONYMOUS; $result = $xoopsDB->query("SELECT aid FROM ".$xoopsDB->prefix("xcgal_albums")." WHERE visibility NOT IN ($usergroup, 0,".(FIRST_USER_CAT + USER_ID).")"); if (($xoopsDB->getRowsNum($result))) { $set =''; while($album=$xoopsDB->fetchArray($result)){ $set .= $album['aid'].','; } // while $FORBIDDEN_SET = "AND p.aid NOT IN (".substr($set, 0, -1).') '; $ALBUM_SET .= 'AND aid NOT IN ('.substr($set, 0, -1).') '; } $xoopsDB->freeRecordSet($result); } // Retrieve the data for a picture or a set of picture function get_pic_data($album, &$count, &$album_name, $limit1=-1, $limit2=-1, $set_caption = true) { global $USER, $xoopsModuleConfig, $ALBUM_SET, $CURRENT_CAT_NAME, $HTTP_GET_VARS, $HTML_SUBST, $THEME_DIR; global $GLOBALS; global $xoopsDB, $xoopsModule, $xoopsConfig; $myts =& MyTextSanitizer::getInstance(); // MyTextSanitizer object $sort_array = array('na' => 'filename ASC', 'nd' => 'filename DESC', 'da' => 'pid ASC', 'dd' => 'pid DESC'); $sort_code = isset($USER['sort'])? $USER['sort'] : $xoopsModuleConfig['default_sort_order']; $sort_order = isset($sort_array[$sort_code]) ? $sort_array[$sort_code] : $sort_array[$xoopsModuleConfig['default_sort_order']]; $limit = ($limit1 != -1) ? ' LIMIT '. $limit1 : ''; $limit .= ($limit2 != -1) ? ' ,'. $limit2 : ''; if ($limit2 == 1) { $select_columns = '*'; } else { $select_columns = 'pid, filepath, filename, url_prefix, filesize, pwidth, pheight, ctime'; } // Regular albums if ((is_numeric($album))) { $album_name = get_album_name($album); $approved = GALLERY_ADMIN_MODE ? '' : 'AND approved=\'YES\''; $result = $xoopsDB->query("SELECT count(*) from ".$xoopsDB->prefix("xcgal_pictures")." WHERE aid='$album' $approved $ALBUM_SET"); $nbEnr = $xoopsDB->fetchArray($result); $count = $nbEnr['count(*)']; $xoopsDB->freeRecordSet($result); if($select_columns != '*') $select_columns .= ', title, caption, owner_id'; $result = $xoopsDB->query("SELECT $select_columns from ".$xoopsDB->prefix("xcgal_pictures")." WHERE aid='$album' $approved $ALBUM_SET ORDER BY $sort_order $limit"); $rowset = db_fetch_rowset($result); $xoopsDB->freeRecordSet($result); // Set picture caption if ($set_caption) foreach ($rowset as $key => $row){ $caption = $rowset[$key]['title'] ? "".$rowset[$key]['title']."" : ''; if ($xoopsModuleConfig['caption_in_thumbview']){ $caption .= $rowset[$key]['caption'] ? "".$myts->makeTareaData4Show($rowset[$key]['caption'],0)."" : ''; } if ($xoopsModuleConfig['display_comment_count']) { $comments_nr = xoops_comment_count($xoopsModule->mid(),$row['pid'] ); if ($comments_nr > 0) $caption .= "".sprintf(_MD_FUNC_COM, $comments_nr ).""; } $rowset[$key]['caption_text'] = $caption; } return $rowset; } // Meta albums switch($album){ case 'lastcom': // Last comments if ($ALBUM_SET && $CURRENT_CAT_NAME) { $album_name = $album_name = _MD_LASTCOM.' - '. $CURRENT_CAT_NAME; } else { $album_name = _MD_LASTCOM; } $result = $xoopsDB->query("SELECT count(*) from ".$xoopsDB->prefix("xoopscomments").", ".$xoopsDB->prefix("xcgal_pictures")." WHERE com_modid = ".$xoopsModule->mid()." AND approved='YES' AND com_itemid = pid $ALBUM_SET"); $nbEnr = $xoopsDB->fetchArray($result); $count = $nbEnr['count(*)']; $xoopsDB->freeRecordSet($result); if($select_columns != '*'){ $select_columns = $select_columns.', com_id, com_uid,com_itemid,com_rootid, com_exparams, com_created, com_title'; } include_once XOOPS_ROOT_PATH."/include/comment_constants.php"; $result = $xoopsDB->query("SELECT $select_columns FROM ".$xoopsDB->prefix("xoopscomments").", ".$xoopsDB->prefix("xcgal_pictures")." WHERE com_modid = ".$xoopsModule->mid()." AND approved = 'YES' AND pid = com_itemid AND com_status=".XOOPS_COMMENT_ACTIVE." $ALBUM_SET ORDER by com_id DESC $limit"); $rowset = db_fetch_rowset($result); $xoopsDB->freeRecordSet($result); $member_handler =& xoops_gethandler('member'); $comment_config = $xoopsModule->getInfo('comments'); if ($set_caption) foreach ($rowset as $key => $row){ if ($row['com_uid'] > 0){ $poster =& $member_handler->getUser($row['com_uid']); if (is_object($poster)) { $posters = ''.$poster->getVar('uname').''; } else { $posters = $GLOBALS['xoopsConfig']['anonymous']; }} else $posters = $GLOBALS['xoopsConfig']['anonymous']; $comtitle=''.$row['com_title'].''; $caption = "".$posters.''."".formatTimestamp($row['com_created'],'m').''."".$comtitle.''; $rowset[$key]['caption_text'] = $caption; } return $rowset; break; case 'lastup': // Last uploads if ($ALBUM_SET && $CURRENT_CAT_NAME) { $album_name = _MD_LASTUP.' - '. $CURRENT_CAT_NAME; } else { $album_name = _MD_LASTUP; } $result = $xoopsDB->query("SELECT count(*) from ".$xoopsDB->prefix("xcgal_pictures")." WHERE approved = 'YES' $ALBUM_SET"); $nbEnr = $xoopsDB->fetchArray($result); $count = $nbEnr['count(*)']; $xoopsDB->freeRecordSet($result); if($select_columns != '*') $select_columns .= ', owner_id'; $result = $xoopsDB->query("SELECT $select_columns FROM ".$xoopsDB->prefix("xcgal_pictures")." WHERE approved = 'YES' $ALBUM_SET ORDER BY pid DESC $limit"); $rowset = db_fetch_rowset($result); $xoopsDB->freeRecordSet($result); if ($set_caption) foreach ($rowset as $key => $row){ $user_handler =& xoops_gethandler('member'); $pic_owner =& $user_handler->getUser($row['owner_id']); if (is_object ($pic_owner)){ $user_link = '
'.$pic_owner->uname().''; } else { $user_link = ''; } $caption = "".formatTimestamp($row['ctime'],'m').$user_link.''; $rowset[$key]['caption_text'] = $caption; } return $rowset; break; case 'topn': // Most viewed pictures if ($ALBUM_SET && $CURRENT_CAT_NAME) { $album_name = _MD_TOPN.' - '. $CURRENT_CAT_NAME; } else { $album_name = _MD_TOPN; } $result = $xoopsDB->query("SELECT count(*) from ".$xoopsDB->prefix("xcgal_pictures")." WHERE approved = 'YES' AND hits > 0 $ALBUM_SET"); $nbEnr = $xoopsDB->fetchArray($result); $count = $nbEnr['count(*)']; $xoopsDB->freeRecordSet($result); if($select_columns != '*') $select_columns .= ', hits'; $result = $xoopsDB->query("SELECT $select_columns FROM ".$xoopsDB->prefix("xcgal_pictures")." WHERE approved = 'YES'AND hits > 0 $ALBUM_SET ORDER BY hits DESC $limit"); $rowset = db_fetch_rowset($result); $xoopsDB->freeRecordSet($result); if ($set_caption) foreach ($rowset as $key => $row){ $caption = "".sprintf(_MD_FUNC_VIEW, $row['hits']).''; $rowset[$key]['caption_text'] = $caption; } return $rowset; break; case 'toprated': // Top rated pictures if ($ALBUM_SET && $CURRENT_CAT_NAME) { $album_name = _MD_TOPRATED.' - '. $CURRENT_CAT_NAME; } else { $album_name = _MD_TOPRATED; } $result = $xoopsDB->query("SELECT count(*) from ".$xoopsDB->prefix("xcgal_pictures")." WHERE approved = 'YES' AND votes >= '{$xoopsModuleConfig['min_votes_for_rating']}' $ALBUM_SET"); $nbEnr = $xoopsDB->fetchArray($result); $count = $nbEnr['count(*)']; $xoopsDB->freeRecordSet($result); if($select_columns != '*') $select_columns .= ', pic_rating, votes'; $result = $xoopsDB->query("SELECT $select_columns FROM ".$xoopsDB->prefix("xcgal_pictures")." WHERE approved = 'YES' AND votes >= '{$xoopsModuleConfig['min_votes_for_rating']}' $ALBUM_SET ORDER BY ROUND((pic_rating+1)/2000) DESC, votes DESC $limit"); $rowset = db_fetch_rowset($result); $xoopsDB->freeRecordSet($result); if ($set_caption) foreach ($rowset as $key => $row){ if (defined('THEME_HAS_RATING_GRAPHICS')) { $prefix= $THEME_DIR; } else { $prefix= ''; } $caption = "".''.'
'.sprintf(_MD_FUNC_VOTE, $row['votes']).'
'; $rowset[$key]['caption_text'] = $caption; } return $rowset; break; case 'lasthits': // Last viewed pictures if ($ALBUM_SET && $CURRENT_CAT_NAME) { $album_name = _MD_LASTHITS.' - '. $CURRENT_CAT_NAME; } else { $album_name = _MD_LASTHITS; } $result = $xoopsDB->query("SELECT count(*) from ".$xoopsDB->prefix("xcgal_pictures")." WHERE approved = 'YES' $ALBUM_SET"); $nbEnr = $xoopsDB->fetchArray($result); $count = $nbEnr['count(*)']; $xoopsDB->freeRecordSet($result); if($select_columns != '*') $select_columns .= ', mtime'; $result = $xoopsDB->query("SELECT $select_columns FROM ".$xoopsDB->prefix("xcgal_pictures")." WHERE approved = 'YES' $ALBUM_SET ORDER BY mtime DESC $limit"); $rowset = db_fetch_rowset($result); $xoopsDB->freeRecordSet($result); if ($set_caption) foreach ($rowset as $key => $row){ $caption = "".formatTimestamp($row['mtime'],'m').''; $rowset[$key]['caption_text'] = $caption; } return $rowset; break; case 'random': // Random pictures if ($ALBUM_SET && $CURRENT_CAT_NAME) { $album_name = _MD_RANDOM.' - '. $CURRENT_CAT_NAME; } else { $album_name = _MD_RANDOM; } $result = $xoopsDB->query("SELECT count(*) from ".$xoopsDB->prefix("xcgal_pictures")." WHERE approved = 'YES' $ALBUM_SET"); $nbEnr = $xoopsDB->fetchArray($result); $pic_count = $nbEnr['count(*)']; $xoopsDB->freeRecordSet($result); // if we have more than 1000 pictures, we limit the number of picture returned // by the SELECT statement as ORDER BY RAND() is time consuming if ($pic_count > 1000) { $result = $xoopsDB->query("SELECT count(*) from ".$xoopsDB->prefix("xcgal_pictures")." WHERE approved = 'YES'"); $nbEnr = $xoopsDB->fetchArray($result); $total_count = $nbEnr['count(*)']; $xoopsDB->freeRecordSet($result); $granularity = floor($total_count / RANDPOS_MAX_PIC); $cor_gran = ceil($total_count / $pic_count); srand(time()); for ($i=1; $i<= $cor_gran; $i++) $random_num_set =rand(0, $granularity).', '; $random_num_set = substr($random_num_set,0, -2); $result = $xoopsDB->query("SELECT $select_columns FROM ".$xoopsDB->prefix("xcgal_pictures")." WHERE randpos IN ($random_num_set) AND approved = 'YES' $ALBUM_SET ORDER BY RAND() LIMIT $limit2"); } else { $result = $xoopsDB->query("SELECT $select_columns FROM ".$xoopsDB->prefix("xcgal_pictures")." WHERE approved = 'YES' $ALBUM_SET ORDER BY RAND() LIMIT $limit2"); } $rowset = array(); while($row = $xoopsDB->fetchArray($result)){ $row['caption_text'] = ''; $rowset[-$row['pid']] = $row; } $xoopsDB->freeRecordSet($result); return $rowset; break; case 'search': // Search results if (isset($USER['search'])) { $search_string = ($USER['search']); } else { $search_string = ''; } if (substr($search_string, 0, 3) == '###') { $query_all = 1; $search_string = substr($search_string, 3); } else { $query_all = 0; } if ($ALBUM_SET && $CURRENT_CAT_NAME) { $album_name = _MD_SEARCH.' - '. $CURRENT_CAT_NAME; } else { $album_name = _MD_SEARCH.' - "'.$search_string. '"'; } //var_dump(htmlspecialchars($search_string)); //$search_string = utf8Encode($search_string); include 'include/search.inc.php'; return $rowset; break; case 'usearch': // User pics search results if (isset($USER['suid']) && $USER['suid'] > 0){ $owner = new XoopsUser($USER['suid']); $album_name = _MD_USEARCH.$owner->uname(); } else $album_name = 'Pics submitted by '.$xoopsConfig['anonymous']; $result = $xoopsDB->query("SELECT count(*) from ".$xoopsDB->prefix("xcgal_pictures")." WHERE approved = 'YES' AND owner_id = '{$USER['suid']}' $ALBUM_SET"); $nbEnr = $xoopsDB->fetchArray($result); $count = $nbEnr['count(*)']; $xoopsDB->freeRecordSet($result); if($select_columns != '*') $select_columns .= ', pic_rating, votes'; $result = $xoopsDB->query("SELECT $select_columns FROM ".$xoopsDB->prefix("xcgal_pictures")." WHERE approved = 'YES' AND owner_id = '{$USER['suid']}' $ALBUM_SET ORDER BY ctime DESC $limit"); $rowset = db_fetch_rowset($result); $xoopsDB->freeRecordSet($result); if ($set_caption) foreach ($rowset as $key => $row){ $caption = "".formatTimestamp($row['ctime'],'m').""; $rowset[$key]['caption_text'] = $caption; } return $rowset; break; case 'mostsend': // Top rated pictures if ($ALBUM_SET && $CURRENT_CAT_NAME) { $album_name = _MD_MOST_SENT.' - '. $CURRENT_CAT_NAME; } else { $album_name = _MD_MOST_SENT; } $result = $xoopsDB->query("SELECT count(*) from ".$xoopsDB->prefix("xcgal_pictures")." WHERE approved = 'YES' AND sent_card > 0 $ALBUM_SET"); $nbEnr = $xoopsDB->fetchArray($result); $count = $nbEnr['count(*)']; $xoopsDB->freeRecordSet($result); if($select_columns != '*') $select_columns .= ', sent_card'; $result = $xoopsDB->query("SELECT $select_columns FROM ".$xoopsDB->prefix("xcgal_pictures")." WHERE approved = 'YES' AND sent_card >0 $ALBUM_SET ORDER BY sent_card DESC $limit"); $rowset = db_fetch_rowset($result); $xoopsDB->freeRecordSet($result); if ($set_caption) foreach ($rowset as $key => $row){ $caption = "".sprintf(_MD_FUNC_SEND, $row['sent_card']).''; $rowset[$key]['caption_text'] = $caption; } return $rowset; break; default : // Invalid meta album redirect_header('index.php',2, _MD_NON_EXIST_AP); } } // End of get_pic_data // Get the name of an album function get_album_name($aid) { global $xoopsDB; $result = $xoopsDB->query("SELECT title from ".$xoopsDB->prefix("xcgal_albums")." WHERE aid='$aid'"); $count = $xoopsDB->getRowsNum($result); if ($count > 0) { $row = $xoopsDB->fetchArray($result); return $row['title']; } else { redirect_header('index.php',2,_MD_NON_EXIST_AP); } } // Add 1 everytime a picture is viewed. function add_hit($pid) { global $xoopsDB; $xoopsDB->queryf("UPDATE ".$xoopsDB->prefix("xcgal_pictures")." SET hits=hits+1, mtime=".time()." WHERE pid='$pid'"); } // Build the breadcrumb function breadcrumb($cat, &$breadcrumb, &$BREADCRUMB_TEXT) { global $xoopsModule; global $CURRENT_CAT_NAME, $xoopsDB; $myts =& MyTextSanitizer::getInstance(); // MyTextSanitizer object $breadcrumb = ''; if ($cat != 0) { $breadcrumb_array = array(); if ($cat >= FIRST_USER_CAT) { $row= array(); $user_handler =& xoops_gethandler('member'); $alb_owner =& $user_handler->getUser($cat-FIRST_USER_CAT); if (!is_object($alb_owner) && !USER_IS_ADMIN) redirect_header('index.php',2,_MD_NO_EXIST_CAT); elseif (!is_object($alb_owner)) $row['uname'] = _MD_FUNC_DELUSER." uid=".($cat - FIRST_USER_CAT); else $row['uname'] = $alb_owner->uname(); $breadcrumb_array[] = array($cat, $row['uname']); $CURRENT_CAT_NAME = sprintf(_MD_INDEX_USERS_GAL, $row['uname']); $row['parent'] = 1; $xoopsDB->freeRecordSet($result); } else { $result = $xoopsDB->query("SELECT name, parent FROM ".$xoopsDB->prefix("xcgal_categories")." WHERE cid = '$cat'"); if ($xoopsDB->getRowsNum($result) == 0) redirect_header('index.php',2,_MD_NO_EXIST_CAT); $row = $xoopsDB->fetchArray($result); $row['name']=$myts->makeTboxData4Show($row['name']); $breadcrumb_array[] = array($cat, $row['name']); $CURRENT_CAT_NAME = $row['name']; $xoopsDB->freeRecordSet($result); } while($row['parent'] != 0){ $result = $xoopsDB->query("SELECT cid, name, parent FROM ".$xoopsDB->prefix("xcgal_categories")." WHERE cid = '{$row['parent']}'"); if ($xoopsDB->getRowsNum($result) == 0) redirect_header('index.php',2,_MD_ORPHAN_CAT); $row = $xoopsDB->fetchArray($result); $row['name']=$myts->makeTboxData4Show($row['name']); $breadcrumb_array[] = array($row['cid'], $row['name']); $xoopsDB->freeRecordSet($result); } // while $breadcrumb_array = array_reverse($breadcrumb_array); $breadcrumb = ''.$xoopsModule->getVar('name').''; $BREADCRUMB_TEXT = $xoopsModule->getVar('name'); foreach ($breadcrumb_array as $category){ $link = "{$category[1]}"; $breadcrumb .= ' > ' . $link; $BREADCRUMB_TEXT .= ' > ' . $category[1]; } } } /************************************************************************** **************************************************************************/ // Compute image geometry based on max width / height function compute_img_size($width, $height, $max) { $ratio = max($width, $height) / $max; if ($ratio > 1.0) { $image_size['reduced'] = true; } $ratio = max($ratio, 1.0); $image_size['width'] = ceil($width / $ratio); $image_size['height'] = ceil($height / $ratio); $image_size['geom'] = 'width="'.$image_size['width'].'" height="'.$image_size['height'].'"'; return $image_size; } // Prints thumbnails of pictures in an album function display_thumbnails($album, $cat, $page, $thumbcols, $thumbrows, $display_tabs) { global $xoopsModuleConfig, $HTTP_GET_VARS, $xoopsTpl; $myts =& MyTextSanitizer::getInstance(); // MyTextSanitizer object $thumb_per_page = $thumbcols * $thumbrows; $lower_limit = ($page-1) * $thumb_per_page; $pic_data = get_pic_data($album, $thumb_count, $album_name, $lower_limit, $thumb_per_page); $total_pages = ceil($thumb_count / $thumb_per_page); $i = 0; if (count($pic_data) > 0) { foreach ($pic_data as $key => $row) { $i++; $image_size = compute_img_size($row['pwidth'], $row['pheight'], $xoopsModuleConfig['thumb_width']); $pic_title =_MD_FUNC_FNAME.$myts->makeTBoxData4Show($row['filename'])."\n". _MD_FUNC_FSIZE.($row['filesize'] >> 10)._MD_KB."\n". _MD_FUNC_DIM.$row['pwidth']."x".$row['pheight']."\n". _MD_FUNC_DATE.formatTimestamp($row['ctime'],'m'); $thumb_list[$i]['pos'] = $key < 0 ? $key : $i - 1 + $lower_limit; $thumb_list[$i]['image'] = "\"{$row['filename']}\""; $thumb_list[$i]['caption'] = ($row['caption_text']); $thumb_list[$i]['admin_menu'] = ''; $thumb_list[$i]['pid'] = $row['pid']; } $xoopsTpl->assign('no_img',0); theme_display_thumbnails($thumb_list, $thumb_count, $album_name, $album, $cat, $page, $total_pages, is_numeric($album), $display_tabs); } else { $xoopsTpl->assign('no_img',1); $xoopsTpl->assign('lang_no_img',_MD_NO_IMG_TO_DISPLAY); $xoopsTpl->assign('album_name',$myts->makeTBoxData4Show($album_name)); } } // Return the url for a picture, allows to have pictures spreaded over multiple servers function get_pic_url(&$pic_row, $mode) { global $xoopsModuleConfig; static $pic_prefix = array(); static $url_prefix = array(); if (!count($pic_prefix)) { $pic_prefix = array( 'thumb' => $xoopsModuleConfig['thumb_pfx'], 'normal' => $xoopsModuleConfig['normal_pfx'], 'fullsize' => '' ); $url_prefix = array( 0 => $xoopsModuleConfig['fullpath'], ); } return $url_prefix[$pic_row['url_prefix']]. path2url($pic_row['filepath']. $pic_prefix[$mode]. $pic_row['filename']); } function clean_words(&$entry) { //global $charset, $multibyte_charset; static $drop_char_match = array('^', '$', '(', ')', '<', '>', '`', '\'', '"', '|', ',', '@', '_', '?', '%', '~', '.', '[', ']', '{', '}', ':', '\\', '/', '=', '\'', '!'); static $drop_char_replace = array(' ', ' ', ' ', ' ', ' ', ' ', ' ', '', '', ' ', ' ', ' ', ' ', '', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' , ' ', ' ', ' ', ' ', ' ', ' '); $entry = ' ' . strtolower($entry) . ' '; // Replace line endings by a space $entry = preg_replace('/[\n\r]/is', ' ', $entry); // + and - becomes and & not $entry = str_replace(' +', ' and ', $entry); $entry = str_replace(' -', ' not ', $entry); // // Filter out strange characters like ^, $, &, change "it's" to "its" // if(XOOPS_USE_MULTIBYTES == 0) for($i = 0; $i < count($drop_char_match); $i++) { $entry = str_replace($drop_char_match[$i], $drop_char_replace[$i], $entry); } return $entry; } ?>