The Trap of Web Design

NP_Moblog いろいろ改造

NP_Moblog の送信者名日本語対応だとか、 iPhone 画像ファイル名対応だとか、顔文字(記号)打ったらそれ以降消えちゃうやつだとか…。


送信者名に日本語がはいってると、投稿されない

function _addr_search($str) に、

$str = strstr($str,'<')?strstr($str,'<'):$str;

を追加。

iPhone の添付画像が掲載できない

ファイル名が「写真.JPG」なため、なにやら通常の処理じゃ取得できない。iPhone の設定 / 一般 / 言語環境 / 言語が English だと iphone.jpg で、これだとそのままで問題なし、だけど…。

function _imagePart(&$part) の、

$filename = "";
if( $part->d_parameters ){
	$filename = $part->d_parameters['filename'];
} elseif( $part->ctype_parameters ){
	$filename = $part->ctype_parameters['name'];
} else {
	$filename = $part->ctype_secondary;
}

を、

$filename = "";
if( $part->d_parameters ){
	$filename = $part->d_parameters['filename'];
	if (!$filename) {
		//$filename = $part->d_parameters['filename*'];
		$filename = 'iphone.jpg';
	}
} elseif( $part->ctype_parameters ){
	$filename = $part->ctype_parameters['name'];
} else {
	$filename = $part->ctype_secondary;
}

$filename = $part->d_parameters['filename'] はなくて、$filename = $part->d_parameters['filename*'] にファイル名ははいってるんだけど、ソレをただ取り出しても、エンコードかかった文字列で、そのままじゃ結局問題がある。なので、iPhone を英語仕様で利用した時のファイル名 iphone.jpg に、決め打ちしちゃう。常に同じファイル名になってしまうのを避けるために、Nucleus のグローバル設定で「アップロードするファイル名の頭に日付を付加する」をオンにしておく。

本文に顔文字(つまり記号)を打たれると、本文が切れて、そこ以降がなくなる

(>o<)…とか、打てないのですよ。HTML で使っちゃいけない文字だから、というのはシロウトにゃ通用しないんです。

function _textPart(&$part) の、

$text = $this->_convert($part->body, $encoding);
$text = strip_tags($text, $this->no_strip_tags);

を、

$text = $this->_convert($part->body, $encoding);
//$text = strip_tags($text, $this->no_strip_tags);
$text = preg_replace('@<[\/\!]*?[^<>]*?>@si','',$text);

HTML メール対応は必要な事が無いので「コードは削除して、記号は残す」というふうな処理に(なってると思うんだけど)

htmlspecialchars() の処理については、Nucleus CMS 自体の表示系処理か、その他 event_PreItem でそのへんの処理をしてるプラグインでやるので、メールからアイテムにいれる時に処理する必要はないのです。

iPhone メール投稿で画像添付時に、画像より前のテキストは消えてしまう点は、まだウンウンうなって調査中です。

2010-11-14 00:25 | Nucleus | ichiro | permalink


Comments

コメントはまだありません


Portfolio

Stagemind

▲ 珍しくカバーアニメーションとか