ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-01-26 17:35:20  阅读:186  来源: 互联网

标签:arr 游戏 dsql value dedeCMS 织梦 添加 sql dede


我做的网站实际案例: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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有