そんなわけで、早速プラグインの改造を施し、携帯に対応させました。
先日うpした音源も聞けるようになってますんで、どうぞ。
思いのほか簡単だったんだけど、正規表現が難しい‥全然分からん。

性器表現なら簡単なのに。

あ、他にもいろいろ弄繰り回してて、またdocomo以外の携帯から閲覧できなくなってましたヽ(;´Д`)ノ
すみません‥。
気付くの遅れてさっきなおしました。

つーわけで、一応ソースうpします。

まず、Audio Playerっていうプラグイン使ってる場合は携帯表示だったときに<a href=”URL”>ファイル名</a>になるように分岐コードを追加。
の前に、485行目当たりに携帯判別用の関数をファンクションしときましょう。


			// 携帯識別 by まきまき
			if (! function_exists('is_mobile')) :
			function is_mobile() {
				$mk_mobile_agents = array(
					'DoCoMo/', 'J-PHONE/', 'J-EMULATOR/', 'Vodafone/',
					'MOT-', 'MOTEMULATOR-', 'SoftBank/', 'emulator/',
					'DDIPOCKET;', 'WILLCOM;', 'emobile/', 'KDDI-', 'UP.Browser/',
					'Nokia', 'Opera Mini', 'Windows CE;',
					'(PSP (PlayStation Portable);', 'Nitro) Opera'
				);
				$ua = $_SERVER['HTTP_USER_AGENT'];

				foreach ($mk_mobile_agents as $a) {
					if (strpos($ua, $a) !== false) {
						return true;
						break;
					}
				}
				return false;
			}
			endif;
			// end by まきまき

この関数、Mobile Eye+とWP Super CacheとAudio Playerで使うようにしました。
携帯判別の必要がある部分は、全部同じ関数を使ってやると効率いいかと。
どのタイミングでファンクションされるかしらんから、! function_exists(‘is_mobile’))でファンクションされてるかどうか調べる。
つってもこの関数、元はゆりこさんのKtai StyleのCacheプラグイン用のパッチからパクった物なんだけど(^ω^)すみません(;^ω^)

で、534行目のis_feedとelseの間にelseifでis_mobileの条件を追加してやると。


			} elseif (is_mobile()) { // 携帯の場合はファイル名を表示しURLにリンク by まきまき
				$files = explode(",", $source);
				$links = "";
				for ($i = 0; $i < count($files); $i++) {
					$fileparts = explode("/", $files[$i]);
					$fileName = $fileparts[count($fileparts)-1];
					$links .= '<a href="' . $files[$i] . '">' . $fileName . '</a><br />';
				}
				return $links;

この部分はis_feedの条件の時に似たような部分があったからそのままパクった 笑
で、このプラグイン使ってるひとなら$linksを’<a href=”‘ . ‘http://mp3.3gp.fm/q/Link.aspx?u=’ . $files[$i] . ‘”>’ . $fileName . ‘</a><br />’;にしてやればOKこれだけでもOK。

でもこのプラグイン使って無い人とか、携帯表示の時mp3ファイルへのリンクを全部変換したい場合は、Mobile Eye+のフィルター部分をいじってやればOK。たぶんKtai Styleでもおんなじ要領かと。
// URLGATEを使用しない
っていうコメントがあるところの直前に


	// 拡張子が*.mp3の場合、URLGATEがON/OFFに関わらず3gp.fmで変換
	if (preg_match("/^(?>.*)(?<=.mp3)/i", $url)) {
		return 'http://mp3.3gp.fm/q/Link.aspx?u=' . rawurlencode($url);
	}

を挿入。
これが結構悩んだ。
どのタイミングで飛ばしてやればどういう条件でもうまく動作するか。
それ以前に、正規表現の記法が分からないから(;^ω^)でもちょっとだけ分かったお(^ω^)
正規表現ので躓いて、頭混乱して小一時間作業がストップした 笑
正規表現はプログラミングをする上でかなり使う頻度の高い技法だけに、ちゃんと勉強しておかなければー。

// URLGATEを使用しない
より以前に↑のコードを書くことで、URLGATEがONでもOFFでもMP3ファイルへのリンクは変換されます。
携帯端末でMP3が必要になることは無いだろうってことで、あえて間にページを挟まずに直接変換ページに飛ぶようにしました。
で、更に、こうすることで変換ページへのリンクにURLが変換されたものが更にURLGATEのページに変換されるのを防いです。変換って言葉が多すぎて、もはや意味不明orz

とりあえず、こんな感じで。
俺みたいに音楽やってて音源とかアップする人にはかなり重宝するかと。
ちょうどいい具合のサービスを提供してくれてる、3gp.fmにも感謝です。
ゆりこさん、Ktai Styleの次期バージョンにも改良して標準で搭載するのはどうでしょうか?笑


追記:
あ、ちなみに、対応するのは
「何処も」(docomo), 「ぁぅ」(au), 柔らか銀行略して「柔銀」(SoftBank)
の3大キャリアだけになります(;^ω^)
他のキャリアについてはどうしようもないです。
この3キャリアだけ判別してURL置換してもいいんだけど、その分動作も重くなるし、まぁいっかって感じです。

No related posts.