改造emlog支持emoji表情符
Emlog6.0.1是不支持emoji???表情符,需要改造数据库将字符集设置为 utf8mb4 ,网上找了下教程。
使用方法:这是一个为 Emlog 提供 emoji 表情支持的升级补丁,创建PHP文件将其放置在 Emlog 根目录下执行一次,注意 MySQL 版本不低于 5.5 。
使用方法:这是一个为 Emlog 提供 emoji 表情支持的升级补丁,创建PHP文件将其放置在 Emlog 根目录下执行一次,注意 MySQL 版本不低于 5.5 。
<?php
/**
* Emlog emoji表情支持 升级补丁
*
* 将此文件放到Emlog根目录下执行一次即可
* 需要MySQL版本 >= 5.5
*
*/
require 'config.php';
define('DS', DIRECTORY_SEPARATOR);
$db = new mysqli(DB_HOST, DB_USER, DB_PASSWD, DB_NAME);
$db->set_charset('utf8');
$sql = "SELECT VERSION()";
$query = $db->query($sql)->fetch_array(MYSQLI_NUM);
$version = $query[0];
if (version_compare($version, '5.5.0') < 0) {
echo "Need mysql >= 5.5.0";
exit();
}
$column_list = array(
'blog' => array(
array('title', 'varchar(255)'),
array('content', 'longtext'),
array('excerpt', 'longtext')
),
'comment' => array(
array('poster', 'varchar(20)'),
array('comment', 'text')
),
'twitter' => array(
array('content', 'text')
),
'reply' => array(
array('name', 'varchar(20)'),
array('content', 'text')
),
/* 如果使用 YXMarkDown插件可去除注释
'yxmd' => array(
array('content','text')
)
*/
);
foreach ($column_list as $key => $value) {
$table_name = DB_PREFIX . $key;
foreach ($value as $column) {
$sql = "ALTER TABLE `{$table_name}` MODIFY `{$column[0]}` {$column[1]} CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci";
$db->query($sql);
echo "Update {$table_name} -> {$column[0]}<br />\r\n";
}
}
$mysql_lib = dirname(__FILE__) . DS . 'include' . DS . 'lib' . DS. 'mysql.php';
$mysql_content = file_get_contents($mysql_lib);
$mysql_content = str_replace("SET NAMES 'utf8'", "SET NAMES 'utf8mb4'", $mysql_content);
file_put_contents($mysql_lib, $mysql_content);
echo "Update mysql lib<br />\r\n";
$mysqli_lib = dirname(__FILE__) . DS . 'include' . DS . 'lib' . DS. 'mysqlii.php';
$mysqli_content = file_get_contents($mysqli_lib);
$mysqli_content = str_replace("set_charset('utf8')", "set_charset('utf8mb4')", $mysqli_content);
file_put_contents($mysqli_lib, $mysqli_content);
echo "Update mysqli lib<br />\r\n";
echo "Done";
?>
写了个用于TinyMCE 编辑器的emoji表情符插件:
tinymce.PluginManager.add("emoji", function(editor, url) {
// 定义一个包含emoji的数组
var emojis = [
"?", "?", "?", "?", "?", "?", "?", "?", "?", "?",
"?", "?", "?", "?", "?", "?", "?", "?", "?", "?",
"?", "?", "?", "?", "?", "?", "?", "?", "?", "?",
"?", "?", "?", "?", "?", "?", "?", "?", "?", "?",
"?", "?", "?", "?", "?", "?", "?", "?", "?", "?",
"?", "?", "?", "?", "?", "?", "?", "?", "?", "?",
"?", "?", "?", "?", "?", "?", "?", "?", "✊", "?",
"?", "?", "✌️", "?", "?", "?", "?", "?", "?", "☝️",
"✋", "?", "?", "?", "?", "?", "?", "?", "✍️", "?"
];
// 表情符号表格生成函数
function generateEmojiTable() {
var html = '<table role="list" class="mce-grid">';
var rowCount = Math.ceil(emojis.length / 8); // 每行8个emoji
var emojiTooltips = [
"嘿嘿", "哈哈", "大笑", "嘻嘻", "斜眼笑", "苦笑", "笑哭了", "笑得满地打滚",
"羞涩微笑", "微笑天使", "呵呵", "倒脸", "眨眼", "松了口气", "花痴", "飞吻",
"亲亲", "微笑亲亲", "羞涩亲亲", "好吃", "吐舌", "眯眼吐舌", "单眼吐舌", "书呆子脸",
"墨镜笑脸", "得意", "不高兴", "失望", "沉思", "担心", "困扰", "微微不满",
"痛苦", "困惑", "累", "累死了", "哭", "放声大哭", "傲慢", "生气",
"怒火中烧", "红脸", "吓死了", "害怕", "抱抱", "想一想", "沉默", "无语",
"龇牙咧嘴", "翻白眼", "缄默", "睡着了", "感冒", "发财", "恶魔微笑", "小丑脸",
"大便", "鬼", "头骨", "双眼", "脚印", "双手张开", "举双手", "鼓掌",
"握手", "拇指向上", "拇指向下", "出拳", "举起拳头", "朝左的拳头", "朝右的拳头", "交叉的手指",
"胜利手势", "摇滚", "OK", "反手食指向左指", "反手食指向右指", "反手食指向上指", "反手食指向下指", "食指向上指",
"举起手", "立起的手背", "手掌", "瓦肯举手礼", "挥手", "给我打电话", "肌肉", "竖中指",
"写字", "双手合十",
];
for (var i = 0; i < rowCount; i++) {
html += '<tr>';
for (var j = 0; j < 8 && i * 8 + j < emojis.length; j++) {
var emoji = emojis[i * 8 + j];
var tooltip = emojiTooltips[i * 8 + j] || ''; // 使用相应的提示文本,如果没有则默认为空字符串
html += '<td class="emoji-cell"><a href="#" data-mce-content="' + emoji + '" tabindex="-1" role="option" aria-label="' + emoji + '" title="' + (emojiTooltips[i * 8 + j] || emoji) + '" style="font-size: 20px; display:inline-block; text-align:center; vertical-align:middle;">' + emoji + '</a></td>';
}
html += '</tr>';
}
html += '</table>';
return html;
}
// 添加按钮
editor.addButton('emoji', {
image: url + '/emoji.svg',
type: 'panelbutton',
panel: {
role: 'application',
autohide: true,
html: generateEmojiTable(),
onclick: function(e) {
var target = editor.dom.getParent(e.target, 'a');
if (target) {
editor.insertContent(target.getAttribute('data-mce-content'));
this.hide();
}
}
},
tooltip: 'emoji'
});
// css式
var style = document.createElement('style');
style.type = 'text/css';
style.innerHTML = '.mce-container .emoji-cell a:hover {text-decoration: none; background-color: #f0f0f0;}';
document.head.appendChild(style);
});
版权声明:本文为转载文章,源自互联网,由本站整理编辑。
原文地址:正文到此结束
发表吐槽
你肿么看?
既然没有吐槽,那就赶紧抢沙发吧!