Compare commits
2 Commits
58b2e80883
...
c313e29d99
Author | SHA1 | Date |
---|---|---|
|
c313e29d99 | |
|
33bc5d53f5 |
|
@ -32,4 +32,10 @@
|
|||
- 增加系统显示设置
|
||||
- 增加浏览器信息显示设置
|
||||
- 修复pjax模式下的404跳转
|
||||
|
||||
|
||||
---
|
||||
|
||||
### 2024-07-07 表情短代码解析集成
|
||||
- 1.1.5
|
||||
|
||||
- 将表情短代码(如 :smile:)自动解析为图片表情,集成到主题评论内容输出中。
|
|
@ -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(() => {
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
?>
|
Loading…
Reference in New Issue