帝国CMS二次开发:为会员空间添加最近访客功能
帝国CMS二次开发会员空间增加最近访客功能,可以通过以下步骤实现: 1. 在会员空间模板中添加一个显示最近访客的模块。 2. 在后台数据库表中添加一个记录访客信息的表,用于存储访客的IP地址、访问时间等信息。 3. 编写一个函数,用于获取当前登录用户的最近访客信息,并将其显示在会员空间模板中的相应位置。 4. 在用户登录时,将该用户的IP地址和访问时间记录到后台数据库表中。 5. 在用户退出登录时,从后台数据库表中删除该用户的访问记录。
帝国CMS会员空间是没有访客记录功能的,所以我们需要二次开发一个,方法不是非常复杂,步骤代码会全部列出,大致效果是这样的。
1、首先我们去后台新建一个会员字段,用来储存访客记录。
字段名zuijin字段标识最近访客字段类型字符型0-255字节(VARCHAR)255输入表单替换html代码<inputname="zuijin"type="text"id="zuijin"value="<?=$ecmsfirstpost==1?"":ehtmlspecialchars(stripSlashes($addr[zuijin]))?>"size="">
2、然后修改会员空间的header.temp.php模板,增加访问空间页面就写入访客记录代码
//增加会员访问记录if($getuserid&&$getuserid<>$userid){$r=$empire->fetch1("selectzuijinfrom{$dbtbpre}enewsmemberaddwhereuserid='$userid'limit1");if(empty($r['zuijin'])){$empire->query("update{$dbtbpre}enewsmemberaddsetzuijin='$getuserid::::::'whereuserid='$userid'");}else{$zuijin=explode("::::::",$r['zuijin']);if(in_array($getuserid,$zuijin)){$newzuijin=$getuserid."::::::".str_replace($getuserid."::::::","",$r['zuijin']);$empire->query("update{$dbtbpre}enewsmemberaddsetzuijin='$newzuijin'whereuserid='$userid'");}else{$empire->query("update{$dbtbpre}enewsmemberaddsetzuijin='$getuserid::::::$r[zuijin]'whereuserid='$userid'");}}}
当用户访问就写入字段zuijin记录下来。数据库大致格式为:ID::::::
3、最后就是在需要的地方调用访问记录就可以了
<?php$jl=$empire->fetch1("selectzuijinfrom{$dbtbpre}enewsmemberaddwhereuserid='$userid'limit1");$jluserid=explode("::::::",$jl['zuijin']);$i=0;$jlnum=count($jluserid)-1;if($jlnum>=8){$jlnum=8;}elseif($jlnum=='0'){echo'<divclass="nogz">暂时还没有访客记录</div>';}while($i<$jlnum){$jluser=$empire->fetch1("select*from{$dbtbpre}enewsmemberaddwhereuserid='$jluserid[$i]'limit1");$jluserxx=$empire->fetch1("select*from{$dbtbpre}enewsmemberwhereuserid='$jluserid[$i]'limit1");$jluserpic=$jluser['userpic']?$jluser['userpic']:$public_r[newsurl].'e/data/images/nouserpic.gif';?><li><ahref="/e/space/?userid=<?=$jluserid[$i]?>"><imgsrc="<?=$jluserpic?>"/><span><?=$jluserxx[username]?></span></a></li><?$i++;}?>
首先循环查询出zuijin字段的内容,然后分隔出来,最后再循环调用对应的ID会员内容,完工了。