php,function add_view($id) {, $sql = "UPDATE diypage SET views=views+1 WHERE id='$id'";, return $GLOBALS['db']>ExecuteNoneQuery($sql);,},
``在PHPCMS 2008中增加浏览次数的插件代码,可以通过以下几个步骤实现,以下是详细的操作指南和相关代码示例:
1. 验证用户权限
需要通过会话来验证用户的权限,确保只有具有相应权限的用户才能执行增加浏览次数的操作,这有助于防止恶意操作。
session_start(); extract($_POST); require dirname(__FILE__) . '/include/common.inc.php'; $keyadmin = "www.bitefu.net"; if ($key && $key == $keyadmin) { $_SESSION["NowKey"] = $keyadmin; } if ($_SESSION["NowKey"] && $_SESSION["NowKey"] == $keyadmin) { // 继续执行后续操作 } else { // 提示错误信息 echo "KEY错误"; exit(); } ?>
2. 选择增加类型
用户可以在表单中选择不同的增加方式,包括增加指定文章的浏览次数、增加指定范围内的文章浏览次数、增加指定栏目文章的浏览次数,以及增加公司活跃度等。
选择增加类型:<br /> 指定ID: <input name="thisid" type="text" id="thisid" size="10" /><br /> ID范围: <input name="idstart" type="text" id="idstart" size="10" />到<input name="idend" type="text" id="idend" size="10" /><br /> 栏目ID: <input type="hidden" name="catid" id="catid" value="all">全部 <font color="red">点击重选</font><br /> 增加值: <input name="addnum" type="text" size="10" value="<?=$addnum; ?>" /><br /> <input type="submit" name="submit" value="提交" />
3. 执行SQL更新操作
根据用户选择的增加方式,执行相应的SQL语句来更新数据库中的浏览次数字段,如果用户没有填写增加值,系统会提示“增加值不能为空”。
<?php if ($submit && $addnum) { if ($thisid) { $sql = "update". DB_PRE . "content_count
sethits
=hits
+ " . $addnum . " wherecontentid
='$thisid'"; } elseif ($idstart) { $sql = "update". DB_PRE . "content_count
sethits
=hits
+ " . $addnum . " wherecontentid
>= '$idstart'"; if ($idend) { $sql .= " andcontentid
<= '$idend'"; } } elseif ($comid || $comstart || $comend || $comall) { if ($comid) { $sql = "update". DB_PRE . "member_info
setlogintimes
=logintimes
+ " . $addnum . " whereuserid
='$comid'"; } elseif ($comstart) { $sql = "update". DB_PRE . "member_info
setlogintimes
=logintimes
+ " . $addnum . " whereuserid
>= '$comstart'"; if ($comend) { $sql .= " anduserid
<= '$comend'"; } } elseif ($comall && $comall == 1) { $sql = "update". DB_PRE . "member_info
setlogintimes
=logintimes
+ " . $addnum; } else { $sql = ''; } } elseif ($catid) { if ($catid == "all") { $sql = "update". DB_PRE . "content_count
sethits
=hits
+ " . $addnum; } else { $getid_query = mysql_query("selectcontentid
from". DB_PRE . "content
where status=99 " . get_sql_catid($catid)); while ($rs = mysql_fetch_assoc($getid_query)) { $getid[] = $rs['contentid']; } $idstr = implode(",", $getid); $sql = "update". DB_PRE . "content_count
sethits
=hits
+ " . $addnum . " wherecontentid
in ($idstr)"; } } else { $sql = ''; } if ($sql && $submit) { mysql_query($sql); echo date("Ymd H:i:s") . "成功执行了添加操作,共影响数据:" . mysql_affected_rows() . " 条"; } elseif (!$addnum) { echo "增加值不能为空!"; } } ?>
4. 动态加载栏目ID(可选)
为了提高用户体验,可以使用JavaScript动态加载栏目ID,使用户能够根据需要选择不同的栏目,这通常通过AJAX异步请求实现。
function category_load(id) { var data = 'id=' + id; $.ajax({ type: "GET", url: "load.php", //负责动态加载栏目ID的文件路径 data: data, cache: false, success: function (response) { $('#load_catid').html(response); } }); }
5. 常见问题解答(FAQs)
问题1:为什么浏览次数没有增加?
解答:请确保您已经在后台开启了“开启栏目统计”和“显示浏览次数”选项,并检查内容显示页面show.html中是否正确引用了JavaScript代码,请确认PHPCMS2008使用的是JQuery库,避免自定义的$()函数与JQuery冲突。
问题2:如何增加指定范围内的文章浏览次数?
解答:在表单中输入起始ID(idstart
)和结束ID(idend
),然后提交表单,插件会根据这些参数生成相应的SQL语句来批量增加指定范围内的文章浏览次数,请确保增加值(addnum
)不为空。
字段 | 代码 | 说明 |
插件文件名 | bclick.php | 插件文件名,通常与插件名称一致 |
插件文件内容 | 插件代码内容 | |
<> | PHP开始标签 | |
if(!defined('IN_PHPCMS')) exit('Access Denied'); | 判断是否在PHPCMS环境中运行,如果不是则退出 | |
$id = $_GET['id']; | 获取GET参数中的id值,通常是文章或内容的ID | |
$db = pc_base::load_model('content_model'); | 加载内容模型,用于数据库操作 | |
$data = $db>get_one(array('id'=>$id)); | 根据id查询内容信息 | |
if($data) { | 如果内容存在,则执行以下代码 | |
$data['clicks'] = $data['clicks'] + 1; | 将点击次数加1 | |
$db>update(array('clicks'=>$data['clicks']), array('id'=>$id)); | 更新内容表中的点击次数 | |
} | }结束标签 | |
echo $data['clicks']; | 输出点击次数 | |
?> | PHP结束标签 |
使用方法:
1、将上述代码保存为bclick.php
文件。
2、将bclick.php
文件上传到PHPCMS的phpcms/templates/
目录下。
3、在需要显示点击次数的位置,使用以下代码:
<a href="index.php?m=content&c=index&a=show&catid=1&id=123">文章标题</a> 点击次数:<script src="templates/default/bclick.php?id=123"></script>
注意:
1、将catid
和id
替换为实际的文章或内容ID。
2、确保插件文件名与代码中的bclick.php
一致。