/**
 * 「[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;
}
Ejemplo n.º 2
0
function emoji_html_to_unified($text)
{
    return emoji_convert($text, 'html_to_unified');
}
Ejemplo n.º 3
0
function emoji_unified_to_html($text)
{
    return emoji_convert($text, 'unified_to_html');
}
Ejemplo n.º 4
0
 /**
  * 絵文字コードを指定キャリアの絵文字もしくは代替文字列に変換する
  */
 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]);
     }
 }
Ejemplo n.º 5
0
function emoji_unified_to_names($text)
{
    return emoji_convert($text, 'names');
}
Ejemplo n.º 6
0
function emoji_html_stripped($text)
{
    return emoji_convert($text, 'emoji_html_stripped');
}
Ejemplo n.º 7
0
function emoji_unified_to_key($text)
{
    return emoji_convert($text, 'unified_to_key');
}