我希望这对其他人也有帮助。 如果用户在搜索栏中键入类别/子类别名称,则搜索栏不显示任何内容。 我知道有一个单独的字段用于选择类别/子类别以及搜索栏但在我的情况下我只有一个搜索栏,当我通过键入类别/子类别名称搜索时,搜索显示0找到的结果即使我有类别/子类别中的项目。 有没有人可以帮我解决这个问题
答案 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');
?>
并调用此函数显示说明。看看这里
并查看我称之为'removeunderline''的说明。
OBS
在此之后,您必须通过编辑和保存每个项目来更新数据库中的描述。 如果项目已编辑且用户更改了类别,则此功能将起作用。
如果管理员进行编辑并且无法从oc-admin / themes / modern ...文件调用上述函数,则必须将上面的最后一个函数放在/ oc-includes / osclass / helpers / hSearch中.php并从functions.php文件中删除。