2005-09-18 Sun
引き続きNP_chatのカスタマイズです。といっても僕が今まで行っている改造は、出力する際にちょこっと手を加えるだけですので、他のプラグインでも応用が利くと思います。今回は書き込んでくれた方がメールアドレスや、サイトのURIを入力してくれた場合に、名前ではなく専用のアイコンを表示して、そこにリンクを貼るカスタマイズです。
NP_chatの234行目あたりに
if($myurl==""){
/* no EMAIL or http, so just show userNAME in bold */
echo "<strong>".$msg['NAME']."</strong>(<small class=\"stxt\">".$msg['DATE']."</small>) - ".$msg['MESSAGE']."<br />";
} else {
/* check for email address */
if (strpos($myurl,"@")===false){
/* no @, so assume http */
if (strpos(strtolower($myurl),"http")===false){
$myurl="http://$myurl";
};
} else {
$myurl="mailto:$myurl";
}
echo "<a href=\"$myurl\">".$msg['NAME']."</a>(<small class=\"stxt\">".$msg['DATE']."</small>) - ".$msg['MESSAGE']."<br />";
}
という個所がありますが、ここで入力情報をチェックして、メールアドレスやURIが入力されているなら、名前にリンク情報を付加しています。
まず最初に変数「$myurl」が空どうかチェックしています。空ならそのまま名前を表示しています。そうでない場合は、入力された文字列に「@」があるかないかでメールアドレスかURIを判別しています。で、メールアドレスなら「$myurl」に「mailto:」を付加しています。
ということで、メールアドレスとURIを判別しているif文「if (strpos($myurl,"@")===false){」の以降を以下のように記述しました。
if (strpos($myurl,"@")===false){
$url = $CONF['PluginURL'] . 'fancytext/web/';
$target=' target="_blank"';
$link='<img src="'.$url.'icon_uri.png" alt="ホームページ" title="ホームページ" />';
/* no @, so assume http */
if (strpos(strtolower($myurl),"http")===false){
$myurl="http://$myurl";
} else {
$myurl="mailto:$myurl";
$url = $CONF['PluginURL'] . 'fancytext/web/';
$target='';
$link='<img src="'.$url.'icon_mail.png" alt="メール" title="メール" />';
}
if($msg['UID'] % 2 == 1) { // 2で割り切れない。つまり奇数
echo "\n<div class=\"chatIdOdd\">\n<p class=\"chatAuthor\">".$msg['NAME']."<a href=\"$myurl\"".$target.">".$link."</a></p>\n<p class=\"chatTime\">[".$msg['DATE']."]</p>\n<p class=\"chatText\">".$msg['MESSAGE']."</p>\n</div>\n";
} else {
echo "\n<div class=\"chatIdEven\">\n<p class=\"chatAuthor\">".$msg['NAME']."<a href=\"$myurl\"".$target.">".$link."</a></p>\n<p class=\"chatTime\">[".$msg['DATE']."]</p>\n<p class=\"chatText\">".$msg['MESSAGE']."</p>\n</div>\n";
}
}
「NP_chatの背景色を交互に変化させる」で施した改造部分があるので、そちらも参照していただければより分かりやすいかと思います。
やっていることは、自作のアイコンのURIを登録して、あとは単純にリンクを生成しているだけの小手先カスタマイズです。まあでもこういうささやかな改造でも、思い通り動いてくれればとても嬉しいし、楽しいですよ。コアファイルのカスタマイズは、素人が手を出すと厄介なことになりますが、プラグインなら駄目でも削除すればいいだけなので、勉強にはうってつけですね。
« Old 2005-09-18
NP_chat|スマイリーを追加
2005-10-01 New »
NP_Related|snippet内のタグを除去