2017-09-20 19 views
0

osclassプラットフォームを使用していますが、ラテン語以外のラテン文字をカテゴリースラッグからラテン語に変換しようとしていますが、動作させることができません。 URL内の非ラテン文字のパーマリンクに関する問題

function osc_item_url_from_item($item, $locale = '') 
{ 
    if (osc_rewrite_enabled()) { 
    $url = osc_get_preference('rewrite_item_url'); 
    if(preg_match('|{CATEGORIES}|', $url)) { 
    $sanitized_categories = array(); 
    $cat = Category::newInstance()->hierarchy($item['fk_i_category_id']); 
      for ($i = (count($cat)); $i > 0; $i--) { 
       $sanitized_categories[] = $cat[$i - 1]['s_slug']; 
      } 

$url = str_replace('{CATEGORIES}', implode("/", 
cust_gr_to_latin_cats($sanitized_categories)), $url); 


     } 
     $url = str_replace('{ITEM_ID}', osc_sanitizeString($item['pk_i_id']), $url); 
     $url = str_replace('{ITEM_CITY}', osc_sanitizeString($item['s_city']), $url); 

    $url = str_replace('{ITEM_TITLE}', osc_sanitizeString(cust_greek_to_latin($item['s_title'])), $url); 


     $url = str_replace('?', '', $url); 
     if($locale!='') { 
      $path = osc_base_url().$locale."/".$url; 
     } else { 
      $path = osc_base_url().$url; 
     } 
    } else { 
     $path = osc_item_url_ns($item['pk_i_id'], $locale); 
    } 
    return $path; 
} 

そして、私のカスタムテーマのfunctions.phpファイル内

は、私はこの機能を追加しました:私はそのようなコードを変更するヘルパーファイルhDefines.phpインサイド

:これは今まで私がやった」とは何ですか

function cust_gr_to_latin_cats($catsgr) { 
$grcats = array('ά','α','Α','Ά','β','Β','γ','Γ','δ','Δ','ε','έ','Ε','Έ','ζ','Ζ','η','ή','Ή','Η','ί','ι','Ί','Ι','κ','Κ','λ','Λ','μ','Μ','ν','Ν','ξ','Ξ','ο','ό','Ό','Ο','π','Π','ρ','Ρ','σ','Σ','ς','τ','Τ','ύ','υ','Υ','Ύ','φ','Φ','χ','Χ','ψ','Ψ','ω','ω','Ω','Ώ','θ','Θ'); 
$latr = array('a','a','a','a','v','v','g','g','d','d','e','e','e','e','z','z','h','h','h','h','i','i','i','i','k','k','l','l','m','m','n','n','x','x','o','o','o','o','p','p','r','r','s','s','s','t','t','y','y','y','y','f','f','ch','ch','ps','ps','w','w','w','w','th','th'); 

return str_replace($grcats, $latr, $catsgr); 
} 

何が間違っていますか?

答えて

0

あなたはこのように試みることができる:

function osc_item_url_from_item($item, $locale = '') 
{ 
if (osc_rewrite_enabled()) { 
$url = osc_get_preference('rewrite_item_url'); 
if(preg_match('|{CATEGORIES}|', $url)) { 
$sanitized_categories = array(); 
$cat = Category::newInstance()->hierarchy($item['fk_i_category_id']); 
     for ($i = (count($cat)); $i > 0; $i--) { 
      $sanitized_categories[] = cust_greek_to_latin($cat[$i - 1]['s_slug']); 
     } 

$url = str_replace('{CATEGORIES}', implode("/",$sanitized_categories), $url); 


    } 
    $url = str_replace('{ITEM_ID}', osc_sanitizeString($item['pk_i_id']), $url); 
    $url = str_replace('{ITEM_CITY}', osc_sanitizeString($item['s_city']), $url); 

$url = str_replace('{ITEM_TITLE}', osc_sanitizeString(cust_greek_to_latin($item['s_title'])), $url); 


    $url = str_replace('?', '', $url); 
    if($locale!='') { 
     $path = osc_base_url().$locale."/".$url; 
    } else { 
     $path = osc_base_url().$url; 
    } 
} else { 
    $path = osc_item_url_ns($item['pk_i_id'], $locale); 
} 
return $path; 
} 
関連する問題