前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >一个体验不错的 Typecho 评论框/样式模块整理

一个体验不错的 Typecho 评论框/样式模块整理

作者头像
老蒋
发布于 2021-12-24 06:55:40
发布于 2021-12-24 06:55:40
92301
代码可运行
举报
文章被收录于专栏:老蒋专栏老蒋专栏
运行总次数:1
代码可运行

我们有在用Typecho主题做模板的时候,每次老蒋比较纠结的就是评论框和样式太单一。今天有看到国内的一款Echo免费主题(https://github.com/yunfeilangwu/echo)的评论框和样式不错,于是我将拆分出来,这样如果以后有需要用到的话可以直接用到主题中,当然这些需要感谢Echo主题作者。

我们看看这款主题的评论样式是什么样子的。

感觉确实比默认的样式好看很多。我们看看如何加入到我们的网站上呢?这里我们需要注意的是这款主题是使用的LAYUI前端,所以,我们主题最好也是用这个前端的,要不比较麻烦。老蒋有些时候也喜欢这个前端,比国外的BS前端简单很多。

1、comments.php 页面

这里老蒋不是太喜欢他的头衔功能,所以我把头衔功能去掉:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>

<?php function threadedComments($comments, $options) {
    $commentClass = '';
    if ($comments->authorId) {
        if ($comments->authorId == $comments->ownerId) {
            
            $commentClass .= ' comment-by-author';  //如果是文章作者的评论添加 .comment-by-author 样式
        } else {
            
            $commentClass .= ' comment-by-user';  //如果是评论作者的添加 .comment-by-user 样式
        }
    } 
    $commentLevelClass = $comments->_levels > 0 ? ' comment-child' : ' comment-parent';  //评论层数大于0为子级,否则是父级
?>

<li id="li-<?php $comments->theId(); ?>" class="comment-body<?php 
if ($comments->levels > 0) {
    echo ' comment-child';
    $comments->levelsAlt(' comment-level-odd', ' comment-level-even');
} else {
    echo ' comment-parent';
}
$comments->alt(' comment-odd', ' comment-even');
echo $commentClass;
?>">
    <div id="<?php $comments->theId(); ?>" class="pl-dan comment-txt-box">
        <div class="t-p comment-author">
            <?php $comments->gravatar('40', ''); ?>
        </div>
        <div class="t-u comment-author">
            <strong>
                <?php $comments->author(); ?>
                
            </strong>
            <div><b><?php echo getPermalinkFromCoid($comments->parent); ?></b></div>
            <div class="t-s"><p><?php $comments->content(); ?></p></div>
            <span class="t-btn"><?php $comments->reply(); ?> <span class="t-g"><?php $comments->date('Y-m-d H:i'); ?></span></span> 
        </div><!-- 单条评论者信息及内容 -->
    </div>
    <?php if ($comments->children) { ?>
        <div class="pl-list comment-children">
            <?php $comments->threadedComments($options); ?>
        </div>
    <?php } ?>
</li>

<?php } ?>



<div id="comments">
    <?php $this->comments()->to($comments); ?>
    
    <?php if($this->allow('comment')): ?>
        <div id="<?php $this->respondId(); ?>" class="respond">
            <div class="cancel-comment-reply">
                <?php $comments->cancelReply(); ?>
            </div>
        
            <h4 id="response"><i class="layui-icon">&#xe664;</i> <?php _e('评论啦~'); ?></h4>
            <br/>
            <form method="post" action="<?php $this->commentUrl() ?>" id="comment-form" role="form">
                <?php if($this->user->hasLogin()): ?>
                <div class="layui-form-item">
                    <div class="layui-form-mid layui-word-aux">
                        <?php _e('登录身份: '); ?>
                        <a href="<?php $this->options->profileUrl(); ?>"><?php $this->user->screenName(); ?></a>
                        <a href="<?php $this->options->logoutUrl(); ?>" title="Logout"><?php _e('退出'); ?> &raquo;</a>
                    </div>
                </div>
                <div class="layui-form-item">
                    <textarea rows="5" cols="30" name="text" id="textarea" placeholder="嘿~ 大神,别默默的看了,快来点评一下吧" class="layui-textarea" required></textarea>
                </div>
                <?php else: ?>
                <div class="layui-form-item">
                    <textarea rows="5" cols="30" name="text" id="textarea" placeholder="嘿~ 大神,别默默的看了,快来点评一下吧" class="layui-textarea" required></textarea>
                </div>
                <div class="layui-form-item layui-row layui-col-space5">
                    <div class="layui-col-md4">
                        <input type="text" name="author" id="author" class="layui-input" placeholder="* 怎么称呼" value="<?php $this->remember('author'); ?>" required />
                    </div>
                    <div class="layui-col-md4">
                        <input type="email" name="mail" id="mail" lay-verify="email" class="layui-input" placeholder="<?php if ($this->options->commentsRequireMail): ?>* <?php endif; ?>邮箱(放心~会保密~.~)" value="<?php $this->remember('mail'); ?>" <?php if ($this->options->commentsRequireMail): ?>required<?php endif; ?> />
                    </div>
                    <div class="layui-col-md4">
                        <input type="url" name="url" id="url" lay-verify="url" class="layui-input" placeholder="<?php if ($this->options->commentsRequireURL): ?>* <?php endif; ?><?php _e('http://您的主页'); ?>" value="<?php $this->remember('url'); ?>" <?php if ($this->options->commentsRequireURL): ?>required<?php endif; ?> />
                    </div>
                </div>
                <?php endif; ?>
                <div class="layui-inline">
                    <button type="submit" class="layui-btn layui-btn-normal"><?php _e('提交评论'); ?></button>
                </div>
            </form>
        </div>
        <?php if ($comments->have()): ?>
            <br/>
            <h3><?php $this->commentsNum(_t('暂无评论'), _t('唉呀 ~ 仅有一条评论'), _t('已有 %d 条评论')); ?></h3>
            <br/>
            <div class="pinglun">
                <?php $comments->listComments(); ?>
            </div>
            <div class="page-navigator">
                <?php $comments->pageNav('«', '»', 1, '...', array('wrapTag' => 'div', 'wrapClass' => 'layui-laypage layui-laypage-molv', 'itemTag' => '', 'currentClass' => 'current', )); ?>
            </div>
        <?php endif; ?>
    <?php else: ?>
        <h3><?php _e('评论已关闭'); ?></h3>
    <?php endif; ?>
</div>

2、评论样式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**评论样式*/
.pinglun {
    margin-bottom: 10px
}

.pinglun li {
    margin-bottom: 10px
}

.pinglun .pl-dan {
    border-radius: 4px
}

.pinglun .t-p {
    float: left
}

.pinglun .t-p img {
    width: 50px;
    height: 50px;
    border: 4px solid rgba(210,210,210,0.2);
    border-radius: 200px
}

.pinglun .t-u {
    margin-left: 70px;
    line-height: 22px;
    padding-bottom: 10px;
    margin-bottom: 10px
}

.pinglun .t-u .t-g {
    color: #999;
    font-size: 12px
}

.pinglun .t-u .t-btn a {
    font-size: 12px;
    padding: 2px 5px;
    border-radius: 4px;
    margin-right: 10px;
    border: #e2e2e2 1px solid;
    color: #909090
}

.pinglun .t-u .t-btn a:hover {
    background: #1ab667;
    color: #fff;
    border: #1ab667 1px solid
}

.pinglun .t-s {
    margin-top: 10px;
    margin-bottom: 10px;
    color: #888
}

.pinglun .t-s a {
    float: left;
    margin-right: 10px;
    color: #888
}

.pinglun .t-s p {
    word-break: break-all;
}

.pinglun .cancel-comment-reply {
    background: #f05050;
    padding: 2px 5px;
    border-radius: 4px;
    display: inline-block;
    margin-bottom: 10px
}

.pinglun .cancel-comment-reply a {
    color: #fff
}

.comment-children .pl-dan {
    padding-left: 65px;
}

.comment-children .t-u {
    margin-left: 30px;
    padding-left: 38px;
    border-left: 1px solid #eee;
}

3、分页样式

评论也是有分页的,不要忘记样式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/* 页码 */
.page-navigator {
    padding: 15px;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
    display: inherit
}

.page-navigator a:hover {
    background: #393d49;
    color: #fff
}

.page-navigator .current {
    background: #333742;
    color: #fff
}

这样基本就完事。但是需要注意的,如果我们的前端分类页面的分页也要和这个样式一致,我们要稍微修改我们的分页调用。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="page-navigator">
                <?php $this->pageNav('«', '»', 1, '...', array('wrapTag' => 'div', 'wrapClass' => 'layui-laypage layui-laypage-molv', 'itemTag' => '', 'currentClass' => 'current', )); ?>
            </div>

这样,如果我们有需要使用ECHO主题的评论模块的可以使用到我们的Typecho主题中。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-07-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Headers池技术在Python爬虫反反爬中的应用
在当今互联网环境中,许多网站都部署了反爬虫机制,以防止数据被大规模抓取。常见的反爬手段包括:
小白学大数据
2025/04/29
1210
Safari自动获取 Bing Rewards 积分
找到了一个通过 Chrome 插件Rewards-Search-Automator: Chrome / Edge extension for automatic Bing Search,来实现的,除去其中的 Mobile 不生效,外加搜索完成跳转开发者的网站,别的还好,可以自己下载代码,修改去掉跳转开发者网站的逻辑。
莫空9081
2024/06/18
2070
技术学习:Python(14)|爬虫篇|爬虫requests库
headers接收字典类型的参数作为请求头,请求头部字段作为key,字段对应的值作为value。具体的实验代码如下:
艾特
2023/10/10
3840
技术学习:Python(14)|爬虫篇|爬虫requests库
两个绕过网站反爬机制的方式
在日常爬取网站的时候,我们经常会遇到一个问题,就是很多网站上都部署了反爬虫机制,当服务器检测到一段时间内同一个 IP 持续密集的访问网站,则将其判定为爬虫程序,在一段时间内不允许该 IP 地址访问服务器。
小白学大数据
2023/05/15
1K0
【爬虫软件】小红书搜索神器:一键批量采集笔记,多关键词同时抓取!
为什么有了源码还开发界面软件呢?方便不懂编程代码的小白用户使用,无需安装python,无需改代码,双击打开即用!
马哥python说
2024/01/25
2.4K2
【爬虫软件】小红书搜索神器:一键批量采集笔记,多关键词同时抓取!
随着 Edge 的兴起,是时候自动提交 URL 给 Bing Webmaster Tools 了
不知道大家最近察觉到了没有,微软的 Edge 浏览器越来越主流了,至少明月自己都知道不少博客站长们都已经开始放弃谷歌 Chrome 转投 Edge 了,明月自【我的电脑默认浏览器为新版 Edge 了!】一文开始就是用 Edge 至今已经快三个月了,无论是家里电脑还是工作电脑甚至手机上默认浏览器都是 Edge 了,一个字儿——爽!体验真的是太好了,浏览速度提升很明显,扩展、贴心工具、账号同步等等都是用的超爽!
明月登楼的博客
2022/06/09
1.1K0
随着 Edge 的兴起,是时候自动提交 URL 给 Bing Webmaster Tools 了
Python实战项目1——自动获取小说工具
这里为什么要用get 解释一下: 我们可以打开网页,右键——检查——网络——Ctrl+r刷新 可以发现如图所示:可以看到请求方法是.get方法。
老虎也淘气
2024/01/30
2080
Python实战项目1——自动获取小说工具
【GUI软件】小红书按关键词采集笔记详情,支持多个关键词,含笔记正文、转评赞藏等
开发界面软件的目的:方便不懂编程代码的小白用户使用,无需安装python,无需改代码,双击打开即用!
马哥python说
2024/03/30
5700
【GUI软件】小红书按关键词采集笔记详情,支持多个关键词,含笔记正文、转评赞藏等
用python爬取腾讯招聘网岗位信息保存到表格,并做成简单可视化。(附源码)「建议收藏」
开发环境 Windows 10 python3.6 开发工具 pycharm 库 numpy、matplotlib、time、xlutils.copy、os、xlwt, xlrd, random 开发思路
全栈程序员站长
2022/06/27
1.1K0
用python爬取腾讯招聘网岗位信息保存到表格,并做成简单可视化。(附源码)「建议收藏」
Python爬虫常用的小技巧-伪造随机的User-Agent
不管是做开发还是做过网站的朋友们,应该对于User Agent一点都不陌生,User Agent 中文名为用户代理,简称 UA,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等 通过UA来判断不同的设备或者浏览器是开发者最常用的方式方法,这个也是对于Python反爬的一种策略,但是有盾就有矛啊 写好爬虫的原则只有一条: 就是让你的抓取行为和用户访问网站的真实行为尽量一致 1、伪造UA字符串,每次请求都使用随机生成的UA
沈唁
2018/07/04
1.5K0
用python开发的小红书笔记搜索采集软件
对于自媒体从业者来说,采集小红书热门对标作品的意义在于帮助用户了解当前流行的内容和趋势,可以帮助用户更好地把握市场需求,同时也可以启发用户创作出更具吸引力和创新性的内容。通过观察热门对标作品,用户可以学习到一些成功的案例和经验,从而提高自己的内容质量和影响力,还可以帮助用户更好地定位自己的目标受众和市场定位,有助于提升自己在小红书等平台上的曝光和影响力。
马哥小迷弟132
2024/06/24
3731
用python开发的小红书笔记搜索采集软件
一日一技:Requests被网站识别怎么办?
现在有很多网站,已经能够通过JA3或者其他指纹信息,来识别你的请求是不是Requests发起的。这种情况下,你无论怎么改Headers还是代理,都没有任何意义。
青南
2023/10/22
6460
一日一技:Requests被网站识别怎么办?
UzzzzZ
1、https://blog.csdn.net/nzjdsds/article/details/116102632
UzJu@菜菜狗
2023/10/20
1810
UzzzzZ
爆款小红书笔记采集神器!Python开发,正文一键爬取
小红书是国内集社交、分享、购物于一体的综合性平台,为用户提供了一个交流经验、获取灵感和享受购物乐趣的沟通渠道,同时也是国内流量数一数二的生态网站。很多行业的操盘手需要获取热门笔记、热门作者的作品数据,从而提升自己账号的互动数据和价值。因此,我用python开发了一个爬虫采集软件,可自动按笔记链接抓取笔记的详情数据。
马哥小迷弟132
2024/06/25
1.9K0
爆款小红书笔记采集神器!Python开发,正文一键爬取
(0day)Apache Solr任意文件读取漏洞复现
Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。
Khan安全团队
2021/03/24
9300
(0day)Apache Solr任意文件读取漏洞复现
使用Puppeteer构建博客内容的自动标签生成器
标签是一种用于描述和分类博客内容的元数据,它可以帮助读者快速找到感兴趣的主题,也可以提高博客的搜索引擎优化(SEO)。然而,手动为每篇博客文章添加合适的标签是一件费时费力的工作,有时候也容易遗漏或重复。本文将介绍如何使用Puppeteer这个强大的Node.js库来构建一个博客内容的自动标签生成器,它可以根据博客文章的标题和正文内容,自动提取出最相关的标签,并保存到数据库中。
jackcode
2023/09/05
3230
使用Puppeteer构建博客内容的自动标签生成器
Chrome 无魔法使用新必应(New Bing)聊天机器人
做技术研究或科研论文时,经常需要国外一手的。谷歌没办法直接访问,这时“必应”就成了不二之选。而且,现在必应有了 ChatGPT AI 的加持,一下子就成为了“香饽饽”。
kcodez
2023/03/08
12.8K0
Chrome 无魔法使用新必应(New Bing)聊天机器人
爆了!用Python开发的小红书笔记搜索采集神器,含笔记正文、转评赞藏等
在当今自媒体时代,内容为王。小红书作为一个热门的社交媒体平台,拥有大量的优质内容。然而,如何高效、快速地获取这些内容,成为了许多自媒体人、数据分析师和市场营销人员面临的挑战。现在,有了这款2024版Python爬虫软件,你可以轻松实现小红书笔记的批量采集,包括正文内容,让你的工作事半功倍!
马哥小迷弟132
2024/06/25
8602
爆了!用Python开发的小红书笔记搜索采集神器,含笔记正文、转评赞藏等
爬虫系列-User-Agent(用户代理)是什么以及如何构建User-Agnet代理池
网络爬虫又称网络蜘蛛、网络机器人,它是一种按照一定的规则自动浏览、检索网页信息的程序或者脚本。网络爬虫能够自动请求网页,并将所需要的数据抓取下来。通过对抓取的数据进行处理,从而提取出有价值的信息。
用户10002156
2023/08/07
3.7K0
爬虫系列-User-Agent(用户代理)是什么以及如何构建User-Agnet代理池
ActiveMQ任意文件写入漏洞_CVE-2016-3088
1、https://blog.csdn.net/nzjdsds/article/details/116102632
UzJu@菜菜狗
2022/04/25
4060
ActiveMQ任意文件写入漏洞_CVE-2016-3088
推荐阅读
相关推荐
Headers池技术在Python爬虫反反爬中的应用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验