导航

萌即是正义!时不时分享一些ACG活动记录与有趣代码的小站!

侧边栏
热门文章
1推文
2025年4月19日,天气晴,今天去六本木参观手塚治虫《火之鸟》展。 展览设在六本木著名的观景台里,一边看展览,一边还能从52层俯瞰整个东京的景色,所以特地选了傍晚时分,正好能看着东京由白天渐渐过渡到夜晚的模样,夜景非常漂亮。 不过稍微有点可惜,展览本身禁止拍摄,只能在入口处拍几张留念。 展出的内容以手塚治虫老师《火之鸟》的手稿为主,按照各个篇章的顺序,介绍了每个篇章的大致剧情和设定背景。 不愧是手塚治虫老师的神作,从这些设定与故事脉络里,能清晰看到如今许多动漫与影视作品的影子,堪称现代剧情内容创作的开山鼻祖。 如果有机会,真的很推荐亲自看看,感受一下那个时代孕育出的不朽之作。
热度
336
2页面
活动
热度
260
3页面
程序员老黄历&求签
热度
260
4推文
日本著名的博客平台goo blog宣布2025年11月18日停止服务。 很可惜呀,这个博客平台存有大量日本圣地巡礼的内容。随着goo blog的停止,圣地巡礼尤其是老作品的圣地巡礼的资料将会迎来断崖式的减少。
热度
182
5博文
面码找到你了!探寻超平和Busters的秘密基地——《我们仍未知道那天所看见的花的名字》秩父圣地巡礼
热度
182
6博文
探访《蜡笔小新》老家——春日部游记
热度
169
7页面
友链
热度
130
8推文
从52层的六本木观景台俯瞰东京的夜景,真的非常漂亮! 还遇到了不知道哪里正在烟花表演,使得景色更加美丽了!
热度
129
9博文
真相永远只有一个!《名侦探柯南》特别音乐会2025
热度
104
10推文
今天去看了首部初音未来的电影《剧场版 世界计划 破碎的世界与无法歌唱的未来》。 说是初音未来的电影,但其实是手游《世界计划》的剧场版。好像有挺多人看到是初音未来的电影就去看了,结果发现并不全是😅。其实在宣传海报中,初音未来后面的那些人才是主角。 不过,我也是那些没玩过手游的观众之一。其实整场看下来问题也不是很大,就是对于人物关系和世界观的设定可能会有些问题。电影其实也很贴心地在剧情开头,大致以剧情的形式展示了手游中的五个团体的人物及其性格,但感觉还是有些杯水车薪,约等于看个眼熟。 此次的电影是第一次购买应援场。所谓的应援场,就是能在电影院里像是听演唱会一样挥舞荧光棒和尽情呐喊。看着前排那些粉丝看到自己喜欢角色时的呐喊,以及演唱会环节的打CALL,应援场确实是很有意思的一种电影观看方式呢! 剧情方面,属于看了开头大概能猜到整部动画的剧情走向。不过,通过演唱会的气氛渲染,甚至还感受到了一丝丝的感动。 总体来说,对于手游的粉丝来说可能是嘉年华般的狂喜,对于没接触过手游的路人来说也能一定程度融入其中,属于一部不错的粉丝向电影(不管是手游粉丝还是初音未来粉丝)。 首周电影特典是CD和游戏内的兑换码。送CD这种形式还第一次遇到,官方大气!
热度
91
最新评论
广树管理员
2025-04-19 21:48
@粽叶加米:是这样的,现在主线推进非常非常慢
广树管理员
2025-04-19 21:47
@AlexMa233:Wayback Machine 查询前需要知道URL,届时都不知道怎么搜索
粽叶加米
2025-04-19 17:04
当时回想起为什么断追,可能是主线推进太慢~
AlexMa233
2025-04-19 15:11
有数据迁移服务,但是只能迁移评论和博文,并且要本人转移 没有完整的归档公开 但是Wayback Machine应该可以保存大部分的内容
广树管理员
2025-04-18 21:49
@Zrzzz:其实更直观点还可以传全景视频,只不过不想露脸。
攻略中
星空列车与白的旅行
暂无评分
Steam星空列车与白的旅行
2025年2月22日 22时 ~ 攻略中
已累计游玩1个月26天
乘坐的列车,划破夜空,飞驰在星空之下,令人心旷神怡——这可真是场超值之旅。舒爽夜风吹拂下的随心独旅中,我邂逅了随性的乘客,可人怜爱的乘务员。以及……猫耳少女?这场旅行,究竟会在她身上,留下了些什么呢?
界之轨迹
暂无评分
PS5界之轨迹
2024年9月28日 14时 ~ 攻略中
已累计游玩6个月23天
导力之父爱普斯泰因预言的世界末日即将到来,此时东大陆共和国所研发的导力火箭划破天空,即将探访这个世界的边界。 与此同时万事屋的青年们,正聚集在奥雷德自治州,与集结而来的各方势力,一同看望着这科技奇点。 人们这次是否能认识到世界的真实呢?
PSN奖杯卡

PSN奖杯卡

归档
赞助商广告

给emlog加上显示评论者等级功能

作者:广树时间:2018-04-13 09:25:51分类:PHP

前段时间看到别人的博客有评论者等级的机制于是自己也就想弄一个。在网上查了许多资料后自己也写了一个评论等级功能。

因为没有用户注册机制,所以我们就只能依据评论者留下的邮箱来判断这名用户在网站评论过多少次。


下面是代码部分:

PHP

推荐写在emlog模版文件的module.php下面

<?php
//comment:输出等级
function echo_levels($comment_author_email){
  if($comment_author_email == '""'){
	echo 'null';
  }else{
	  $DB = MySql::getInstance();
	  $sql = "SELECT cid as author_count FROM 评论数据的表单 WHERE mail = ".$comment_author_email."and hide ='n'";
	  $res = $DB->query($sql);
	  $author_count = mysql_num_rows($res);
	  if($author_count>9999){
		  $author_count = 9999;
	  }
	  echo $author_count;
  }
}
?>


注意下 【$sql = "SELECT cid as author_count FROM 评论数据的表单 WHERE mail = ".$comment_author_email."and hide ='n'";】

其中【评论数据的表单】换成自己的,一般来说是emlog_comment


然后使用下面的代码来导出这个用户发过多少次评论。

<?php $mail_str="\"".strip_tags($comment['mail'])."\"";echo_levels($mail_str); ?>

我这里是定义了input的值然后用js去循环出等级。


JSON

这里来定义发多少次评论所对应的等级。

下面是我写的等级表。

{
	"lv_exp": [{
			"name": "Lv.萌新",
			"exp": 3,
			"color": "Magenta"
		},
		{
			"name": "Lv.初学者",
			"exp": 10,
			"color": "BlueViolet"
		},
		{
			"name": "Lv.进阶者",
			"exp": 26,
			"color": "Blue"
		},
		{
			"name": "Lv.高阶者",
			"exp": 40,
			"color": "LightSeaGreen"
		},
		{
			"name": "Lv.半大佬",
			"exp": 70,
			"color": "YellowGreen"
		},
		{
			"name": "Lv.大佬",
			"exp": 110,
			"color": "GoldenRod"
		},
		{
			"name": "Lv.顶级大佬",
			"exp": 160,
			"color": "DarkRed"
		},
		{
			"name": "Lv.世界大佬",
			"exp": 220,
			"color": "Crimson"
		},
		{
			"name": "Lv.传说",
			"exp": 380,
			"color": "Red"
		},
		{
			"name": "Lv.永恒传说",
			"exp": 9999,
			"color": "ForestGreen"
		}
	],
	"lv_null": [{
		"name": "Lv.神秘人",
		"color": "gray"
	}]
}

lv_exp是评论者有留下邮箱时的等级配置。

以如下配置为例


"name": "Lv.萌新",
"exp": 3,
"color": "Magenta"


name为等级名称。

exp如果为3则表示评论数小于等于3为萌新。

color定义了这个等级的色值。


lv_null是评论者没有留下邮箱时定义的名字和颜色。


JS

$(document).ready(function(e) {
    $.ajax({
		url:"<?php echo TEMPLATE_URL; ?>/lvList/lv.json",
		success:function(result){
        	var lvList = result.lv_exp;
			var lv_exp = $('.lv_exp');
			for(var i=0;i<lv_exp.length;i++){
				var num = lv_exp.eq(i).val();
				if(num != 'null'){
					var lvName = '';
					var lvColor='';
					var listCount = 0;
					for(var j=0;j<lvList.length;j++){
						if(parseFloat(num) <= lvList[j-listCount].exp){
							console.log(num);
							lvName = lvList[j-listCount].name;
							lvColor = lvList[j-listCount].color;
							break;
						}
					}
					$('.alv_body').eq(i).append('<div><span class="wikimoe_level_label" style="color:'+lvColor+';border-color:'+lvColor+'">'+lvName+'</span></div>');
				}else{
					var nullName = result.lv_null[0].name;
					var nullColor = result.lv_null[0].color;
					$('.alv_body').eq(i).append('<div><span class="wikimoe_level_label" style="color:'+nullColor+';border-color:'+nullColor+'">'+nullName+'</span></div>');
				}
			}
			
			$('.alv_body').fadeIn();
			
    	}
	});
});


就是循环一遍json数据然后添加到对应的元素内,这里的$('.alv_body')等元素要改成自己的元素。


CSS

/*等级*/
.alv_body{
	font-weight:bold;
	display:none;
	margin-top:5px;
	opacity: 0.6;
}
.wikimoe_level_label{
	border-style: solid;
    border-width: 1px;
    border-radius: 5px;
    padding: 0px 5px;
    display: inline-block;
	line-height: 20px;
    font-size: 12px;
}

样式其实可以无所谓,根据自己的情况进行更改。


最终效果:

donate.png

1210 x 50(蓝底).png

cloudcone