Compare commits

...

2 Commits

Author SHA1 Message Date
浪子 c313e29d99 1.1.6 2025-07-07 19:39:19 +08:00
浪子 33bc5d53f5 1.1.5 2025-07-07 17:30:50 +08:00
5 changed files with 82 additions and 17 deletions

View File

@ -32,4 +32,10 @@
- 增加系统显示设置
- 增加浏览器信息显示设置
- 修复pjax模式下的404跳转
---
### 2024-07-07 表情短代码解析集成
- 1.1.5
- 将表情短代码(如 :smile:)自动解析为图片表情,集成到主题评论内容输出中。

View File

@ -74,9 +74,6 @@ class Puock {
this.registerModeChangeEvent()
this.eventCommentPageChangeEvent()
this.eventCommentPreSubmit()
this.eventSmiley()
this.eventOpenCommentBox()
this.eventCloseCommentBox()
this.eventSendPostLike()
this.eventPostMainBoxResize()
this.swiperOnceEvent()
@ -84,6 +81,8 @@ class Puock {
this.detectDevice()
window.addEventListener('resize', ()=>this.detectDevice());
layer.config({shade: 0.5})
// 新增:首次加载时初始化评论相关事件
this.initCommentEvents();
}
pageInit() {
@ -465,6 +464,8 @@ class Puock {
// $('#post-main, #sidebar').theiaStickySidebar({
// additionalMarginTop: 20
// });
// 新增pjax切换后重新初始化评论相关事件
this.initCommentEvents();
}
@ -879,33 +880,37 @@ class Puock {
}
eventOpenCommentBox() {
$(document).on("click", "[id^=comment-reply-]", (e) => {
this.data.comment.replyId = $(this.ct(e)).attr("data-id");
$(document).off("click", ".comment-reply");
$(document).on("click", ".comment-reply", (e) => {
e.preventDefault();
this.data.comment.replyId = $(this.ct(e)).attr("data-coid");
if ($.trim(this.data.comment.replyId) === '') {
this.toast('结构有误', TYPE_DANGER);
return;
}
const cf = $("#comment-form"),
cb = $("#comment-box-" + this.data.comment.replyId);
cf.addClass("box-sw");
cb.removeClass("d-none").append(cf);
commentLi = $(this.ct(e)).closest('.post-comment');
commentLi.append(cf);
$("#comment-cancel").removeClass("d-none");
$("#comment").val("");
$("#comment_parent").val(this.data.comment.replyId);
})
// 滚动至表单
if (cf.length && cf[0].scrollIntoView) {
cf[0].scrollIntoView({behavior: "smooth", block: "center"});
}
});
}
eventCloseCommentBox() {
$(document).off("click", "#comment-cancel");
$(document).on("click", "#comment-cancel", () => {
const cf = $("#comment-form"),
cb = $("#comment-box-" + this.data.comment.replyId);
cb = $(".post-comment .box-sw").parent();
cf.removeClass("box-sw");
cb.addClass("d-none");
$("#comment-form-box").append(cf);
$("#comment-cancel").addClass("d-none");
this.data.comment.replyId = null;
})
});
}
eventSendPostLike() {
@ -949,11 +954,12 @@ class Puock {
}
eventSmiley() {
$(document).off('click', '.smiley-img');
$(document).on('click', '.smiley-img', (e) => {
const comment = $("#comment");
comment.val(comment.val() + ' ' + $(this.ct(e)).attr("data-id") + ' ');
layer.closeAll();
})
});
}
startLoading() {
@ -1171,6 +1177,12 @@ class Puock {
return t;
}
// 新增:统一初始化评论相关事件
initCommentEvents() {
this.eventOpenCommentBox();
this.eventCloseCommentBox();
this.eventSmiley();
}
}
jQuery(() => {

View File

@ -178,7 +178,7 @@
</div>
<div class="content">
<div class="content-text t-md mt10 puock-text">
<?php if ($comments->parent) {echo getPermalinkFromCoid($comments->parent);} $comments->content();?>
<?php if ($comments->parent) {echo getPermalinkFromCoid($comments->parent);} echo parse_smiley_shortcode($comments->content);?>
<div class="comment-os c-sub">
<?php
$deviceInfo = getBrowsersInfo($comments->agent);

View File

@ -918,4 +918,51 @@ class AttachmentHelper {
<?php
}
}
/**
* 解析表情短代码为图片
* @param string $content
* @return string
*/
function parse_smiley_shortcode($content) {
$smileys = [
':?:' => 'doubt.png',
':razz:' => 'razz.png',
':sad:' => 'sad.png',
':evil:' => 'evil.png',
':naughty:' => 'naughty.png',
':!:' => 'scare.png',
':smile:' => 'smile.png',
':oops:' => 'oops.png',
':neutral:' => 'neutral.png',
':cry:' => 'cry.png',
':mrgreen:' => 'mrgreen.png',
':grin:' => 'grin.png',
':eek:' => 'eek.png',
':shock:' => 'shock.png',
':???:' => 'bz.png',
':cool:' => 'cool.png',
':lol:' => 'lol.png',
':mad:' => 'mad.png',
':twisted:' => 'twisted.png',
':roll:' => 'roll.png',
':wink:' => 'wink.png',
':idea:' => 'idea.png',
':despise:' => 'despise.png',
':celebrate:' => 'celebrate.png',
':watermelon:' => 'watermelon.png',
':xmas:' => 'xmas.png',
':warn:' => 'warn.png',
':rainbow:' => 'rainbow.png',
':loveyou:' => 'loveyou.png',
':love:' => 'love.png',
':beer:' => 'beer.png',
];
$themeUrl = Helper::options()->themeUrl . '/assets/img/smiley/';
foreach ($smileys as $code => $img) {
$imgTag = '<img class="smiley-img" src="' . $themeUrl . $img . '" alt="' . $code . '" title="表情" style="width:24px;height:24px;vertical-align:middle;" />';
$content = str_replace($code, $imgTag, $content);
}
return $content;
}
?>

View File

@ -4,7 +4,7 @@
*
* @package Typecho Pouck Theme
* @author 老孙博客
* @version 1.1.4
* @version 1.1.6
* @link http://www.imsun.org
*/