携帯電話での電話番号タグに対応する方法

電話番号タグとは

 <a href="tel:XXX-XXXX-XXXX">YYYYY</a>

という形式で使います。このタグ自体は携帯電話でブラウズする場合しか使えません。

最近Geeklogを使っていますがパッチを作成したのでここに公開。

geeklog/system/custom_cellular.php 410行目

// ページ内のURIにセッションIDを付加するためのコールバック関数
function _mobile_session_callback($matches) {
	global $_CONF;
	$pat = $_CONF['site_url'];
	$ret = $matches[1].$matches[2];

    // forumのバグ? cf: forum/createtopic.php line 342 & forum/viewtopic.php line 100.
    $ret = preg_replace('!true#\d+!', 'true', $ret);

	if(preg_match("!https*?:\/\/!", $ret)) {
		// 絶対アドレス
		if(!preg_match("!$pat!", $ret)) {
			// 外部サイトだったらそのまま返す
			return $ret . '"';
		} else {
            ; // 自サイト
		}
	} else {
		if(preg_match("!tel:!", $ret)) {
			// 電話番号タグもそのまま返す
			return $ret . '"';
		}
		; // 相対アドレス
	}
	// URLクエリのセパレータ
	$sep = strpos($ret, '?')?'&amp;':'?';
	// SIDを追加する
	$ret = $ret . $sep . htmlspecialchars(SID) . '"';
	return $ret;
}

追加したのは、tel:のあたりです。
http(s)以外のプロトコルはセッションIDを付加しないようにした方がいいのかもしれませんが、携帯から使うことはなさそうなので電話タグのみ修正。