にへるつおるぐ | src | ブログ | コンタクト | 統計 | 御串 | 小束 | 裏ミク | つ痛 | 顔本 |

10年ぶりに部屋に入るとコウモリや猫の巣窟だった

Nucleus CMS

2009-01-15 19:01:02 JST-9 | akebia | Nucleus | コメント | トラックバック | 履歴

NP_znItemCacheNP_Revisionに対応させるパッチです。

対応するNP_znItemCacheのバージョンは0.024、NP_Revisionのバージョンは0.7です。

このパッチを適用するには、元の「NP_znItemCache.php」と同じディレクトリに、このパッチ「NP_znItemCache.php.patch」を置いて、そのディレクトリをカレントディレクトリとして、下記のコマンドを実行して下さい。

patch -b < NP_znItemCache.php.patch

システムによって改行コードの問題があります。「patchコマンドの簡単な使い方」を参照して下さい。

オリジナルのNP_znItemCacheはアイテム毎にキャッシュしますが、リビジョンの概念が無いため、最初にアクセスのあったリビジョンがキャッシュされ、以降、他のリビジョンにアクセスしても、キャッシュの寿命が来るまでキャッシュされたリビジョンが表示されます。NP_znItemCacheに、このパッチを当てると、NP_znItemCacheはアイテムをリビジョン毎にキャッシュするようになります。最新のリビジョンのキャッシュはオリジナルのNP_znItemCacheのものと変わりありませんが、古いリビジョンのキャッシュのファイル名にはリビジョン番号の情報を含むようになります(ハッシュになっているので見た目では分かりません)。NP_znItemCacheにこのパッチを当てた後、特に何もしなくても、ほおっておくとキャッシュファイルの寿命が来て、キャッシュとリビジョンの関係が正しくなると思いますが、急ぐ場合には、全てのキャッシュファイルを削除して下さい。

このパッチを当てたNP_znItemCacheは、古いリビジョンのキャッシュを見つけた場合、NP_Revisionの警告機能を有効にするため、NP_Revisionを呼び出します。これは、警告機能を使わない場合には無駄な気もしますが、NP_Revisionは元々さほど重いプログラムでは無いと思うので、NP_znItemCacheを必要としているようなシステムにとって、その影響は、ほとんど無視できるものと思います。

このパッチを当てたNP_znItemCacheは、NP_Revisionに依存しますが、依存性のチェックは行っていません。そのため、NP_Revisionをインストールしていない状態でアイテムのリビジョンを指定すると、アボートすると思います。

NP_Revisionの方には、特にパッチは必要ありません。

ドラフトのレビジョンのキャッシュについて

元々、NP_Revisionはドラフトのレビジョンに管理者以外がアクセスするとそのレビジョンを表示するかわりに最新のレビジョンを表示するようになっています。これにNP_znItemCache v0.024-1をインストールすると、管理者が先にアクセスしてキャッシュが作成されると、次に管理者以外がアクセスすると、そのキャッシュが表示されてしまい結果的にドラフトのレビジョンを管理者以外が読めてしまうことがあります。

この問題の解決手段の一つとして、NP_znItemCacheにNP_Revisionと同じアクセス制限機能をつける方法が考えられますが、それだと、NP_znItemCacheのプログラムが複雑になってしまうので、NP_znItemCache v0.024-2では、NP_Revisionが本文を表示しない場合にはキャッシュも表示しないようにしました。ところが、元々のNP_Revisionは、先に書いたように、アクセス拒否する場合にも本文になんらかを表示してしまうので、これでは問題の解決にはなりません。

問題を解決するには、NP_znItemCacheをv0.024-2にアップグレードすると共にNP_Revisionをv0.7-8にアップグレードして下さい。NP_Revision v0.7-8ではアクセス拒否の場合には本文を空にした状態で別途その旨のメッセージを表示します。

バージョン履歴

v0.024-2 (2013-8-14)
Nucleus v3.65に対応。NP_Revisionが本文を表示しない場合にはキャッシュも表示しないようにした。
v0.024-1 (2009-1-15)
公開

MyMiniCity 人気ブログランキングへ

Comments

No comments yet

Add Comment

Trackback

このトラックバックURL(右クリックして、リンクのURLをコピー)を使ってこの記事にトラックバックを送ることができます。もしあなたのブログがトラックバック送信に対応していない場合にはこちらのフォームからトラックバックを送信することができます。トラックバックの手動送信に失敗したり、拒否された場合には、あけび猫が入力しますので、こちらまでご連絡下さい。重複したトラックバックは、自動的に1つにまとめられるようなので、気軽に色々試してみて下さい。


http://2hz.org/akebia/