2017-06-13 165 views
0

我希望這也能幫助其他人。 如果用戶在搜索欄中鍵入類別/子類別名稱,則搜索欄不顯示任何內容。 我知道有一個單獨的字段用於選擇類別/子類別以及搜索欄,但在我的情況下,我只有一個搜索欄,當我通過輸入類別/子類別名稱進行搜索時,搜索向我顯示0個結果發現即使我有類別/子類別中的項目。 有沒有人可以幫助我的解決方案請如果用戶在osclass的搜索欄中鍵入類別名稱,搜索將不顯示任何內容

回答

0

osclass中的搜索只能通過標題和描述。如果您將類別名稱插入到說明中,則它將按您的要求工作。

在主題functions.php文件,添加到末尾

<?php 
function endsWith($haystack, $needle) 
{ 
$length = strlen($needle); 

return $length === 0 || 
(substr($haystack, -$length) === $needle); 
} 
function mc_addcategory($desc, $catId) { 
$Cat = Category::newInstance()->toRootTree($catId); 
$d = '\n\n '; 
foreach($Cat as $c) { 
$d = $d . $c["s_name"] .'/'; 
} 
if(endsWith($desc, $d)) 
return $desc; 
else return $desc . $d; 
} 
function mc_filter_description($aItem) { 

    foreach(@$aItem['description'] as $key => $value) { 
     $aItem['description'][$key] = mc_addcategory($value,$aItem['catId']); 
    } 

    return $aItem; 
} 

osc_add_filter('item_add_prepare_data', 'mc_filter_description'); 
osc_add_filter('item_edit_prepare_data', 'mc_filter_description'); 
?> 

步驟2

你想顯示的說明向公衆和車主時從描述中刪除添加的文本當它編輯嗨的項目。 你可以做到這一點與上面的代碼之前,將這個功能 中的functions.php

<?php 
    function mc_hide_categ_in_description($desc, $catId) { 

    $Cat = Category::newInstance()->toRootTree($catId); 
    $d = '\n\n '; 
    foreach($Cat as $c) { 
    $d = $d . $c["s_name"] .'/'; 
    } 
    if(endsWith($desc, $d)) 
    return str_replace($d,'',$desc); 
    else return $desc; 
    } 
?> 

,並調用這個函數,其中顯示的說明。這裏有一個看看

How to modify ft_min_word_len=4 to ft_min_word_len=1 so that osclass 3.7.1 can search min 1 character word, instead of 4?

,看看我稱之爲「removeunderline(」的描述。

OBS

在這之後,你必須通過編輯更新你的數據庫的描述和保存每個項目。 如果編輯項目並且它的類別被用戶更改,這將起作用。

如果管理員進行編輯,並且上述功能不能從oc-admin/themes中調用/ modern ...文件,上面的最後一個函數必須放在/oc-includes/osclass/helpers/hSearch.php中,並從functions.php文件中刪除。

相關問題