Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 09-07-2005, 09:18 AM
zurih zurih is offline
 
Join Date: Nov 2004
Location: Israel
Posts: 130
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Search Query in Hebrew (not in vb)

Hi!
I'm having a problem solving this one.
I installed a cms software based on php/mysql. In oroginal it was based on english, and I translated everything to Hebrew.

Everything works fine, but the search queries.
When I search something (a download, an articles, in forums etc) it doesnt find nothing. If it is in english it works perfect.

Now the thing is that when i run a seach with characters like the attached picture (that is based on windows-1252) >> it works.
those thing are 3 hebrew characters.

Hope I was understandable.

Here is the query.php code:

PHP Code:
<?php
$tmpl
->assign('lang'$lang);
$tmpl->assign('redir'redir());
$q $_GET['q'];
if(
strlen($q)<2) {$q ""; }
if (
$q == "") {
$EOUT msg("searchsite""searchsite_nochara"str_replace("__URL__"$_SERVER['HTTP_REFERER'], $lang['redirect']), $_SERVER['HTTP_REFERER']);
$NOOUT 1;
}
$search_type 'REGEXP';
$search_prefix '';
$search_type = ($_GET['regexp'] == 1) ? 'REGEXP' 'LIKE';
$search_prefix = ($_GET['regexp'] == 1) ? '' '%';
$pattern_or = @explode('or'strtolower($q));
$pattern_tmp "";
$p_and_array = array();
foreach (
$pattern_or as $part) {
$pattern_and = @explode('and'strtolower($part));
$sub_pattern = array();
foreach (
$pattern_and as $sub_part) {
$sub_part trim($sub_part);
if(
$_GET['search_news']==1){
$sub_pattern[] = "
(
title 
$search_type '" $search_prefix $sub_part $search_prefix "' OR 
text 
$search_type '" $search_prefix $sub_part $search_prefix "' OR 
textmore 
$search_type '" $search_prefix $sub_part $search_prefix "'
)"
;
}
if(
$_GET['search_articles']==1) {
$sub_pattern_a[] = "
(
title 
$search_type '" $search_prefix $sub_part $search_prefix "' OR 
content 
$search_type '" $search_prefix $sub_part $search_prefix "'
)"
;
}
if(
$_GET['search_downloads']==|| $_GET['search_links']==1) {
$sub_pattern_b[] = "
(
title 
$search_type '" $search_prefix $sub_part $search_prefix "' OR 
text 
$search_type '" $search_prefix $sub_part $search_prefix "'
)"
;
}
if(
$_GET['search_faq']==1) {
$sub_pattern_d[] = "
(
faq 
$search_type '" $search_prefix $sub_part $search_prefix "' OR 
answer 
$search_type '" $search_prefix $sub_part $search_prefix "'
)"
;
}
if(
$_GET['search_static']==1) {
$sub_pattern_e[] = "
(
title 
$search_type '" $search_prefix $sub_part $search_prefix "' OR 
content 
$search_type '" $search_prefix $sub_part $search_prefix "'
)"
;
}
 
if(
$_GET['search_gallery']==1) {
$sub_pattern_f[] = "
(
title 
$search_type '" $search_prefix $sub_part $search_prefix "' OR 
descr 
$search_type '" $search_prefix $sub_part $search_prefix "'
)"
;
}
}
$pattern_tmp = @implode(' AND '$sub_pattern);
$pattern_tmp_a = @implode(' AND '$sub_pattern_a);
$pattern_tmp_b = @implode(' AND '$sub_pattern_b);
$pattern_tmp_c = @implode(' AND '$sub_pattern_b);
$pattern_tmp_d = @implode(' AND '$sub_pattern_d);
$pattern_tmp_e = @implode(' AND '$sub_pattern_e);
$pattern_tmp_f = @implode(' AND '$sub_pattern_f);
$p_and_array[] = $pattern_tmp;
$p_and_array_a[] = $pattern_tmp_a;
$p_and_array_b[] = $pattern_tmp_b;
$p_and_array_c[] = $pattern_tmp_c;
$p_and_array_d[] = $pattern_tmp_d;
$p_and_array_e[] = $pattern_tmp_e;
$p_and_array_f[] = $pattern_tmp_f;
}
$pattern = @implode(' OR '$p_and_array);
$pattern_a = @implode(' OR '$p_and_array_a);
$pattern_b = @implode(' OR '$p_and_array_b);
$pattern_c = @implode(' OR '$p_and_array_c);
$pattern_d = @implode(' OR '$p_and_array_d);
$pattern_e = @implode(' OR '$p_and_array_e);
$pattern_f = @implode(' OR '$p_and_array_f);
$limit = ($_REQUEST['pp']=="") ? 15 $_REQUEST['pp'];
if(
$_GET['search_gallery']==1){
$galleryitems = array();
$sql $db->Query("SELECT id FROM ".PREFIX."_gallery WHERE area = '$area' AND $pattern_f");
$count_gallery $sql->numrows();
$tmpl->assign('count_gallery',$count_gallery);
$seiten ceil($count_gallery $limit);
$a prepage() * $limit $limit;
if(
$count_gallery $limit){
$tmpl->assign('pages'pagenav($seiten$lang['aktpos'], " <a class=\"page_navigation\" href=\"index.php?q=$q&amp;search_gallery=1&amp;p=query&amp;details=1&amp;pp=".$limit."&amp;page={s}\">{t}</a> "));
}
$sql $db->Query("SELECT id,parent_id,title,descr FROM ".PREFIX."_gallery WHERE area = '$area' AND $pattern_f limit $a,$limit");
while(
$row $sql->fetchrow()){
if(@
strpos(strtolower($row->title), strtolower($q))>1){
$fundort strip_tags($row->title);
} else {
$fundort strip_tags($row->descr);
}
@
eregi(".{0,35}" $q ".{0,35}"$fundort$fo);
$orte " ... ";
while (@list(
$key$val) = @each($fo)) {
$orte .= $val " ... ";}
$orte = @eregi_replace("(".quotemeta($q).")""<span class=\"highlight\">\\1</span>"$orte);
$row->erg $orte;
$row->erg_str $fundort;
array_push($galleryitems,$row);
}
$tmpl->assign('galleryitems'$galleryitems);
}
if(
$_GET['search_faq']==1){
$faqitems = array();
$sql $db->Query("SELECT id FROM ".PREFIX."_faq WHERE area = '$area' AND $pattern_d");
$count_faq $sql->numrows();
$tmpl->assign('count_faq',$count_faq);
$seiten ceil($count_faq $limit);
$a prepage() * $limit $limit;
if(
$count_faq $limit){
$tmpl->assign('pages'pagenav($seiten$lang['aktpos'], " <a class=\"page_navigation\" href=\"index.php?q=$q&amp;search_faq=1&amp;p=query&amp;details=1&amp;pp=".$limit."&amp;page={s}\">{t}</a> "));
}
$sql $db->Query("SELECT id,parent_id,faq,answer FROM ".PREFIX."_faq WHERE area = '$area' AND $pattern_d limit $a,$limit");
while(
$row $sql->fetchrow()){
if(@
strpos(strtolower($row->faq), strtolower($q))>1){
$fundort strip_tags($row->faq);
} else {
$fundort strip_tags($row->answer);
}
@
eregi(".{0,35}" $q ".{0,35}"$fundort$fo);
$orte " ... ";
while (@list(
$key$val) = @each($fo)) {
$orte .= $val " ... ";}
$orte = @eregi_replace("(".quotemeta($q).")""<span class=\"highlight\">\\1</span>"$orte);
$row->erg $orte;
$row->erg_str $fundort;
array_push($faqitems,$row);
}
$tmpl->assign('faqitems'$faqitems);
}
if(
$_GET['search_static']==1){
$static_items = array();
$sql "SELECT id FROM ".PREFIX."_static WHERE $pattern_e ORDER BY ctime $ascdesc";
$res $db->Query($sql);
$count_static $res->numrows();
$tmpl->assign('count_static',$count_static);
$seiten ceil($count_static $limit);
$a prepage() * $limit $limit;
$sql "SELECT * FROM ".PREFIX."_static WHERE $pattern_e ORDER BY ctime $ascdesc";
$res $db->Query($sql);
if(
$count_static $limit){
$tmpl->assign('pages'pagenav($seiten$lang['aktpos'], " <a class=\"page_navigation\" href=\"index.php?q=$q&amp;search_static=1&amp;p=query&amp;details=1&amp;pp=".$limit."&amp;page={s}\">{t}</a> "));
}
while(
$row $res->fetchrow()){
if(@
strpos(strtolower($row->content), strtolower($q))>1){
$fundort strip_tags($row->content);
} else {
$fundort strip_tags($row->content);
}
@
eregi(".{0,35}" $q ".{0,35}"$fundort$fo);
$orte " ... ";
while (@list(
$key$val) = @each($fo)) {
$orte .= $val " ... ";}
$orte = @eregi_replace("(".quotemeta($q).")""<span class=\"highlight\">\\1</span>"$orte);
$row->erg $orte;
$row->erg_str $fundort;
array_push($static_items,$row);
}
$tmpl->assign('static_items'$static_items);
}
if(
$_GET['search_news']==1){
$newsitems = array();
$db_search " && ( (cansearch='yes') AND $pattern )";
$sql "SELECT newsid FROM ".PREFIX."_news WHERE
((area_id='
$area' || allareas='yes') && 
((time_end>="
.time().") || 
(time_end='1') || 
(time_end='0')) && 
(((ispublic='1')) && 
(time_start<="
.time().") $db_search)) 
ORDER BY ntime 
$ascdesc";
$res $db->Query($sql);
$count_news $res->numrows();
$tmpl->assign('count_news',$count_news);
$seiten ceil($count_news $limit);
$a prepage() * $limit $limit;
$sql "SELECT
area_id,
newscat,
uid,
newsid,
title,
text, 
textmore, 
time_start, 
ntime 
FROM "
.PREFIX."_news WHERE 
((area_id='
$area' || allareas='yes') && 
((time_end>="
.time().") || 
(time_end='1') || 
(time_end='0')) && 
(((ispublic='1')) && 
(time_start<="
.time().") $db_search)) 
ORDER BY ntime 
$ascdesc limit $a,$limit";
$res $db->Query($sql);
if(
$count_news $limit){
$tmpl->assign('pages'pagenav($seiten$lang['aktpos'], " <a class=\"page_navigation\" href=\"index.php?q=$q&amp;search_news=1&amp;p=query&amp;details=1&amp;pp=".$limit."&amp;page={s}\">{t}</a> "));
}
while(
$row $res->fetchrow()){
if(@
strpos(strtolower($row->text), strtolower($q))>1){
$fundort strip_tags($row->text);
} else {
$fundort strip_tags($row->textmore);
}
@
eregi(".{0,35}" $q ".{0,35}"$fundort$fo);
$orte " ... ";
while (@list(
$key$val) = @each($fo)) {
$orte .= $val " ... ";}
$orte = @eregi_replace("(".quotemeta($q).")""<span class=\"highlight\">\\1</span>"$orte);
$row->erg $orte;
$row->erg_str $fundort;
array_push($newsitems,$row);
}
$tmpl->assign('newsitems'$newsitems);
}
if(
$_GET['search_articles']==1){
$articleitems = array();
$db_search " && ( (cansearch='yes') AND $pattern_a )";
$sql "
SELECT id FROM "
.PREFIX."_articles WHERE 
((area='
$area' || allareas='yes') && 
((time_end>="
.time().") || 
(time_end='1') || 
(time_end='0')) && 
(((active='1')) && 
(time_start<="
.time().") && 
(showonpage='1') 
$db_search ))";
$res $db->Query($sql);
$count_articles $res->numrows();
$tmpl->assign('count_articles',$count_articles);
$seiten ceil($count_articles $limit);
$a prepage() * $limit $limit;
$sql "
SELECT 
id,
area,
type,
title,
content,
ctime
FROM "
.PREFIX."_articles WHERE 
((area='
$area' || allareas='yes') && 
((time_end>="
.time().") || 
(time_end='1') || 
(time_end='0')) && 
(((active='1')) && 
(time_start<="
.time().") && 
(showonpage='1') 
$db_search )) 
ORDER BY ctime limit 
$a,$limit";
$res $db->Query($sql);
if(
$count_articles $limit){
$tmpl->assign('pages'pagenav($seiten$lang['aktpos'], " <a class=\"page_navigation\" href=\"index.php?q=$q&amp;search_articles=1&amp;p=query&amp;details=1&amp;pp=".$limit."&amp;page={s}\">{t}</a> "));
}
while(
$row $res->fetchrow()){
if(@
strpos(strtolower($row->content), strtolower($q))>1){
$fundort strip_tags($row->content);
}
@
eregi(".{0,35}" $q ".{0,35}"$fundort$fo);
$orte " ... ";
while (@list(
$key$val) = @each($fo)) {
$orte .= $val " ... ";}
$orte = @eregi_replace("(".quotemeta($q).")""<span class=\"highlight\">\\1</span>"$orte);
$row->erg $orte;
$row->erg_str $fundort;
array_push($articleitems,$row);
}
$tmpl->assign('articleitems'$articleitems);
}
if(
$_GET['search_downloads']==1){
$group_ids = array();
if (@
is_numeric(UID)) {
$queryfirst "SELECT group_id_misc FROM " PREFIX "_user WHERE uid = " UID;
$result $db->Query($queryfirst);
$user $result->fetchrow();
if(
$user->group_id_misc != ""){
$group_ids_pre UGROUP ";" $user->group_id_misc;
$group_ids     = @explode(";"$group_ids_pre);
} else {
$group_ids[] = UGROUP;
}
} else {
$group_ids[] = 2;
}
$downloads = array();
$sql "SELECT ctime,title,text,area,id,catid FROM " PREFIX "_downloads WHERE $pattern_b limit 200";
$res $db->Query($sql);
$num $res->numrows();
while(
$item$res->fetchrow()){
$query $db->Query("SELECT group_id FROM " PREFIX "_downloadcat WHERE catid = '$item->catid'");
$row $query->fetchrow();
$g_array = @explode(","$row->group_id);
if (
array_intersect($group_ids$g_array)) {
$count_downloads += 1;
$fundort strip_tags($item->text);
@
eregi(".{0,35}" $q ".{0,35}"$fundort$fo);
$orte " ... ";
while (@list(
$key$val) = @each($fo)) {
    
$orte .= $val " ... ";}
    
$orte = @eregi_replace("(".quotemeta($q).")""<span class=\"highlight\">\\1</span>"$orte);
    
$item->erg $orte;
    
$item->erg_str $fundort;
    
array_push($downloads$item);
}
 
$tmpl->assign('count_downloads',$count_downloads);
$tmpl->assign('downloads'$downloads);
}
}
if(
$_GET['search_links']==1){
$group_ids = array();
if (@
is_numeric(UID)) {
$queryfirst "SELECT group_id_misc FROM " PREFIX "_user WHERE uid = " UID;
$result $db->Query($queryfirst);
$user $result->fetchrow();
if(
$user->group_id_misc != ""){
$group_ids_pre UGROUP ";" $user->group_id_misc;
$group_ids     = @explode(";"$group_ids_pre);
} else {
$group_ids[] = UGROUP;
}
} else {
$group_ids[] = 2;
}
$links = array();
$sql "SELECT ctime,title,text,area,id,catid FROM " PREFIX "_links WHERE $pattern_c limit 200";
$res $db->Query($sql);
while(
$item$res->fetchrow()){
$query $db->Query("SELECT group_id FROM " PREFIX "_linkcat WHERE catid = '$item->catid'");
$row $query->fetchrow();
$g_array = @explode(","$row->group_id);
if (
array_intersect($group_ids$g_array)) {
$count_links += 1;
$fundort strip_tags($item->text);
@
eregi(".{0,35}" $q ".{0,35}"$fundort$fo);
$orte " ... ";
while (@list(
$key$val) = @each($fo)) {
    
$orte .= $val " ... ";}
    
$orte = @eregi_replace("(".quotemeta($q).")""<span class=\"highlight\">\\1</span>"$orte);
    
$item->erg $orte;
    
$item->erg_str $fundort;
    
array_push($links$item);
}
$tmpl->assign('count_links',$count_links);
$tmpl->assign('links'$links);
}
}
$countall $count_links $count_downloads $count_articles $count_news $count_faq $count_static $count_gallery;
$countall_text str_replace("__MATCHES__"$countall$lang['search_result_matches_text']);
$tmpl->assign('numall'$countall);
$tmpl->assign('countall'$countall_text);
$tmpl->assign('q'$q);
$sname simpletitle($lang['searchsite']);
$tmpl->assign("content"parsetrue("container/".container("news"), $lang['searchsite'], $tmpl->fetch("search/query.tpl")));
?>
Attached Images
File Type: gif untitled.GIF (1.1 KB, 0 views)
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 01:37 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04258 seconds
  • Memory Usage 2,529KB
  • Queries Executed 12 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_attachment
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)showthread_list
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_threadedmode.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids_threaded
  • showthread_threaded_construct_link
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_attachment
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete