详情页

帝国cms如何开发一个会员浏览记录功能

时间:2024年03月31日

编辑:佚名

帝国CMS会员浏览记录插件主要解决了网站用户会员在登录之后浏览不同的页面都能记录到数据库,适用于任何的数据模型,安装简单快捷。
效果图:

第一步:帝国后台--系统--备份数据--执行sql:是utf8 编码的用下面SQL代码:
CREATE TABLE phome_ly_recorduser (
`id` INT( 10 ) NOT NULL AUTO_INCREMENT ,
`userid` INT( 10 ) NOT NULL ,
`tbname` text NOT NULL,
`classid` int(10) unsigned NOT NULL default '0',
`time` varchar(255) NOT NULL default '',
`infoid` int(10) unsigned NOT NULL default '0',
PRIMARY KEY ( `id` )
) ENGINE = MYISAM ;
第二步:在需要记录信息的内容模板中插入以下代码:(注意-需要先引入jquery.js 下面代码要在jquery插件后面在插入)
<script>
function time(){//构建方法
        var time=new Date();//new 出当前时间
        var h=time.getFullYear();//获取年
        var m=time.getMonth()+1;//获取月
        var d=time.getDate();//获取日
        var H = time.getHours();//获取时
        var M = time.getMinutes();//获取分
        var S = time.getSeconds();//获取秒
        return h+"-"+m+"-"+d+" "+H+":"+M+":"+S; //返回 年-月-日 时:分:秒
}
//栏目ID
var classid = [!--classid--];
//信息ID
var id = [!--id--];
//表名称
var tbname = '<?=$class_r[$navinfor['classid']]['tbname']?>';
//登陆用户
var userid = <?=$lguserid=intval(getcvar('mluserid'))?>;
$(function(){
if(userid)
{
$.post(
'/e/extend/recorduser/index.php',
{userid:userid,classid:classid,id:id,tbname:tbname,time:time},               
"html"
);
}
})
</script>
第三步:处理函数:可以直接下载压缩包上传到网站根目录下,文件路径根目录/e/extend/recorduser/index.php
index.php文件代码:
<?php
require('../../e/class/connect.php');        //引入数据库配置文件和公共函数文件
require('../../e/class/db_sql.php');        //引入数据库操作文件
include('../../e/class/functions.php');
$link=db_connect();                //连接MYSQL
$empire=new mysqlquery();        //声明数据库操作类
if(!$_POST['userid'])
{
        exit;        
}
/*
userid
text
/
        表名称:
        栏目ID
        信息ID
表名称@@@栏目ID@@@信息ID::::::
/
*/        
//查询是否已有userid
if($user=$empire->fetch1("select * from {$dbtbpre}ly_recorduser where userid = {$_POST['userid']}"))
{
        //格式化字符串
        $text="{$_POST['tbname']}@@@{$_POST['classid']}@@@{$_POST['id']}";        
        //信息分隔符
        $dot='';
        //判断是否已有记录数
        if(strstr($user['text'],$text))
        {
                //已有记录
                die;        
        }
        if($user['text']!='')
        {
                $dot='::::::';
        }
        //大于10调记录数去掉最后的一条信息
        if($user['text'] && substr_count($user['text'],$dot)>=9)
        {
                //去除最后一条记录数
                $arr=explode('::::::',$user['text']);
                $arrtext='';
                $dot1=$dot;
                for($i=0;$i<count($arr);$i++)
                {
                        if($i!=(count($arr)-1))
                        {
                                if($i==(count($arr)-2))
                                {
                                        $dot1='';        
                                }
                                $arrtext.=$arr[$i].$dot1;
                        }
                }
                $text.=$dot.$arrtext;
        }
        else
        {
                $text.=$dot.$user['text'];
        }
        //不存在的记录数、更新表
        $empire->query("update {$dbtbpre}ly_recorduser set text = '{$text}' where userid = {$_POST['userid']}");
}
//没有记录数插入一条
else
{
        $text="{$_POST['tbname']}@@@@{$_POST['classid']}@@@{$_POST['id']}";        
        $sql=$empire->query(" INSERT INTO {$dbtbpre}ly_recorduser (id,userid,text) VALUES ( '' , {$_POST['userid']} , '{$text}' ) ");
}
?>
第四步:在使用的地方插入以下代码(样式套用自己的即可)
<ul>
<?php
include("./e/class/connect.php");  
$groupid  =getcvar('mlgroupid');   //<a class="tag_link" href="https://www.78moban.com/tag/%e4%bc%9a%e5%91%98" title="查看会员此标签更多文章" target="_blank"><abbr title="">会员</abbr></a>组ID  
$rnd =getcvar('mlrnd');       //认证码加密  
$userid =getcvar('mluserid');    //会员ID  
$username =getcvar('mlusername');  //会员用户名  
?>
[e:loop={"select * from phome_ly_recorduser where userid=$userid order by id desc limit 10",10,24,0}]
 <?
 $fr=$empire->fetch1("select * from {$dbtbpre}ecms_{$bqr[tbname]} where id='$bqr[infoid]'");
 ?>
<li><a href="<?=$fr[titleurl]?>" target="_blank" title="<?=$fr[title]?>"><?=$fr[title]?></a></li>
[/e:loop]
</ul>
 
相关文章
猜你需要