昨天写了http://www.kingcms.com/forums/Use/t15385/。坛友测试只能搜索文章,因为当时没想到那么多,就单纯的搜索了文章。晚上闲来无事。就修改了下。可以搜索“文章、产品、商品”等。我就不再多讲什么了。等下打包代码。
此外我想提醒下。最新的这段搜索,也有写死的地方。就是表名称,我是这样想的。假如我就是一个后台使用者,我不知道它属于什么类型,我只能通过它文章的名称来搜索。所以就把表名写死了,但真的不利于数据量特别大的搜索。以后有好办法。或者好思路后我会继续发上来。
查询的表有 king_article,king_shop,king_bbs,king_product。你可以直接拷贝elseif后的代码就行。小功能,让各位见笑了。!我已经测试过文章、产品均可用。
代码无法上传。就先贴出来吧。用editplus写的代码不太规范。等用zendstudio调整下吧。不懂怎么用可以先去看http://www.kingcms.com/forums/Use/t15385/(欢迎大家继续测试)
<?php
/**
*@author 河北糊涂老仙
*
*/
require_once '../global.php';
function king_def(){
global $king;
$king->access('portal_search');//等下具体看看access函数功能
//开始组建表单很简单。一个下拉单
$s=$king->openForm('manage.search.php?action=search');// 构造表单开始
//$str='<span><input type="checkbox" name="iscommend" id="iscommend" value="1" '.$checked.'/><label for="iscommend">'.$king->lang->get('portal/label/attrib/iscommend').'</label></span>';
$array = array(
$king->lang->get('portal/search/number'),
$king->lang->get('portal/search/searchwords'),
);
$s.=$king->htmForm('',kc_htm_select('choose',$array));
$s.=$king->htmForm('',kc_htm_input('search'));
//$s.=$king->htmForm('',kc_htm_submit($king->lang->get('portal/search/submit1')));
$s.='<script type="text/javascript">';
$s.='function check(){
var oForm = document.k_formlist;
if(oForm.choose.value == 0){
var search = oForm.search.value;
if(isNaN(search)||search.length == 0||search.length>8)
{
alert("好歹给个数字才能查询啊");
oForm.search.focus();
return false;
}
}
if(oForm.choose.value == 1){
var search = oForm.search.value;
if(search.length > 50||search.length == 0)
{
alert("好歹输入个文字啊,不要超过20个字或不要为空哦");
oForm.search.focus();
return false;
}
}
oForm.submit();
}';
$s.='</script>';
$s.=$king->closeForm($king->lang->get('portal/search/submit1'),'check()');
$king->skin->output($king->lang->get('portal/search/searchtag'),$left,$right,$s);
}
function king_search()
{
/**
* 关键字搜索先判断文章,如果每只再判断论坛。再判断其他
*
*/
global $king;
$king->access('portal_search');
$id = $_POST['choose'];
$keywords = $_POST['search'];;
if($id == 0)
{
$sql ="select kid,ktitle,k_author from %s__article where kid ='$keywords'";
if($res=$king->db->getRows($sql))
$res=array();
//准备开始列表
$_cmd=array(
'delete'=>$king->lang->get('system/common/del'),
);
$manage="'<a href="manage.content.php?action=edt&listid=4&kid='+K[0]+'">'+$.kc_icon('k5','".$king->lang->get('system/common/edit')."')+'</a>'";
$manage.="+'<a class="k_ajax" rel="{CMD:'delete',list:'+K[0]+'}">'+$.kc_icon('l5','".$king->lang->get('system/common/del')."')+'</a>'";
$manage.="+$.kc_updown(K[0])";
$_js=array(
"$.kc_list(K[0],K[1],'manage.content.php?action=edt&listid=4&kid='+K[0])",
$manage,
"kstyle(K[1],K[2],K[3],K[4])",
"'<i>'+isset(K[0],K[5])+'</i>'",
);
$s=$king->openList('','',$_js,$king->db->pagelist('manage.search.php?pid=PID&rn=RN',$king->db->getRows_number('%s__article')));
$s.="function kstyle(l1,l2,l3,l4){var I1;l4 ? I1='<font style="font-size:'+l3+'px;color:'+l2+';font-weight:bold;">'+l1+'</font>' : I1='<font style="font-size:'+l3+'px;color:'+l2+';">'+l1+'</font>';return I1;};";
$s.="function isset(id,is){var I1,ico;is?ico='n1':ico='n2';";
$s.="I1='<a id="commend_'+id+'" class="k_ajax" rel="{CMD:'commend',is:'+(1-is)+',ID:'commend_'+id+'',kid:'+id+',IS:2}" >'+$.kc_icon(ico)+'</a>';return I1;};";
$s.='ll(''.$king->lang->get('portal/search/chaxun').'','manage',''.$king->lang->get('portal/search/zuozhe').'','<i>'.$king->lang->get('portal/label/attrib/iscommend').'</i>',1);';
foreach($res as $rs){
$s.='ll('.$rs['kid'].',''.$rs['ktitle'].'',0);';
}
//结束列表
$s.=$king->closeList();
//list($left,$right)=king_inc_list();
$king->skin->output($king->lang->get('portal/search/result'),$left,$right,$s);
}elseif($id== 1)
{
//$sql ="select kid,ktitle,k_author from %s__article where ktitle like '%$keywords%'";
$where =" ktitle like '%$keywords%'";
if( $king->db->getRows_number('%s__article',$where) >0)
{
$sql ="select kid,ktitle,listid from %s__article where ktitle like '%$keywords%'";
if(!$res=$king->db->getRows($sql,1))
$res=array();
//准备开始列表
$_cmd=array(
'delete'=>$king->lang->get('system/common/del'),
);
foreach($res as $rs){
$manage="'<a href="manage.content.php?action=edt&listid=".$rs['listid']."&kid='+K[0]+'">'+$.kc_icon('k5','".$king->lang->get('system/common/edit')."')+'</a>'";
$manage.="+'<a class="k_ajax" rel="{CMD:'delete',list:'+K[0]+'}">'+$.kc_icon('l5','".$king->lang->get('system/common/del')."')+'</a>'";
$manage.="+$.kc_updown(K[0])";
$_js=array(
"$.kc_list(K[0],K[1],'manage.content.php?action=edt&listid=".$rs['listid']."&kid='+K[0])",
$manage,
"kstyle(K[1],K[2],K[3],K[4])",
"'<i>'+isset(K[0],K[5])+'</i>'",
);
$s=$king->openList('','',$_js,$king->db->pagelist('manage.search.php?pid=PID&rn=RN',$king->db->getRows_number('%s__article')));
$s.="function kstyle(l1,l2,l3,l4){var I1;l4 ? I1='<font style="font-size:'+l3+'px;color:'+l2+';font-weight:bold;">'+l1+'</font>' : I1='<font style="font-size:'+l3+'px;color:'+l2+';">'+l1+'</font>';return I1;};";
$s.="function isset(id,is){var I1,ico;is?ico='n1':ico='n2';";
$s.="I1='<a id="commend_'+id+'" class="k_ajax" rel="{CMD:'commend',is:'+(1-is)+',ID:'commend_'+id+'',kid:'+id+',IS:2}" >'+$.kc_icon(ico)+'</a>';return I1;};";
$s.='ll(''.$king->lang->get('portal/search/chaxun').'','manage',''.$king->lang->get('portal/search/zuozhe').'','<i>'.$king->lang->get('portal/label/attrib/iscommend').'</i>',1);';
$s.='ll('.$rs['kid'].',''.$rs['ktitle'].'',0);';
}
//结束列表
$s.=$king->closeList();
//list($left,$right)=king_inc_list();
$king->skin->output($king->lang->get('portal/search/result'),$left,$right,$s);
}
elseif($king->db->getRows_number('%s__product',$where) >0)
{
$sql= "SELECT kid,ktitle,listid FROM %s__product WHERE ktitle LIKE '%$keywords%'";
if(!$res=$king->db->getRows($sql,1))
$res=array();
//准备开始列表
$_cmd=array(
'delete'=>$king->lang->get('system/common/del'),
);
foreach($res as $rs){
$manage="'<a href="manage.content.php?action=edt&listid=".$rs['listid']."kid='+K[0]+'">'+$.kc_icon('k5','".$king->lang->get('system/common/edit')."')+'</a>'";
$manage.="+'<a class="k_ajax" rel="{CMD:'delete',list:'+K[0]+'}">'+$.kc_icon('l5','".$king->lang->get('system/common/del')."')+'</a>'";
$manage.="+$.kc_updown(K[0])";
$_js=array(
"$.kc_list(K[0],K[1],'manage.content.php?action=edt&listid=".$rs['listid']."&kid='+K[0])",
$manage,
"kstyle(K[1],K[2],K[3],K[4])",
"'<i>'+isset(K[0],K[5])+'</i>'",
);
$s=$king->openList('','',$_js,$king->db->pagelist('manage.search.php?pid=PID&rn=RN',$king->db->getRows_number('%s__product')));
$s.="function kstyle(l1,l2,l3,l4){var I1;l4 ? I1='<font style="font-size:'+l3+'px;color:'+l2+';font-weight:bold;">'+l1+'</font>' : I1='<font style="font-size:'+l3+'px;color:'+l2+';">'+l1+'</font>';return I1;};";
$s.="function isset(id,is){var I1,ico;is?ico='n1':ico='n2';";
$s.="I1='<a id="commend_'+id+'" class="k_ajax" rel="{CMD:'commend',is:'+(1-is)+',ID:'commend_'+id+'',kid:'+id+',IS:2}" >'+$.kc_icon(ico)+'</a>';return I1;};";
$s.='ll(''.$king->lang->get('portal/search/chaxun').'','manage',''.$king->lang->get('portal/search/zuozhe').'','<i>'.$king->lang->get('portal/label/attrib/iscommend').'</i>',1);';
$s.='ll('.$rs['kid'].',''.$rs['ktitle'].'',0);';
}
//结束列表
$s.=$king->closeList();
//list($left,$right)=king_inc_list();
$king->skin->output($king->lang->get('portal/search/result'),$left,$right,$s);
}
elseif($king->db->getRows_number('%s__shop',$where) >0)
{
$sql= "SELECT kid,ktitle,listid FROM %s__shop WHERE ktitle LIKE '%$keywords%'";
if(!$res=$king->db->getRows($sql,1))
$res=array();
//准备开始列表
$_cmd=array(
'delete'=>$king->lang->get('system/common/del'),
);
foreach($res as $rs){
$manage="'<a href="manage.content.php?action=edt&listid=".$rs['listid']."kid='+K[0]+'">'+$.kc_icon('k5','".$king->lang->get('system/common/edit')."')+'</a>'";
$manage.="+'<a class="k_ajax" rel="{CMD:'delete',list:'+K[0]+'}">'+$.kc_icon('l5','".$king->lang->get('system/common/del')."')+'</a>'";
$manage.="+$.kc_updown(K[0])";
$_js=array(
"$.kc_list(K[0],K[1],'manage.content.php?action=edt&listid=".$rs['listid']."&kid='+K[0])",
$manage,
"kstyle(K[1],K[2],K[3],K[4])",
"'<i>'+isset(K[0],K[5])+'</i>'",
);
$s=$king->openList('','',$_js,$king->db->pagelist('manage.search.php?pid=PID&rn=RN',$king->db->getRows_number('%s__bbs')));
$s.="function kstyle(l1,l2,l3,l4){var I1;l4 ? I1='<font style="font-size:'+l3+'px;color:'+l2+';font-weight:bold;">'+l1+'</font>' : I1='<font style="font-size:'+l3+'px;color:'+l2+';">'+l1+'</font>';return I1;};";
$s.="function isset(id,is){var I1,ico;is?ico='n1':ico='n2';";
$s.="I1='<a id="commend_'+id+'" class="k_ajax" rel="{CMD:'commend',is:'+(1-is)+',ID:'commend_'+id+'',kid:'+id+',IS:2}" >'+$.kc_icon(ico)+'</a>';return I1;};";
$s.='ll(''.$king->lang->get('portal/search/chaxun').'','manage',''.$king->lang->get('portal/search/zuozhe').'','<i>'.$king->lang->get('portal/label/attrib/iscommend').'</i>',1);';
$s.='ll('.$rs['kid'].',''.$rs['ktitle'].'',0);';
}
//结束列表
$s.=$king->closeList();
//list($left,$right)=king_inc_list();
$king->skin->output($king->lang->get('portal/search/result'),$left,$right,$s);
}
elseif($king->db->getRows_number('%s__shop',$where) >0)
{
$sql= "SELECT kid,ktitle,listid
FROM %s__bbs
WHERE ktitle LIKE '%$keywords%'";
// print_r($sql);
if(!$res=$king->db->getRows($sql,1))
// echo '<pre>';
// print_r($res);
//echo '</pre>';
$res=array();
//准备开始列表
$_cmd=array(
'delete'=>$king->lang->get('system/common/del'),
);
foreach($res as $rs){
$manage="'<a href="manage.content.php?action=edt&listid=".$rs['listid']."kid='+K[0]+'">'+$.kc_icon('k5','".$king->lang->get('system/common/edit')."')+'</a>'";
$manage.="+'<a class="k_ajax" rel="{CMD:'delete',list:'+K[0]+'}">'+$.kc_icon('l5','".$king->lang->get('system/common/del')."')+'</a>'";
$manage.="+$.kc_updown(K[0])";
$_js=array(
"$.kc_list(K[0],K[1],'manage.content.php?action=edt&listid=".$rs['listid']."&kid='+K[0])",
$manage,
"kstyle(K[1],K[2],K[3],K[4])",
"'<i>'+isset(K[0],K[5])+'</i>'",
);
$s=$king->openList('','',$_js,$king->db->pagelist('manage.search.php?pid=PID&rn=RN',$king->db->getRows_number('%s__shop')));
$s.="function kstyle(l1,l2,l3,l4){var I1;l4 ? I1='<font style="font-size:'+l3+'px;color:'+l2+';font-weight:bold;">'+l1+'</font>' : I1='<font style="font-size:'+l3+'px;color:'+l2+';">'+l1+'</font>';return I1;};";
$s.="function isset(id,is){var I1,ico;is?ico='n1':ico='n2';";
$s.="I1='<a id="commend_'+id+'" class="k_ajax" rel="{CMD:'commend',is:'+(1-is)+',ID:'commend_'+id+'',kid:'+id+',IS:2}" >'+$.kc_icon(ico)+'</a>';return I1;};";
$s.='ll(''.$king->lang->get('portal/search/chaxun').'','manage',''.$king->lang->get('portal/search/zuozhe').'','<i>'.$king->lang->get('portal/label/attrib/iscommend').'</i>',1);';
$s.='ll('.$rs['kid'].',''.$rs['ktitle'].'',0);';
}
//结束列表
$s.=$king->closeList();
//list($left,$right)=king_inc_list();
$king->skin->output($king->lang->get('portal/search/result'),$left,$right,$s);
}
}else
{
echo '日,居然是非法ID';
}
}
?>