织梦dedeCMS后台系统去制作,按照游戏角色或武器查找账号的功能。(用户一般用来找游戏初始号)


我做的网站实际案例:Game For You,实况足球初始号(苹果IOS专用)

代码修改的不多,在网站后台,角色或武器是一个栏目,账号又是一个栏目。账号栏目里添加文章,可以看到下方出现角色或武器里的文章选项,即快速选择角色或武器。

如图:

图1 : 游戏栏目页面。

图2 : 账号栏目下文章修改页面。

操作如下:

1,模型添加,栏目添加,字段添加

添加新的模型,识别id:ch17,附加表:dede_addon17,频道名称:自定义账号模型。

栏目的添加形式为:某某游戏为父栏目,游戏角色,游戏武器为子栏目,这些栏目的模型为普通文章,再添加模型为“自定义账号模型”的子栏目“账号”。如图1,实况足球初始号为“自定义账号模型”。

“自定义账号模型”添加新的字段,数据字段名:plno,数据类型:多行文本。

2,archives_edit.htm里添加代码

路径:/dede/templets/archives_edit.htm

修改:在<?php PrintAutoFieldsEdit($cInfos['fieldset'],$addRow); ?> 代码下添加

注意:需要添加jquery.js,需要jquery环境

代码:


     
      <?php PrintAutoFieldsEdit($cInfos['fieldset'],$addRow); ?>
    


	   
		   <?php
		       global $dsql;
		   $cars = array();
		   $typenames = array();
		   $index = 0;
		   $typeid = $arcRow['typeid'];
		   $article_id = $arcRow["id"];
		   
		   $sql = " SELECT plno From `dede_addon17` WHERE aid='$article_id' ";
		   $result = $dsql->GetOne($sql);
		   $plno = $result['plno'];
		   $hasfieldss = preg_split("/[s,]+/",$plno);
		   
		   $sql = " SELECT reid From `dede_arctype` WHERE id='$typeid' ";
		   $result = $dsql->GetOne($sql);
		   $sql = "SELECT * From `dede_arctype` WHERE reid = ".$result["reid"]." AND id != '$typeid' ";
		   $dsql->SetQuery($sql);
		   $dsql->Execute();
		   while($arr = $dsql->GetArray())
		   {
		       $cars[$index] = "SELECT * FROM `dede_archives` WHERE typeid =".$arr['id']." AND arcrank = 0 ;";
		       $typenames[$index] = $arr['typename'];
		       $index++;
		   }
		   for($i=0;$i<=count($cars);$i++){
		       $myformItem = "";
		       $dsql->SetQuery($cars[$i]);
		       $dsql->Execute();
		       while($arr = $dsql->GetArray())
		       {
		           if(checkMyfieldsFun($hasfieldss,$arr["title"])){
		               $myformItem .= ''.$arr["title"].' ';
		           }else{
		               $myformItem .= ''.$arr["title"].' ';
		           }
		   
		       }
		       $str .= "
".$typenames[$i]." ".$myformItem."
\r\n"; } echo $str; ?>
            //添加jquery

3,archives_add.htm里添加代码,同上

路径:/dede/templets/archives_add.htm

修改:在<?php PrintAutoFieldsAdd($cInfos['fieldset']); ?>代码下添加

注意:需要添加jquery.js,需要jquery环境

代码:


     <?php PrintAutoFieldsAdd($cInfos['fieldset']); ?>


		
			<?php
			    global $dsql;
			$cars = array();
			$typenames = array();
			$index = 0;
			$typeid = $cid;
			
			$sql = " SELECT reid From `dede_arctype` WHERE id='$typeid' ";
			$result = $dsql->GetOne($sql);
			$sql = "SELECT * From `dede_arctype` WHERE reid = ".$result["reid"]." AND id != '$typeid' ";
			$dsql->SetQuery($sql);
			$dsql->Execute();
			while($arr = $dsql->GetArray())
			{
			    $cars[$index] = "SELECT * FROM `dede_archives` WHERE typeid =".$arr['id']." AND arcrank = 0 ;";
			    $typenames[$index] = $arr['typename'];
			    $index++;
			}
			for($i=0;$i<=count($cars);$i++){
			    $myformItem = "";
			    $dsql->SetQuery($cars[$i]);
			    $dsql->Execute();
			    while($arr = $dsql->GetArray())
			    {
			        $myformItem .= ''.$arr["title"].' ';
			    }
			    $str .= "
".$typenames[$i]." ".$myformItem."
\r\n"; } echo $str; ?> //添加jquery

4,在extend.func.php里添加代码

路径:/include/extend.func.php

作用:步骤2里有需要的代码在此添加,判断是否是已选数据,缺失会报错。

修改:直接在代码最下方添加。

代码:

function checkMyfieldsFun($hasvalue,$title){
	$myflag = false;
	for($j=0;$j<=count($hasvalue);$j++){
		if($hasvalue[$j] == $title){
			$myflag = true;
		}
	}
	return $myflag;
}

5,修改arc.searchview.class.php文件代码

路径:/include/arc.searchview.class.php

作用:通过sql语句查找文章,和search.htm模板一起用于搜索功能。

修改:查找$query,替换掉$query的sql语句。

代码:

$str  = "";
$arr  = preg_split("/[\s,]+/", $this->Keyword);
foreach ($arr as $value)
{
    if($value!=""){
        $str .= "AND plno LIKE '%,".$value.",%'";
    }
}
$query = "SELECT * FROM `dede_addon17` AS a2 , `dede_archives` AS a1 WHERE a1.id = a2.aid ".$str;

6,在search.htm模板里面,在list标签里修改代码

路径:核心模板/default/search.htm 

作用:用于直接利用存储的数据直接找到角色或武器。

参考代码:

{dede:list pagesize='999'}

    [field:title/]
    
        [field:plno runphp=yes]
        global $dsql;
        $plno = @me;
        $arr = preg_split("/[\s,]+/", $plno);
        $str = "";

        foreach ($arr as $value)
        {
        if($value != "" && !empty($value)){

        $sql = "SELECT litpic FROM `dede_archives` WHERE title = '".$value."' AND arcrank = 0;";
        $result = $dsql->GetOne($sql);
        $litpic = $result['litpic'];
        if(empty($litpic) || $litpic==""){$litpic="/images/defaultpic.gif";}
        $str .= '';
        }

        }
        @me = $str;
        [/field:plno]
        
{/dede:list}

7,页面上通过jquery勾选,填入input[name='keyword']里

作用:通过点击快速选择,将角色填入value里。

参考代码:

    
           
    
    
男主

input[name='keyword']中的value内容用逗号隔开,例如:

相关