/** * 「[c:NNN]」形式の絵文字コードをHTML表示用に変換するアウトプットフィルタ */ function smarty_outputfilter_pne_display_emoji($tpl_output, &$smarty) { $list = array(); if (empty($GLOBALS['__Framework']['carrier'])) { // 置換用に文字列を退避 $patterns = array('/<input[^>]+>/is', '/<textarea.*?<\\/textarea>/is', '/<option.*?<\\/option>/is', '/<img[^>]+>/is', '/<head.*?<\\/head>/is', '/<a\\s[^>]+>/is'); list($list, $tpl_output) = util_replace_patterns_to_marker($tpl_output, $patterns); } // 絵文字変換 $tpl_output = emoji_convert($tpl_output); if (empty($GLOBALS['__Framework']['carrier'])) { // 退避した文字列を元に戻す $tpl_output = str_replace(array_keys($list), array_values($list), $tpl_output); } return $tpl_output; }
function emoji_html_to_unified($text) { return emoji_convert($text, 'html_to_unified'); }
function emoji_unified_to_html($text) { return emoji_convert($text, 'unified_to_html'); }
/** * 絵文字コードを指定キャリアの絵文字もしくは代替文字列に変換する */ function convert_emoji($o_code, $c_carrier = null) { $o_carrier = $o_code[0]; $o_id = substr($o_code, 2); if (is_null($c_carrier) || $o_carrier == $c_carrier) { // キャリアの変更がないか、キャリアが指定されていない場合はそのまま変換処理 $c_code = $o_id; switch ($c_carrier) { case 'i': $converter = OpenPNE_KtaiEmoji_Docomo::getInstance(); break; case 's': $converter = OpenPNE_KtaiEmoji_Softbank::getInstance(); break; case 'e': $converter = OpenPNE_KtaiEmoji_Au::getInstance(); break; default: // PC向けau/SoftBank→DoCoMo絵文字変換 if (OPENPNE_EMOJI_DOCOMO_FOR_PC && $o_carrier !== 'i') { return emoji_convert($this->relation_list[$o_carrier]['i'][$o_id]); } $c_code = $o_code; // 画像出力の際にキャリア情報が必要になるため、絵文字IDではなく絵文字コードを用いる $converter = OpenPNE_KtaiEmoji_Img::getInstance(); break; } return $converter->get_emoji4emoji_code_id($c_code); } else { // キャリアの変更がある場合、ここでの変換処理はおこなわず、対応する文字列に置換した上で再度変換処理 return emoji_convert($this->relation_list[$o_carrier][$c_carrier][$o_id]); } }
function emoji_unified_to_names($text) { return emoji_convert($text, 'names'); }
function emoji_html_stripped($text) { return emoji_convert($text, 'emoji_html_stripped'); }
function emoji_unified_to_key($text) { return emoji_convert($text, 'unified_to_key'); }