It gives an error when I search by a location field through the Veronika theme on the main page. With other links all is normal. This error appeared when I put manual locations (countries, regions, cities).

Version of osclass 3.7.4,.

My site - ivia.tk
It is a link to the problem - http://ivia.tk/search/cookieAction,done/country,ru/region,781870/term,%25252525252525252525252525252525252525D0%252525252525252525252525252525252525259C%25252525252525252525252525252525252525D0%25252525252525252525252525252525252525BE%25252525252525252525252525252525252525D1%2525252525252525252525252525252525252581%25252525252525252525252525252525252525D0%25252525252525252525252525252525252525BA%25252525252525252525252525252525252525D0%25252525252525252525252525252525252525B2%25252525252525252525252525252525252525D0%25252525252525252525252525252525252525B0

It works on other themes (I checked by osclass wizards 2.0.4), but in veronika it does not.

Debuger shows nothing.

It gives an error in search location field when write of locations not in English (Russian). When I inserted Russian location where "Russia" was writed in english but regions and cities in russian language.

When I wrote (in english) "Russia" - all was ok, but when wrote in russian language it gave an error - (ERR_TOO_MANY_REDIRECTS)
« Last Edit: February 23, 2018, 05:16:55 PM by Eugeniu Nazaria »

*

Ivanko

  • *****
  • 388 posts
try to use original files of theme, usually it helps )

I use original files

*

Ivanko

  • *****
  • 388 posts
according to mobile view on my phone, icons are looking different size then on original theme.
the link in search pan generated wrong in your site -  too many 252525252.....
it must be
http://ivia.tk/search/orderSelect,new/sShowAs,list

try to  copy original theme files one more time  in your folder,something looks wrong..

I made it (put in original files of the theme) but nothing changed. It is not works just with russian words in location search

I have just seen that it gives an error in bender

(Warning: Illegal string offset 'pk_i_id' in /home/u811802566/public_html/oc-content/themes/bender/search-sidebar.php on line 23

Warning: Cannot assign an empty string to a string offset in /home/u811802566/public_html/oc-content/themes/bender/search-sidebar.php on line 23)

and in osclasswizards

*

MB Themes

@Eugeniu
It looks like osclass problem to encode this string. Note that each theme has different search parameters and it may work when friendly URLs are not enabled - or conversion to friendly search links does not work.
On our demo site special chars are not supported in URL, there is some special configuration to support different kind of special chars.
  To get fast support, we need following details: Detail description, URL to reproduce problem, Screenshots

*

Ivanko

  • *****
  • 388 posts
you can try insert this code in
 /oc-includes/osclass/formatting.php

Code: [Select]
// Russian translite code if (is_utf8($string)) { $chars = array( "А"=>"a","Б"=>"b","В"=>"v","Г"=>"g", "Д"=>"d","Е"=>"e","Ж"=>"z","З"=>"z","И"=>"i", "Й"=>"j","К"=>"k","Л"=>"l","М"=>"m","Н"=>"n", "О"=>"o","П"=>"p","Р"=>"r","С"=>"s","Т"=>"t", "У"=>"u","Ф"=>"f","Х"=>"h","Ц"=>"c","Ч"=>"ch", "Ш"=>"sh","Щ"=>"w","Ъ"=>"","Ы"=>"i","Ь"=>"", "Э"=>"e","Ю"=>"ju","Я"=>"ja","а"=>"a","б"=>"b", "в"=>"v","г"=>"g","д"=>"d","е"=>"e", "ё"=>"e","ж"=>"z", "з"=>"z","и"=>"i","й"=>"j","к"=>"k","л"=>"l", "м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r", "с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h", "ц"=>"c","ч"=>"ch","ш"=>"sh","щ"=>"w","ъ"=>"y", "ы"=>"i","ь"=>"","э"=>"e","ю"=>"ju","я"=>"ja", " "=> "-", "."=> "", "/"=> "-", "-" => "-"); $string = strtr($string, $chars); } // End Russian translite code

re-save categories after new code will be inserted. this must help when friendly url is ON and with RU language as well
« Last Edit: March 04, 2018, 10:06:55 AM by Ivanko »

Oh, thank you very much for your answer.

I put the code in this file and nothing changed. Where should I put this code, on what line?

And there are some other different code lines. May be it needed to perform this code similar?

*

Ivanko

  • *****
  • 388 posts
Oh, thank you very much for your answer.

I put the code in this file and nothing changed. Where should I put this code, on what line?

And there are some other different code lines. May be it needed to perform this code similar?

Code: [Select]
<?php
/*
 * Copyright 2014 Osclass
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Escape all the values of an array.
 *
 * @param array $array Array used to apply addslashes.
 * @return array $array after apply addslashes.
 */
function add_slashes_extended$array ) {
    if(
get_magic_quotes_gpc()) {
        return 
$array;
    }
    
    foreach ( (array) 
$array as $k => $v ) {
        if( 
is_array($v) ) {
            
$array[$k] = add_slashes_extended($v);
        } else {
            
$array[$k] = addslashes($v);
        }
    }

    return 
$array;
}

function 
osc_sanitizeString($string) {
    
$string strip_tags($string);
    
$string preg_replace('/%([a-fA-F0-9][a-fA-F0-9])/''--$1--'$string);
    
$string str_replace('%'''$string);
    
$string preg_replace('/--([a-fA-F0-9][a-fA-F0-9])--/''%$1'$string);

    
$string remove_accents($string);

    
$string strtolower($string);
    
// @TODO  retrieve $arr_stop_words from Locale user custom list. as editable in /oc-admin/index.php?page=languages
    //        and do a 
    //        str_replace($arr_stop_words, '', $string);
    
$string preg_replace('/&.+?;/'''$string);
    
$string str_replace(array('.','\'','--'), '-'$string);
    
$string preg_replace('/\s+/''-'$string);
    
$string preg_replace('|[\p{Ps}\p{Pe}\p{Pi}\p{Pf}\p{Po}\p{S}\p{Z}\p{C}\p{No}]+|u'''$string);

    if( 
is_utf8($string) ) {
        
$string urlencode($string);
        
// mdash & ndash
        
$string str_replace(array('%e2%80%93''%e2%80%94'), '-'strtolower($string));
    }

    
$string preg_replace('/-+/''-'$string);
    
$string trim($string'-');

    return 
$string;
}


function 
remove_accents($string) {
if ( !preg_match('/[\x80-\xff]/'$string) )
return $string;


 // Russian translite code
 
 
if (is_utf8($string)) {
$chars = array(
"А"=>"a","Б"=>"b","В"=>"v","Г"=>"g",
"Д"=>"d","Е"=>"e","Ж"=>"z","З"=>"z","И"=>"i",
"Й"=>"j","К"=>"k","Л"=>"l","М"=>"m","Н"=>"n",
"О"=>"o","П"=>"p","Р"=>"r","С"=>"s","Т"=>"t",
"У"=>"u","Ф"=>"f","Х"=>"h","Ц"=>"c","Ч"=>"ch",
"Ш"=>"sh","Щ"=>"w","Ъ"=>"","Ы"=>"i","Ь"=>"",
"Э"=>"e","Ю"=>"ju","Я"=>"ja","а"=>"a","б"=>"b",
"в"=>"v","г"=>"g","д"=>"d","е"=>"e""ё"=>"e","ж"=>"z",
"з"=>"z","и"=>"i","й"=>"j","к"=>"k","л"=>"l",
"м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
"с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h",
"ц"=>"c","ч"=>"ch","ш"=>"sh","щ"=>"w","ъ"=>"y",
"ы"=>"i","ь"=>"","э"=>"e","ю"=>"ju","я"=>"ja",
" "=> "-""."=> """/"=> "-""-" => "-");
$string strtr($string$chars);
}

 
// End Russian translite code

if (is_utf8($string)) {
$chars = array(
// Decompositions for Latin-1 Supplement
chr(195).chr(128) => 'A'chr(195).chr(129) => 'A',
chr(195).chr(130) => 'A'chr(195).chr(131) => 'A',
chr(195).chr(132) => 'A'chr(195).chr(133) => 'A',
chr(195).chr(135) => 'C'chr(195).chr(136) => 'E',
chr(195).chr(137) => 'E'chr(195).chr(138) => 'E',
chr(195).chr(139) => 'E'chr(195).chr(140) => 'I',
chr(195).chr(141) => 'I'chr(195).chr(142) => 'I',
chr(195).chr(143) => 'I'chr(195).chr(145) => 'N',
chr(195).chr(146) => 'O'chr(195).chr(147) => 'O',
chr(195).chr(148) => 'O'chr(195).chr(149) => 'O',
chr(195).chr(150) => 'O'chr(195).chr(153) => 'U',
chr(195).chr(154) => 'U'chr(195).chr(155) => 'U',
chr(195).chr(156) => 'U'chr(195).chr(157) => 'Y',
chr(195).chr(159) => 's'chr(195).chr(160) => 'a',
chr(195).chr(161) => 'a'chr(195).chr(162) => 'a',
chr(195).chr(163) => 'a'chr(195).chr(164) => 'a',
chr(195).chr(165) => 'a'chr(195).chr(167) => 'c',
chr(195).chr(168) => 'e'chr(195).chr(169) => 'e',
chr(195).chr(170) => 'e'chr(195).chr(171) => 'e',
chr(195).chr(172) => 'i'chr(195).chr(173) => 'i',
chr(195).chr(174) => 'i'chr(195).chr(175) => 'i',
chr(195).chr(177) => 'n'chr(195).chr(178) => 'o',
chr(195).chr(179) => 'o'chr(195).chr(180) => 'o',
chr(195).chr(181) => 'o'chr(195).chr(182) => 'o',
chr(195).chr(182) => 'o'chr(195).chr(185) => 'u',
chr(195).chr(186) => 'u'chr(195).chr(187) => 'u',
chr(195).chr(188) => 'u'chr(195).chr(189) => 'y',
chr(195).chr(191) => 'y',
// Decompositions for Latin Extended-A
chr(196).chr(128) => 'A'chr(196).chr(129) => 'a',
chr(196).chr(130) => 'A'chr(196).chr(131) => 'a',
chr(196).chr(132) => 'A'chr(196).chr(133) => 'a',
chr(196).chr(134) => 'C'chr(196).chr(135) => 'c',
chr(196).chr(136) => 'C'chr(196).chr(137) => 'c',
chr(196).chr(138) => 'C'chr(196).chr(139) => 'c',
chr(196).chr(140) => 'C'chr(196).chr(141) => 'c',
chr(196).chr(142) => 'D'chr(196).chr(143) => 'd',
chr(196).chr(144) => 'D'chr(196).chr(145) => 'd',
chr(196).chr(146) => 'E'chr(196).chr(147) => 'e',
chr(196).chr(148) => 'E'chr(196).chr(149) => 'e',
chr(196).chr(150) => 'E'chr(196).chr(151) => 'e',
chr(196).chr(152) => 'E'chr(196).chr(153) => 'e',
chr(196).chr(154) => 'E'chr(196).chr(155) => 'e',
chr(196).chr(156) => 'G'chr(196).chr(157) => 'g',
chr(196).chr(158) => 'G'chr(196).chr(159) => 'g',
chr(196).chr(160) => 'G'chr(196).chr(161) => 'g',
chr(196).chr(162) => 'G'chr(196).chr(163) => 'g',
chr(196).chr(164) => 'H'chr(196).chr(165) => 'h',
chr(196).chr(166) => 'H'chr(196).chr(167) => 'h',
chr(196).chr(168) => 'I'chr(196).chr(169) => 'i',
chr(196).chr(170) => 'I'chr(196).chr(171) => 'i',
chr(196).chr(172) => 'I'chr(196).chr(173) => 'i',
chr(196).chr(174) => 'I'chr(196).chr(175) => 'i',
chr(196).chr(176) => 'I'chr(196).chr(177) => 'i',
chr(196).chr(178) => 'IJ',chr(196).chr(179) => 'ij',
chr(196).chr(180) => 'J'chr(196).chr(181) => 'j',
chr(196).chr(182) => 'K'chr(196).chr(183) => 'k',
chr(196).chr(184) => 'k'chr(196).chr(185) => 'L',
chr(196).chr(186) => 'l'chr(196).chr(187) => 'L',
chr(196).chr(188) => 'l'chr(196).chr(189) => 'L',
chr(196).chr(190) => 'l'chr(196).chr(191) => 'L',
chr(197).chr(128) => 'l'chr(197).chr(129) => 'L',
chr(197).chr(130) => 'l'chr(197).chr(131) => 'N',
chr(197).chr(132) => 'n'chr(197).chr(133) => 'N',
chr(197).chr(134) => 'n'chr(197).chr(135) => 'N',
chr(197).chr(136) => 'n'chr(197).chr(137) => 'N',
chr(197).chr(138) => 'n'chr(197).chr(139) => 'N',
chr(197).chr(140) => 'O'chr(197).chr(141) => 'o',
chr(197).chr(142) => 'O'chr(197).chr(143) => 'o',
chr(197).chr(144) => 'O'chr(197).chr(145) => 'o',
chr(197).chr(146) => 'OE',chr(197).chr(147) => 'oe',
chr(197).chr(148) => 'R',chr(197).chr(149) => 'r',
chr(197).chr(150) => 'R',chr(197).chr(151) => 'r',
chr(197).chr(152) => 'R',chr(197).chr(153) => 'r',
chr(197).chr(154) => 'S',chr(197).chr(155) => 's',
chr(197).chr(156) => 'S',chr(197).chr(157) => 's',
chr(197).chr(158) => 'S',chr(197).chr(159) => 's',
chr(197).chr(160) => 'S'chr(197).chr(161) => 's',
chr(197).chr(162) => 'T'chr(197).chr(163) => 't',
chr(197).chr(164) => 'T'chr(197).chr(165) => 't',
chr(197).chr(166) => 'T'chr(197).chr(167) => 't',
chr(197).chr(168) => 'U'chr(197).chr(169) => 'u',
chr(197).chr(170) => 'U'chr(197).chr(171) => 'u',
chr(197).chr(172) => 'U'chr(197).chr(173) => 'u',
chr(197).chr(174) => 'U'chr(197).chr(175) => 'u',
chr(197).chr(176) => 'U'chr(197).chr(177) => 'u',
chr(197).chr(178) => 'U'chr(197).chr(179) => 'u',
chr(197).chr(180) => 'W'chr(197).chr(181) => 'w',
chr(197).chr(182) => 'Y'chr(197).chr(183) => 'y',
chr(197).chr(184) => 'Y'chr(197).chr(185) => 'Z',
chr(197).chr(186) => 'z'chr(197).chr(187) => 'Z',
chr(197).chr(188) => 'z'chr(197).chr(189) => 'Z',
chr(197).chr(190) => 'z'chr(197).chr(191) => 's',
// Euro Sign
chr(226).chr(130).chr(172) => 'E',
// GBP (Pound) Sign
chr(194).chr(163) => '');

$string strtr($string$chars);
} else {
// Assume ISO-8859-1 if not UTF-8
$chars['in'] = chr(128).chr(131).chr(138).chr(142).chr(154).chr(158)
.chr(159).chr(162).chr(165).chr(181).chr(192).chr(193).chr(194)
.chr(195).chr(196).chr(197).chr(199).chr(200).chr(201).chr(202)
.chr(203).chr(204).chr(205).chr(206).chr(207).chr(209).chr(210)
.chr(211).chr(212).chr(213).chr(214).chr(216).chr(217).chr(218)
.chr(219).chr(220).chr(221).chr(224).chr(225).chr(226).chr(227)
.chr(228).chr(229).chr(231).chr(232).chr(233).chr(234).chr(235)
.chr(236).chr(237).chr(238).chr(239).chr(241).chr(242).chr(243)
.chr(244).chr(245).chr(246).chr(248).chr(249).chr(250).chr(251)
.chr(252).chr(253).chr(255);

$chars['out'] = "EfSZszYcYuAAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyy";

$string strtr($string$chars['in'], $chars['out']);
$double_chars['in'] = array(chr(140), chr(156), chr(198), chr(208), chr(222), chr(223), chr(230), chr(240), chr(254));
$double_chars['out'] = array('OE''oe''AE''DH''TH''ss''ae''dh''th');
$string str_replace($double_chars['in'], $double_chars['out'], $string);
}

return $string;
}

function 
is_utf8($string) {
    return 
preg_match('%^(?:
          [\x09\x0A\x0D\x20-\x7E]            # ASCII
        | [\xC2-\xDF][\x80-\xBF]             # non-overlong 2-byte
        |  \xE0[\xA0-\xBF][\x80-\xBF]        # excluding overlongs
        | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}  # straight 3-byte
        |  \xED[\x80-\x9F][\x80-\xBF]        # excluding surrogates
        |  \xF0[\x90-\xBF][\x80-\xBF]{2}     # planes 1-3
        | [\xF1-\xF3][\x80-\xBF]{3}          # planes 4-15
        |  \xF4[\x80-\x8F][\x80-\xBF]{2}     # plane 16
    )*$%xs'
$string);

}

?>

try this one
« Last Edit: March 05, 2018, 08:12:33 PM by Ivanko »

@Eugeniu
It looks like osclass problem to encode this string. Note that each theme has different search parameters and it may work when friendly URLs are not enabled - or conversion to friendly search links does not work.
On our demo site special chars are not supported in URL, there is some special configuration to support different kind of special chars.

And where can I find these configurations?

*

MB Themes

@Eugeniu
You will not, best way is to consult with your hosting provider.
  To get fast support, we need following details: Detail description, URL to reproduce problem, Screenshots