前回~前々回と開発環境/本番環境のURLをあわせる方法を紹介しました。これだけでも移行の手間が省けるケースが多いと思いますが、より便利にする機能をNichePatchプラグインに追加しました。


<参照>
 Webに公開されていないXAMPPの超便利な使い方 ~1/2~
 Webに公開されていないXAMPPの超便利な使い方 ~2/2~

つまり、リニューアルのための新規構築時はまだ良いとして、その後の追加開発に突入すると、URLも同じだけに、今(本番 or 開発環境の)どちらのサイトを見ているかわからなくなってしまうとか、DB(管理画面操作)やソース修正しているのに、ブラウザで反映されないと思ったら、別のほうを見ていたなんてことが起こります。
もっぱら、開発&本番の両方のサイトをIEとFireFoxやSleipnirやLunaScape、Google Chromeといった複数ブラウザ×複数タブで見ながら、かつその間に調べたページも、プライベートのメールや調べもの e.t.c.

ブラウザがフィーバーしてる人ってたくさんいるんじゃないでしょうか(^^;

こんなことを解決するための機能です。

開発環境をブラウジングしているときは、画面上段に「LOCAL SERVER」の文字と背景が点滅します。(工事中のイメージです)
テクスチャはオレンジ、緑、グレーの3パターン用意しました。

ちなみにこの手の課題も、その対処もWordPress特有のものではないので、他でも充分に応用は効くと思います。

使い方

  1. niche-patch.0.70.zipをダウンロード(最新版はhttp://typista.it-creates.com/wp-content/uploads/niche-patch.zip)
  2. プラグインディレクトリに解凍
  3. ダッシュボードからアクティベート
  4. ONにしたい機能は「ダッシュボード」→「設定」→「Niche Patch Plugin」から。

その他、バージョン非表示機能、投稿&ページの作成画面で、一番下に「スラッグ」を表示する機能、投稿タイムスタンプのチェック機能、カテゴリー未選択 or 未分類のチェック機能などを追加することができます。

制限事項

  1. 動作検証はWordPress2.7でのみです。(今後明示的に2.7以降のサポートに切り替えていく予定です。)
  2. v.0.70ではサーバIPが127.0.0.1の場合にのみ「LOCAL SERVER」として認識する仕様です。
  3. ご利用のWebサーバ(Apache)がCGIモードの場合は、ログイン画面へのHTTP Digest認証は機能しません。
  4. 以前から気長にリファクタリングを想定中ですが、オプション値のバリデーションがほとんど実装されていませんので、ご了承ください。
  5. まだ実装は不十分ですが、Niche PatchはJavaScriptがONの状態でのみ正しく動作します。OFFの場合はサイトトップにリダイレクト処理しています。(今後はリダイレクト先を指定可能なように対応予定)
  6. バージョン(v.0.58)のメインとなるCMS運用のためのシンプル化機能は、オプションがONであると同時に、便宜上「ユーザ作成権限」が無い(つまり管理者でない)場合に動作します。※細かい機能ごとのオプション設定は要望があれば検討します。
  7. wp_list_pages()で実際に表示されるページ一覧は、menu_order(=ページ順序)の次にpost_title(=ページタイトル)の文字コード順のようですので、同じmenu_orderの場合、並び順のパっと見では順番操作できていないように勘違いしやすいので注意してください。(順番操作ボタンを+/-ではなく↑/↓のように1件ずつ確実に入れ替えていく処理も考えましたが、post_statusとの関連でダッシュボードのページ管理一覧を表示しているモードによって隠れているページとの順序性をどうするかという点で仕様を詰め切れそうにないので見送りました。)
  8. 投稿タイムスタンプのチェックは、ページの場合に動作しません。(今後調査します)
  9. 「保存」「公開」ボタンのonclickイベントを利用していますが、他プラグインとの競合は未検証です。(こちらも追って、調査していきます)
  10. なお、本来はonclickイベントへのハンドラ登録ではなく、リスナー登録のほうが美しいようですが、チェックNGの場合にPOST処理を中断する手段の実装にひと手間、ふた手間かかりそうなので、現状はonclickハンドラがすでに登録済みの場合のみ、当ニッチパッチハンドラ実行後(さらにいうと結果がtrueの場合)にコールするようにしています。

改修履歴

[v.0.70]2009.02.07

  1. 開発環境判定機能をリリース

[v.0.60]2009.02.04

  1. ログイン画面へのHTTP Digest認証機能をリリース
  2. v.0.58リリースのCMSシンプル化機能で、権限グループによっては、意図せずダッシュボードメニューの「設定」が表示されてしまっていたので、非表示の対応

[v.0.59]2009.01.28

  1. CMS運用のための+1のシンプル機能リリース
  2. サーバ(PHPバージョン or 設定?)によってはCMSシンプル化機能が動作しなかった不具合(strposの問題?)の修正

[v.0.58]2009.01.27

  1. CMS運用のための13のシンプル機能リリース
  2. ページの場合に「カテゴリチェック無し」 or 「未選択のみ」が不正に動作していた不具合の修正※Page Category Plus(v.2.2で検証)を利用している場合に、当該オプションがONであれば正しく動作します。

[v.0.51]2009.01.15

  1. WordPress2.7不具合対応(投稿タイムスタンプチェックとカテゴリチェック)

[v.0.50]2009.01.10

  1. ページの表示順操作の対応
  2. テーマディレクトリを隠蔽するためにindex.html生成機能追加

今後の対応

開発環境の識別条件をもうすこしフレキシブルに設定可能にするよう考えています。また、「LOCAL SERVER」の表示はブラウザをスクロールすると消えてしまうので、今後対応予定です。

ログイン画面へのHTTP Digest認証機能のIDとパスワードは複数指定可能なようにしたい。

また、保存パスワードは可能ならばハッシュ化してDB保存しておきたい。

HTTP認証ID、パスワードのリマンド機能の要不要、その実装方法なども検討予定です。

なお、v0.60からNiche Pacheのオプション値を”false”(文字列)から、false(真偽値)に変更しています。

これは”false”(文字列)のままだと、テキスト指定のオプション値がNULLの場合に”false”(文字列)になってしまう歪な現象を避けるための対処です。

ソースレビューだけですが、JavaScriptソースを除いて、オプション値が”false”(文字列)かの判定は過去バージョンでは存在しないため、影響は出ないはずですが、もし過去バージョンですでに運用されている場合は、大変お手数をおかけしますが充分にテスト実施のうえ、バージョンアップしてください。

さらに本来は”true”(文字列)も、true(真偽値)に変更すべきですが、現状では大勢に影響はないものと判断(むしろ変更したことによるソース修正&検証の影響が大きい)し、片手落ち感が残りますが、既存のままとしています。

プラグインの配布方法、とくにバージョンアップ時の通知方法を調べる。

その他、思いつきでニッチにふさわしいパッチがあれば、プラグイン実装していく。

日本語決め打ちではなく、多国語対応方法も気長に調べていきたい。

SPaiS WordPress プラグインの作り方(3) ステップ1:翻訳の仕組み