From e861f6e9a6f171de8d6b786ef206f95f0e273250 Mon Sep 17 00:00:00 2001 From: Seaton Jiang Date: Sun, 21 Jun 2020 11:47:31 +0800 Subject: [PATCH] feat: add new shortcode (#179) --- assets/js/buttons/images/reply.png | Bin 0 -> 7112 bytes assets/js/buttons/more.js | 16 +++++++++++ inc/theme-shortcode.php | 42 ++++++++++++++++++++++++++++- languages/kratos.pot | 6 ++++- 4 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 assets/js/buttons/images/reply.png diff --git a/assets/js/buttons/images/reply.png b/assets/js/buttons/images/reply.png new file mode 100644 index 0000000000000000000000000000000000000000..392c44a7b7a750797d6b74e94c2dd5b35306eed7 GIT binary patch literal 7112 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 literal 0 HcmV?d00001 diff --git a/assets/js/buttons/more.js b/assets/js/buttons/more.js index 930e973..9502af5 100644 --- a/assets/js/buttons/more.js +++ b/assets/js/buttons/more.js @@ -207,6 +207,22 @@ }) tinymce.PluginManager.add('bdbtn', tinymce.plugins.bdbtn) + tinymce.create('tinymce.plugins.reply', { + init: function (ed, url) { + ed.addButton('reply', { + title: '回复可见', + image: url + '/images/reply.png', + onclick: function () { + ed.selection.setContent('[reply]' + ed.selection.getContent() + '[/reply]') + } + }) + }, + createControl: function (n, cm) { + return null + }, + }) + tinymce.PluginManager.add('reply', tinymce.plugins.reply) + tinymce.create('tinymce.plugins.music', { init: function (ed, url) { ed.addButton('music', { diff --git a/inc/theme-shortcode.php b/inc/theme-shortcode.php index 19298b2..d35a860 100644 --- a/inc/theme-shortcode.php +++ b/inc/theme-shortcode.php @@ -3,7 +3,7 @@ * 文章短代码 * @author Seaton Jiang * @license MIT License - * @version 2020.04.12 + * @version 2020.06.21 */ function h2title($atts, $content = null, $code = "") @@ -178,6 +178,44 @@ function bilibili($atts, $content = null, $code = "") } add_shortcode('bilibili', 'bilibili'); +function reply($atts, $content = null) +{ + extract(shortcode_atts(array("notice" => ''), $atts)); + $userEmail = null; + $user_ID = (int) wp_get_current_user()->ID; + if ($user_ID > 0) { + $userEmail = get_userdata($user_ID)->user_email; + $adminUsers = get_users('role=Administrator'); + $adminEmails = array(); + foreach ($adminUsers as $user) { + $adminEmails[] = $user->user_email; + } + $authorEmail = get_the_author_meta('user_email'); + array_push($adminEmails, $authorEmail); + if (in_array($userEmail, $adminEmails)) { + return $content; + } + } else { + if (isset($_COOKIE['comment_author_email_' . COOKIEHASH])) { + $userEmail = str_replace('%40', '@', $_COOKIE['comment_author_email_' . COOKIEHASH]); + } else { + return $notice; + } + } + if (empty($userEmail)) { + return $notice; + } + global $wpdb; + $post_id = get_the_ID(); + $query = "SELECT `comment_ID` FROM {$wpdb->comments} WHERE `comment_post_ID`={$post_id} and `comment_approved`='1' and `comment_author_email`='{$userEmail}' LIMIT 1"; + if ($wpdb->get_results($query)) { + return do_shortcode($content); + } else { + return $notice; + } +} +add_shortcode('reply', 'reply'); + add_action('init', 'more_button'); function more_button() { @@ -206,6 +244,7 @@ function register_button($buttons) array_push($buttons, " ", "mark"); array_push($buttons, " ", "striped"); array_push($buttons, " ", "bdbtn"); + array_push($buttons, " ", "reply"); array_push($buttons, " ", "music"); array_push($buttons, " ", "vqq"); array_push($buttons, " ", "youtube"); @@ -228,6 +267,7 @@ function add_plugin($plugin_array) $plugin_array['mark'] = ASSET_PATH . '/assets/js/buttons/more.js'; $plugin_array['striped'] = ASSET_PATH . '/assets/js/buttons/more.js'; $plugin_array['bdbtn'] = ASSET_PATH . '/assets/js/buttons/more.js'; + $plugin_array['reply'] = ASSET_PATH . '/assets/js/buttons/more.js'; $plugin_array['music'] = ASSET_PATH . '/assets/js/buttons/more.js'; $plugin_array['vqq'] = ASSET_PATH . '/assets/js/buttons/more.js'; $plugin_array['youtube'] = ASSET_PATH . '/assets/js/buttons/more.js'; diff --git a/languages/kratos.pot b/languages/kratos.pot index ff85da2..b0f793a 100644 --- a/languages/kratos.pot +++ b/languages/kratos.pot @@ -3,7 +3,7 @@ msgid "" msgstr "" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" "Project-Id-Version: Kratos\n" -"POT-Creation-Date: 2020-06-13 13:30+0800\n" +"POT-Creation-Date: 2020-06-21 11:42+0800\n" "PO-Revision-Date: 2020-02-14 23:32+0800\n" "Last-Translator: \n" "Language-Team: \n" @@ -837,6 +837,10 @@ msgstr "" msgid "标题内容" msgstr "" +#: inc/theme-shortcode.php:183 +msgid "温馨提示:此处内容已隐藏,回复后刷新页面即可查看!" +msgstr "" + #: inc/theme-smtp.php:38 msgid "[通知]您的留言已经通过审核" msgstr ""