今天给各位分享phpcms搜索自定义栏目的知识,其中也会对phpcms栏目分类进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、phpcms v9 全站搜索功能,怎么精确查找自定义字段?
- 2、phpcms v9 全站搜索功能,怎么精确查找自定义字段?
- 3、请问下phpcms里面怎么调用指定栏目下的推荐文章啊
- 4、phpcms怎么调用指定栏目文章列表
- 5、phpcms支持一文档多栏目和栏目自定义字段吗
- 6、phpcms v9怎么按栏目搜索
1、phpcms v9 全站搜索功能,怎么精确查找自定义字段?
其实很简单,在你设置自定义字段的时候,如果细心会发现有两项叫做"作为搜索条件"和“作为全站搜索信息”,将它们选为“是”。另外结合你图片中的搜索模块的搜索分类等适当配置,应该是可以的。
2、phpcms v9 全站搜索功能,怎么精确查找自定义字段?
其实很简单,在你设置自定义字段的时候,如果细心会发现有两项叫做"作为搜索条件"和“作为全站搜索信息”,将它们选为“是”。另外结合你图片中的搜索模块的搜索分类等适当配置,应该是可以的。
3、请问下phpcms里面怎么调用指定栏目下的推荐文章啊
这个其实很简单,在我们使用pc标签获取数据时很多地方我们都可以使用catid属性来指定数据的栏目范围,当然也包括调用推荐位时,演示代码如下:
{pc:content action="position" posid="10" catid="110" order="listorder desc" num="3"}
...
{/pc}
这样,我们获取的就是栏目id为110的那个栏目下的推荐到id为10的推荐位的文章的数据了。
ps: pc标签可以说是phpcms模板中最大也是最重要的一个标签,负责获取各种数据,对应的属性也相对多而复杂,详细可以查阅官方手册以及iphpcms的视频教程。
4、phpcms怎么调用指定栏目文章列表
{pc:content action="lists"catid="这里写你指定栏目号" num="100 要显示数量" order="listorder ASC 降序排列"}
{loop $data $rr}
//$rr[下标] 就可以显示你想要的数据了
{/loop}
{/pc}
5、phpcms支持一文档多栏目和栏目自定义字段吗
如今的都是要在文章页面里面写,每揭橥一个文章都要写一次。我的意思是,比如一个栏面前目今所有的文档都有同样的信息。那我只要再新建栏目标时刻,可以只要写一次,就可以所有的文档和列表页显示了。比如做漫画站,一栏目一部漫画,可以在新建栏目标时刻,添加“作者”“是否完结”等字段,如许只要新建栏目标时刻写一次,所有的内容页和栏目列表都显示了。而如今的自定义字段,必须在揭橥文章的时刻都写一次,才会显示。并且,像漫画站如许的,某些信息只要栏目页显示一次就行了,这就很像栏目属性。假如可以自定义栏目标字段,我认为照样很便利的
6、phpcms v9怎么按栏目搜索
修改了全部栏目搜索不到数据的bug
1、修改后台添加、修改内容时添加栏目id到搜索表中
找到 phpcms\model\content_model.class.php 大概106、287行左右,一共两处
$this-search_api($id,$inputinfo);
修改为:
$this-search_api($id,$systeminfo['catid'],$inputinfo);
找到 大概381行,将private function search_api 方法替换为以下代码
private function search_api($id = 0,$catid, $data = array(), $action = 'update') {
$type_arr = getcache('search_model_'.$this-siteid,'search');
$typeid = $type_arr[$this-modelid]['typeid'];
if($action == 'update') {
$fulltext_array = getcache('model_field_'.$this-modelid,'model');
foreach($fulltext_array AS $key=$value){
if($value['isfulltext']) {
$fulltextcontent .= $data['system'][$key] ? $data['system'][$key] : $data['model'][$key];
}
}
$this-search_db-update_search($typeid ,$id, $fulltextcontent,addslashes($data['system']['title']).' '.addslashes($data['system']['keywords']),$data['system']['inputtime'],'',$catid);
} elseif($action == 'delete') {
$this-search_db-delete_search($typeid ,$id);
}
}
2、修改搜索模板文件
找到 phpcms\model\search_model.calss.php 的 21行左右
将 update_search 方法替换为:
public function update_search($typeid ,$id = 0,$data = '',$text = '',$adddate = 0, $iscreateindex=0,$catid) {
$segment = pc_base::load_sys_class('segment');
//分词结果
$fulltext_data = $segment-get_keyword($segment-split_result($data));
$fulltext_data = $text.' '.$fulltext_data;
if(!$iscreateindex) {
$r = $this-get_one(array('typeid'=$typeid,'id'=$id),'searchid');
}
if($r) {
$searchid = $r['searchid'];
$this-update(array('data'=$fulltext_data,'adddate'=$adddate,'catid'=$catid),array('typeid'=$typeid,'id'=$id));
} else {
$siteid = param::get_cookie('siteid');
$searchid = $this-insert(array('typeid'=$typeid,'id'=$id,'adddate'=$adddate,'data'=$fulltext_data,'siteid'=$siteid,'catid'=$catid),true);
}
return $searchid;
}
3、修改后台更新全站缓存位置
找到phpcms\models\content\classes\search_api.class.php 的第 31行
将 $system_keys = 'id,inputtime'.implode(',',$system_keys);
修改为
$system_keys = 'id,inputtime,catid,'.implode(',',$system_keys);
找到 $temp['adddate'] = $r['inputtime'];在后面加上
$temp['catid'] = $r['catid'];
找到phpcms\models\search\search_admin.php大概第85行,将foreach修改为下面
foreach ($datas as $id=$r) {
$this-db-update_search($typeid ,$id, $r['fulltextcontent'],$r['title'],$r['adddate'], 1,$r['catid']);
}
4、修改前台搜索程序
找到 phpcms\models\search\index.php 第25行
在 if(isset($_GET['q'])) { 下加上
$catid =$_GET['catid']?" AND catid = '$_GET[catid]'":'';
然后在第57行左右,将
$commend = $this-db-get_one("`typeid` = '$typeid' $sql_time AND `data` like '%$q%'");
修改为
$commend = $this-db-get_one("`typeid` = '$typeid' $sql_time $catid AND `data` like '%$q%'");
再找到第84行左右将
//如果分词结果为空
if(!empty($segment_q)) {
$sql = "`siteid`= '$siteid' AND `typeid` = '$typeid' $sql_time AND MATCH (`data`) AGAINST ('$segment_q' IN BOOLEAN MODE)";
} else {
$sql = "`siteid`= '$siteid' AND `typeid` = '$typeid' $sql_time AND `data` like '%$q%'";
}
修改为
//如果分词结果为空
if(!empty($segment_q)) {
$sql = "`siteid`= '$siteid' AND `typeid` = '$typeid' $catid $sql_time AND MATCH (`data`) AGAINST ('$segment_q' IN BOOLEAN MODE)";
} else {
$sql = "`siteid`= '$siteid' AND `typeid` = '$typeid' $catid $sql_time AND `data` like '%$q%'";
}
5、最后一步,到数据库中,找到数据表 表前缀_search,在此表中加一字段 catid int 4 做个索引,去按栏目id搜索试试吧,可以了,调试可用。
phpcms搜索自定义栏目的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于phpcms栏目分类、phpcms搜索自定义栏目的信息别忘了在本站进行查找喔。