帝国CMS您现在的位置是:首页 > 博客日志 > 帝国CMS

帝国cms 评论增加可输入显示个人网址链接功能

<a href='mailto:'>微wx笑</a>的头像微wx笑2019-09-16 15:28:48帝国CMS人已围观关键字:评论

简介你可能会发现有些网站评论留言的时候,可以输入个人网址,评论提交通过后,页面显示的评论内容姓名上会显示你的个人网址的链接,这让很多有自己的站点、博客、空间等的小伙伴更积极的评论留言。

帝国cms 评论增加可输入显示个人网址链接功能zRQ编程技术_踩坑日志_进阶指南 - 无知人生

你可能会发现有些网站评论留言的时候,可以输入个人网址,评论提交通过后,页面显示的评论内容姓名上会显示你的个人网址的链接,这让很多有自己的站点、博客、空间等的小伙伴更积极的评论留言。zRQ编程技术_踩坑日志_进阶指南 - 无知人生

那我在“帝国cms整合多彩主题评论插件2.0(7.0~7.5)”的基础上,也增加了这一功能。
zRQ编程技术_踩坑日志_进阶指南 - 无知人生

image.pngzRQ编程技术_踩坑日志_进阶指南 - 无知人生

实现步骤如下:

一、修改模板及样式

编辑文件:/e/extend/lgyPl2/config.phpzRQ编程技术_踩坑日志_进阶指南 - 无知人生

'logintemp'=>'<a href=\"/e/member/login/\">登录</a> <p><input id=\"comment-author\" name=\"author\" size=\"12\" value=\"\" placeholder=\"您的大名\"><input id=\"comment-email\" name=\"email\" size=\"20\" value=\"\" placeholder=\"电子邮件\"><input id=\"comment-url\" name=\"url\" size=\"38\" value=\"\" placeholder=\"个人网址,e.g.,https://www.ivu4e.com\"><input type=\"checkbox\" id=\"comment-bake-cookie\" name=\"bakecookie\" onclick=\"!this.checked?forgetMe(this.form):rememberMe(this.form)\" value=\"1\" accesskey=\"r\"><label for=\"comment-bake-cookie\">记住我的信息</label></p>',

样式根据自己的需要调整吧。zRQ编程技术_踩坑日志_进阶指南 - 无知人生

实现“记住我的信息”功能,通过把信息保存在Cookie中来实现,加载评论框的时候从Cookie中读取显示出来;其实也可以使用localStorage来实现。zRQ编程技术_踩坑日志_进阶指南 - 无知人生

二、数据表添加字段

image.pngzRQ编程技术_踩坑日志_进阶指南 - 无知人生

urlgo,字段名不标准,用来记录个人网址的访问次数。zRQ编程技术_踩坑日志_进阶指南 - 无知人生

三、表单提交数据的添加及格式验证

编辑文件:/e/extend/lgyPl2/data/lgyPl.2.0.jszRQ编程技术_踩坑日志_进阶指南 - 无知人生

        var formData = {
            enews:'AddPl',
            id:id,
            classid:classid,
            repid:repid,
            key:key.val(),
            nomember:that.islogin?0:1,
            saytext:saytext.val(),
            img:img.val(),
            username:that.config.randname,
            author:document.lgyPl_v2_form.author?document.lgyPl_v2_form.author.value:'',
            email:document.lgyPl_v2_form.email?document.lgyPl_v2_form.email.value:'',
            url:document.lgyPl_v2_form.url?document.lgyPl_v2_form.url.value:''
        };
        if(!formData.saytext){
            that.toast('请先说点什么吧');
            saytext.focus();
            return false;
        }
        var reg = /^[\u4E00-\u9FA5A-Za-z0-9]+$/;
        if (formData.author != undefined && formData.author.length > 0){
          if(!reg.test(formData.author)){
              that.toast('姓名格式错误,可包含中文、英文及数字');
              return false;
          }
        }
        var reg = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
        if (formData.email != undefined && formData.email.length > 0){
          if(!reg.test(formData.email)){
              that.toast('邮箱格式错误');
              return false;
          }
        }
        var reg = /\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i;
        if (formData.url != undefined && formData.url.length > 0){
          if(!reg.test(formData.url)){
              that.toast('个人网址格式错误');
              return false;
          }
        }

四、后台保存评论内容代码修改

编辑文件:/e/extend/lgyPl2/class/plfun.phpzRQ编程技术_踩坑日志_进阶指南 - 无知人生

同样要对数据进行验证zRQ编程技术_踩坑日志_进阶指南 - 无知人生

    $author = trim(RepPostVar($add[author]));
    if ($author){
    	if (strlen($author) < 5 || strlen($author) > 20){
			lgyPl_v2::printerror("AuthorLenFail","history.go(-1)",1);
        }
      	if (!preg_match("/^[\u4E00-\u9FA5A-Za-z0-9]+$/",$author)) {
      		lgyPl_v2::printerror("AuthorFail","history.go(-1)",1);
     	}
    }
  
    $email = trim(RepPostStr($add['email']));
    if ($email) {
        if (strlen($email) < 5 || strlen($email) > 80){
            lgyPl_v2::printerror("EmailLenFail","history.go(-1)",1);
        }
        if (!preg_match("/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/",$email)) {
            lgyPl_v2::printerror("EmailFail","history.go(-1)",1);
        }
    }
    $url = trim(RepPostStr($add['url']));
    if ($url){
        if (strlen($url) < 5 || strlen($url) > 50){
            lgyPl_v2::printerror("UrlLenFail","history.go(-1)",1);
        }
        if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$url)) {
          	lgyPl_v2::printerror("UrlFail","history.go(-1)",1);
      	}
    }

修改插入SQL语句;
zRQ编程技术_踩坑日志_进阶指南 - 无知人生

对跳转的处理,添加记数,统计个人网址被访问了多少次
zRQ编程技术_踩坑日志_进阶指南 - 无知人生

//页面跳转
function redirectTo($url){
    header('content-type:text/html;charset=uft-8');
    //重定向页面
    header('location:'.$url);
    exit();
}

//记数并跳转到个人网址
function DoUrlGo($add){
  	global $empire,$dbtbpre,$class_r;
	$classid=(int)$add['classid'];
    $id=(int)$add['id'];
	$plid=(int)$add['plid'];
    $errUrl = "/404.html";
	//专题
	$doaction=$add['doaction'];
	if($doaction=='dozt')
	{
		if(!$classid||!$plid)
		{
			redirectTo($errUrl);
		}
		$infor=$empire->fetch1("select ztid,restb from {$dbtbpre}enewszt where ztid='$classid'");
		if(!$infor['ztid'])
		{
			redirectTo($errUrl);
		}
		$pubid='-'.$classid;
	}
	else//信息
	{
		if(!$classid||!$id||!$plid||!$class_r[$classid][tbname])
		{
			redirectTo($errUrl);
		}
		$infor=$empire->fetch1("select classid,restb from {$dbtbpre}ecms_".$class_r[$classid][tbname]." where id='$id' limit 1");
		if(!$infor['classid'])
		{
			redirectTo($errUrl);
		}
		$pubid=ReturnInfoPubid($classid,$id);
	}

    $plrow = $empire->fetch1("select url from {$dbtbpre}enewspl_".$infor['restb']." where plid='$plid'");
  	$url=$plrow['url']?$plrow['url']:"";
    if ($url){
        $empire->query("update {$dbtbpre}enewspl_".$infor['restb']." set urlgo=urlgo+1 where plid='$plid'");
       redirectTo($url);
    }else{
        redirectTo($errUrl);
    }
}

小结

修改的地方比较多,文中只列出一些主要的部分,如果有需要的话,后续提供一个完整的下载链接。zRQ编程技术_踩坑日志_进阶指南 - 无知人生

注意:这里面有一个坑,php的正则表达式处理与Javascript不一致,姓名验证的功能JS处理正常,php就不行了。参考:php正则表达式处理方面的一个坑,php中文正则表达式zRQ编程技术_踩坑日志_进阶指南 - 无知人生


zRQ编程技术_踩坑日志_进阶指南 - 无知人生

本文由 微wx笑 创作,采用 CC BY-NC 4.0 许可协议。 非商业性使用可自由转载、引用、甚至修改,但需署名作者且注明出处。

很赞哦! () 有话说 ()

站点信息

  • 建站时间:2018-10-24
  • 服务期限阿里云ECS 2027年到期
  • 主题模板:基于《今夕何夕》修改
  • 文章统计:238篇
  • 文章评论:16条
  • 文章阅读:5220次
  • 文章点赞:1263次
  • 微信公众号:扫描二维码,关注我们
  • 二维码-微信公众号-微wx笑