Firefox でインストールする為の xpi ファイルを作成する :Firefox 拡張機能 (Extensions) の作成方法(8)

拡張子が xpi のファイルが、Firefox 用のインストールファイルですが、
作成するのは簡単で、以下の構成を zip ファイルとして作成して拡張子を xpi に変更するだけです。
( 私は 7-Zip で作成しました )
※ _PH.mkp は MKEditor 用のプロジェクトなので必要ありません



こうしてできたファイルを pagehack_sample.xpi とします。
ただ、このまま FTP でアツプロードしただけでは、Firefox は インストールしてくれませんので
注意が必要です

Firefox_ex_5

ダウンロードしたファイルの拡張子が xpi であれば、
Firefox にドラッグ・ドロップするとインストール可能ですが、
配布方法としてはスマートでは無いのでサーバー側に設定する必要があります
.htaccess を作成する
xpi ファイルをアップロードしたディレクトリに既にある場合は
ダウンロードして以下の一行を追加してアップロードします。

新規の場合はファイルを作成して以下の一行を書き込みます
.htaccess
AddType application/x-xpinstall .xpi
但し、このファイル名は windows のエクスプローラから作成できない
ので、コマンドプロンプトを開いて以下のように実行して作成する
と良いでしょう
echo > .htaccess


ダウンロード
.htaccess を作成した後、ダウンロードしようとすると以下のようになります

Firefox_ex_6

そして、「許可」ボタンをクリックすると以下のようなダイアログが出現するので
インストールが可能になります

Firefox_ex_7


PHP で配布したい場合の記述方法
Firefox_ex_8

PHP で以下のように記述する事によって、Firefox は拡張子が php でも
インストールしてくれます。

( pagehack_sample.xpi と同じディレクトリに置きます )
pagehack_sample.php
<?
header( "Content-Type: application/x-xpinstall" );
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );

print file_get_contents( "pagehack_sample.xpi" );

?>
しかし、このままでは他のブラウザでリンクをクリックした場合に、拡張子が
php として保存しようとするので以下のようにすると良いでしょう
<?
header( "Content-Type: application/x-xpinstall" );
header( "Expires: Wed, 31 May 2000 14:59:58 GMT" );

$b = $_SERVER['HTTP_USER_AGENT'];
if ( strstr( $b, "Firefox" ) === FALSE ) {
	header( "Content-disposition: attachment; filename=pagehack_sample.xpi" );

}

print file_get_contents( "pagehack_sample.xpi" );

?>