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

织梦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环境

代码:

<tr>
     <td>
      <?php PrintAutoFieldsEdit($cInfos['fieldset'],$addRow); ?>
    </td>
</tr>
<tr>
	   <td>
		   <?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 .= '<input type="checkbox" name="plnos" class="np" value="'.$arr["title"].'" checked="checked">'.$arr["title"].' ';
		           }else{
		               $myformItem .= '<input type="checkbox" name="plnos" class="np" value="'.$arr["title"].'">'.$arr["title"].' ';
		           }
		   
		       }
		       $str .= "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td align=\"center\" width=\"120\">".$typenames[$i]."</td>
		   									    <td width=\"1000\">".$myformItem."</td></tr></table>\r\n";
		   }
		   echo $str;
		   ?>
            //添加jquery <script src="/template/default/js/jquery-1.4.2.min.js" type="text/javascript" charset="utf-8"></script> <script> $(function(){ $("input[name='plnos']").change(function(){ var value = ","; $("input[name='plnos']:checked").each(function(){ value += $(this).attr("value")+","; }) $("#plno").val(value); }) }) </script> </td> </tr>

  

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

路径:/dede/templets/archives_add.htm

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

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

代码:

<tr>
     <td><?php PrintAutoFieldsAdd($cInfos['fieldset']); ?></td>
</tr>
<tr>
		<td>
			<?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 .= '<input type="checkbox" name="plnos" class="np" value="'.$arr["title"].'">'.$arr["title"].' ';
			    }
			    $str .= "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td align=\"center\" width=\"120\">".$typenames[$i]."</td>
					<td width=\"1000\">".$myformItem."</td></tr></table>\r\n";
			}
			echo $str;
			?>
			//添加jquery
			<script src="/template/default/js/jquery-1.4.2.min.js" type="text/javascript" charset="utf-8"></script>
			<script>
			    $(function(){
			    $("input[name='plnos']").change(function(){
			
			        var value = ",";
			        $("input[name='plnos']:checked").each(function(){
			            value += $(this).attr("value")+",";
			        })
			        $("#plno").val(value);
			
			    })
			})
			</script>
		</td>
</tr>

  

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'}
<tr align="center">
    <td align="center" style="width:60px;">[field:title/]</td>
    <td align="left">
        [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 .= '<img src="'.$litpic.'" width=/"94/" height=/"110/" />';
        }

        }
        @me = $str;
        [/field:plno]
        <br>
    </td>
</tr>
{/dede:list}

  

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

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

参考代码:

<div data-v-c2d8f402="" class="item_show_in" onclick="thisImg(this)" date-title="男主">
    <div class="ico_check">
      <img src="/templets/default/images/ico_check.png">
      </div>
      <div data-v-c2d8f402="" class="item_pic"><img data-v-c2d8f402="" src="/templets/default/images/1641866197482.jpg"></div>
    <div data-v-c2d8f402="" class="item_pic_des">男主</div>
</div>
<input type="hidden" name="keyword" id="keyword" value="">
<script type="text/javascript">
	//获取点击查询的图片
	function thisImg(obj) {
		$(obj).toggleClass("active");
		var characters = "";
		$("#panel-wrapper-hmp .item_show_in.active").each(function(){
			characters += $(this).attr("date-title")+",";
		})
		$("#keyword").attr("value",characters);
	}
</script>

  

 

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

<input type="hidden" name="keyword" id="keyword" value="男主,优菈,刻晴,尘世之锁,">

标签:arr,游戏,dsql,value,dedeCMS,织梦,添加,sql,dede
来源: https://www.cnblogs.com/captain1024/p/15847144.html