一百四十四:CMS系统之评论布局和功能二

在base页加一个登录标识符

给加页面两个id,方便取值

js

$(function () {   //初始化ueditor    var ue = UE.getEditor(‘editor‘, {        ‘serverUrl‘: ‘/ueditor/upload/‘,        // 定制uedtior工具栏按钮        "toolbars": [            [                ‘undo‘, //撤销                ‘redo‘, //重做                ‘bold‘, //加粗                ‘italic‘, //斜体                ‘source‘, //源代码                ‘blockquote‘, //引用                ‘selectall‘, //全选                ‘insertcode‘, //代码语言                ‘fontfamily‘, //字体                ‘fontsize‘, //字号                ‘simpleupload‘, //单图上传                ‘emotion‘ //表情            ]        ]    });    window.ue = ue;  // 把ue对象绑定到window上,方便下面js用});$(function () {    $(‘#comment-btn‘).click(function (event) {        event.preventDefault();        //校验用户是否登录        var loginTag = $(‘#login-tag‘).attr(‘login-status‘);        if(!loginTag){            window.location = ‘/signin/‘;        }else{            var content = window.ue.getContent();            var post_id = $(‘#post-content‘).attr(‘data-id‘);            ajax.post({               ‘url‘: ‘/acomment/‘,               ‘data‘: {                   ‘content‘: content,                   ‘post_id‘: post_id               },               ‘success‘: function (data) {                   if(data[‘code‘]==200){                       window.location.reload();                   }else{                       xtalert.alertInfo(data[‘message‘]);                   }               }            });        }    });

});

效果

美化评论列表

html

<div class="comment-group">    <h3>评论列表</h3>    <ul class="comment-list-group">        {% for comment in post.comments %}            <li>                <div class="avatar-group">                    <img src="{{ comment.author.avatar or static(‘common/images/logo.png‘) }}" >                </div>                <div class="comment-content">                    <p class="author-info">                        <span>{{ comment.author.username }}</span>                        <span>{{ comment.create_time }}</span>                    </p>                    <p class="comment-text">                        {{ comment.content|safe }}                    </p>                </div>            </li>        {% endfor %}    </ul></div>

css

/* 评论列表概要 */.comment-list-group li{    overflow: hidden;    padding: 10px;    border-bottom: 1px solid #e8e8e8;}.avatar-group{    float: left;}.avatar-group img{    width: 50px;    height: 50px;    border-radius: 50%;}.comment-content{    float: left;    margin-left: 10px;}.comment-content .author-info{    font-size: 12px;    color: #8c8c8c;}.author-info span{    margin-right: 10px;}.comment-content .comment-text{    margin-top: 10px;}

效果

原文地址:https://www.cnblogs.com/zhongyehai/p/11985606.html

时间: 2024-10-10 00:10:01

一百四十四:CMS系统之评论布局和功能二的相关文章

一起talk C栗子吧(第一百四十四回:C语言实例--文件操作大结局)

各位看官们,大家好,上一回中咱们说的是基于文件指针进行文件操作的例子,这一回咱们说的是文件操作大结局.闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,我们在前面章回中介绍了文件操作的两种途径:文件描述符和文件指针.今天我们将对这两种文件操作途径进行总结和对比. 我们先看看它们的共同点: 1.口味相同:都喜欢吃文件(都能用来操作文件): 2.生活方式相同:日出而作,日落而息(使用它们时都是按照文件操作三步曲进行:打开,操作,关闭): 3.都不省心:使用时容易引起错误,需要检查使用后的结

小刘同学的第一百四十四篇博文

今天终于能更新博文了--(确实有些不应该,5月份到现在就没认认真真写过几行代码) 今天算是正式在学Vue.js了,前期想必大家也能看得出来,我为那个即时通讯系统写的代码注释,基本上都是自己在胡乱猜测的,很随意很随性的在写注释(可能都完全不正确-) 今天简单的抄写了两个官网上的例子,花了半个小时左右的时间,白天主要还是在写答辩的PPT,找模板找了很久,好不容易找到一个合适的也觉得吃藕吃藕地. -------------正文分割线-------------- 首先命令行,检测一下安装了Vue没有 已

萌新的Linux的学习之路(十四)--系统虚拟机管理

一.安装 #!/bin/bash       ##命令运行环境的指定 virt-install \      ##安装虚拟机 --name $1 \        ##虚拟机名称指定,$1表示脚本后的第一串字符 --ram 1024 \       ##内存 --file /var/lib/libvirt/images/$1.qcow2 \     ##硬盘文件 --file-size 8 \                      ##硬盘文件大小 ==cdrom /iso/rhel-ser

第四百四十四、五天 how can I 坚持

貌似昨天写的东西没保存上啊,好可悲. 昨天写的啥来,学了下过滤器,还有下班吃烤串. 今天下班学了下监听器,然后就偷懒了,ls.yj让给买阿胶,现在阿胶好贵啊. 心里空拉拉的,hx竟然没有给该备注,也是醉了. 一会看看看草稿箱有我昨天写的东西吗,好失落,明天他们要来我这炖鱼,一块玩玩也挺好. 睡觉.

第二百四十四、五天 how can I 坚持

昨天忘了.不知咋忘的,加班加迷糊了? 昨天联调接口,又加班了,好歹基本调通了. 今天,下午,开会,有点被领导批的意思,不是批我,是批我们团队. 团队. 不懂自己. 这样做有意义嘛. 睡觉.好烦. 到底应该记点啥.乱七八糟的,明天还得改接口. 睡觉了,打电话都不接.

测开之路一百四十四:ORM之SQLAlchemy查询

在上一篇的基础上,插入数据 查询 Department.query.all() # 用表对象查db.session.query(Department).all() # 用db对象查 查询前两条,直接python截取前两条数据 排序 默认升序:order_by(排序的字段名) 倒序:从sqlalchemy导入desc 查询单个指定字段 查询多个指定字段 只用一个变量接收多个查询结果的时候,SQLAlchemy默认用namedtuple进行命名处理 namedtuple结构: 别名:label(别名

salesforce 零基础学习(四十四)实现checkbox列表简单过滤功能

现在做的项目代码是原来其他公司做的,要在原来基础上业务进行适当调整加上一些CR,其中有一个需要调整的需求如下: 原来使用apex:selectCheckboxes封装了一个checkbox列表,因为数据太多导致显示起来比较丑,用户希望改进一下UI. apex:selectCheckboxes作用原理为解析成html以后变成table标签, 大概层级结构可以分成<table><tbody><tr><td><input type="checkbo

一起talk C栗子吧(第一百四十八回:C语言实例--socket通信二)

各位看官们,大家好,上一回中咱们说的是socket通信的例子,这一回咱们继续说该例子.闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,我们在上一回中介绍了套接字的通信步骤,限于时间的原因, 我们只介绍了流套接字的通信步骤.这一回中我们将介绍数据报套接字的通信步骤. 下面是客户端和服务器端实现通信的详细步骤: 客户端实现通信的步骤: 1.创建客户端套接字(socket): 2.设置客户端套接字的属性:域,类型和协议: 3.通过操作客户端套接字来实现客户端与服务器的通信(sendto,r

python第十四课--排序及自定义函数之案例二:冒泡排序

案例二:冒泡排序 lt1=[45,12,56,-32,-3,44,75,-22,100] print('排序前:'+str(lt1)) 自定义函数:实现冒泡排序(升序)原则:1).有没有形参?有,接受一个列表对象 2).有没有返回值?没有,排完就排完 def bubbleSort(lt): length=len(lt) for i in range(length-1): for j in range(length-1-i): if lt[j]>lt[j+1]: lt[j],lt[j+1]=lt[