织梦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="男主,优菈,刻晴,尘世之锁,">

浙公网安备 33010602011771号