多说评论回复可见教程

  • 内容
  • 相关

说在教程之前:

    1.本教程由鬼少原创,转发请注明出处,之前发布的pjax教程被多人抄袭!

    2.本教程须读者有代码阅读理解能力。

    3.本教程需要提前做多说反向同步,多说反向同步请搜索本站。

    4.关于本帖的问题,请不要私聊QQ找我。请仔细看教程。


教程开始:

    1.本地化多说JS,具体教程转:http://tv1314.com/post-234.html,确认之后下一步;

    2.打开embed.js搜索"j.loadRequire"代码找到"H"方法如下:

H = j.loadRequire = function(e) {
	if (e.visitor && (!ot.data && e.visitor.user_id && g && !g.checkPermission() && U.send({
	logged_user_id: e.visitor.user_id
	}),ot.reset(e.visitor)), e.site && (nt.reset(e.site), W.save("ds_site_" + c.short_name, e.site)), !j.theme && nt.data.theme && n(nt.data.theme), e.lang && (o.extend(D, e.lang), W.save("ds_lang_" + c.short_name, e.lang)), e.stylesheets) for (var t = 0; t < e.stylesheets.length; t++) o.injectStylesheet(e.stylesheets[t]);
	if (e.nonce && (j.nonce = e.nonce), e.style && o.injectStyle((e.style || "") + j.compileStyle(c.component_style)), e.unread && dt.reset(e.unread), e.warnings) for (var t = 0; t < e.warnings.length; t++) S.warn(e.warnings[t])
}
//替换为
H = j.loadRequire = function(e) {
	if (e.visitor && (!ot.data && e.visitor.user_id && g && !g.checkPermission() && U.send({
	logged_user_id: e.visitor.user_id
	}),document.cookie="userurl="+ e.visitor.url,document.cookie="useremail="+ e.visitor.email,ot.reset(e.visitor)), e.site && (nt.reset(e.site), W.save("ds_site_" + c.short_name, e.site)), !j.theme && nt.data.theme && n(nt.data.theme), e.lang && (o.extend(D, e.lang), W.save("ds_lang_" + c.short_name, e.lang)), e.stylesheets) for (var t = 0; t < e.stylesheets.length; t++) o.injectStylesheet(e.stylesheets[t]);
	if (e.nonce && (j.nonce = e.nonce), e.style && o.injectStyle((e.style || "") + j.compileStyle(c.component_style)), e.unread && dt.reset(e.unread), e.warnings) for (var t = 0; t < e.warnings.length; t++) S.warn(e.warnings[t])
}

    3.保存成功之后,此时登陆多说,会产生两个cookie分别为登录用户的url和email;

    4.此时可登陆自己账户到F12控制台查看当前是否有这两个cookie,有则成功,否则失败;

    5.打开模板公用文件添加如下函数:

/**
 * 这里只提供emlog的部分代码,其他程序请参考
 * 由于本站采用参数安全拦截插件所以未对参数进行过滤,读者请注意。
 * 检测文章内容可见
 * $content 文章内容
 * $post_id 文章ID
 */
function ishascomment($content,$post_id){
	if(preg_match_all('|\[hide\]([\s\S]*?)\[\/hide\]|i', $content, $hide_words)){
		if($_COOKIE['useremail'] && $_COOKIE['useremail'] != ''){
			$r = MySql::getInstance();
			$row=$r->once_fetch_array("SELECT * FROM  `".DB_NAME."`.`".DB_PREFIX."comment` WHERE `mail` =  '".$_COOKIE['useremail']."' and `gid` = '".$post_id."' ORDER BY `date` DESC");
		}else if($_COOKIE['userurl'] && $_COOKIE['userurl'] != ''){
			$r = MySql::getInstance();
			$row=$r->once_fetch_array("SELECT * FROM  `".DB_NAME."`.`".DB_PREFIX."comment` WHERE `url` =  '".$_COOKIE['userurl']."' and `gid` = '".$post_id."' ORDER BY `date` DESC");
		}
		if($row && (time()-$row['date']) <= 3600*24 && $row['hide'] == 'n' ){ //通过的评论在24小时之内
			$content = str_replace($hide_words[0],$hide_words[1], $content);
		}else{
			$hide_notice = '<div style="text-align:center;border:1px dashed #000;padding:8px;margin:10px auto;color:#FF6666;">管理员设置<a href="#ds-reset">回复</a>可见隐藏内容,回复后请<a href="'.BLOG_URL.'post-'.$post_id.'.html">刷新</a>本页面</div>';
			$content = str_replace($hide_words[0], $hide_notice, $content); 
		}
	}
	return $content;
}

    6.然后再输出文章内容的地方调用此方法,代替原文章输出。


本文标签:

版权声明:若无特殊注明,本文皆为《鬼少》原创,转载请保留文章出处。

本文链接:多说评论回复可见教程 - http://tv1314.com/post-353.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

评论

6条评论
    1. avatar

      起点终站 Lv.5 回复

      用cookie这个方法好多了,之前想用过jq判断,,可是最近多说最抽风经常加载不出来也是日了狗

      福建省福州市 电信

      1. 鬼少 回复

        回复了起点终站:那为什么没有看到你的666

        广东省深圳市 联通

    2. avatar

      suppore Lv.3 回复

      话说我就看中了多说的那个最近访客的功能。

      湖南省张家界市 电信

      1. 鬼少 回复

        回复了suppore:那个是自带的

        广东省深圳市 电信

    3. avatar

      半永久培训 Lv.2 回复

      挺不错的呢,谢谢分享了

      上海市 电信

      00:00 / 00:00
      顺序播放