如果用户在osclass的搜索栏中键入类别名称,则搜索不显示任何内容

时间:2017-06-13 19:22:53

标签: search osclass

我希望这对其他人也有帮助。 如果用户在搜索栏中键入类别/子类别名称,则搜索栏不显示任何内容。 我知道有一个单独的字段用于选择类别/子类别以及搜索栏但在我的情况下我只有一个搜索栏,当我通过键入类别/子类别名称搜索时,搜索显示0找到的结果即使我有类别/子类别中的项目。 有没有人可以帮我解决这个问题

1 个答案:

答案 0 :(得分:0)

osclass中的搜索仅按标题和说明进行。如果您在描述中插入类别名称,那么它将按您的意愿工作。

在主题的functions.php文件中,添加到结尾

//Declare your class property nullable.
//For example, if you are getting start date null from database, then your property will be like following.


    public class Event
    {
      public DateTime? StartDate{get; set;}
      //add other properties of this class here..
    }

第2步

您希望在向公众显示说明时向描述中删除添加的文字,并在编辑hi的项目时向所有者删除。 你可以用一个功能来做到这一点 把它放在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');
?>

并调用此函数显示说明。看看这里

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文件中删除。