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

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

Nucleus CMS

2013-08-13 21:49:47 JST-9 | akebia | Nucleus | コメント | トラックバック | 履歴

Nucleus本体をv3.65にアップグレードするといくつかの既存のプラグインが正常に動作しなくなることがあります。その中でも、PreUpdateItem、GenerateURLイベントを処理するタイプのプラグインに対する問題を解決するパッチです。このパッチはNucleus本体に当てます。

このパッチを適用する前に…

このパッチの修正箇所以外にも不具合があったようです。先ず、SourceForgeの「最新ダウンロードファイル」の日付を見て、以前Nucleusをダウンロードした時より新しいものがアップロードされている場合には、それをインストールします。それからこのパッチを適用します。恐らく、新しいもので修正されている箇所にはパッチは当たらず、修正されていない箇所にだけパッチが当たると思います。

その他の修正箇所は、ここに書いてあるみたいです。

git clone git://git.sourceforge.jp/gitroot/nucleus-jp/nucleus-jp-ancient.git
diff -ur --strip-trailing-cr path/to/以前ダウンロードして展開済みのNucleus nucleus-jp-ancient

として、それらしき更新がされているファイルを見つけて、WebサーバにインストールしたNucleusにマージするとよいです。Gitでは、このパッチの問題は修正済みのようです。

nucleus.patch

*** nucleus/libs/ITEM.php	2012-10-14 13:25:22.000000000 +0900
--- nucleus/libs/ITEM.php	2013-07-22 20:43:48.226130511 +0900
***************
*** 213,219 ****
  
  		// call plugins
  		$param = array(
! 		'	itemid'		=>  $itemid,
  			'title'		=> &$title,
  			'body'		=> &$body,
  			'more'		=> &$more,
--- 213,219 ----
  
  		// call plugins
  		$param = array(
! 			'itemid'	=>  $itemid,
  			'title'		=> &$title,
  			'body'		=> &$body,
  			'more'		=> &$more,
*** nucleus/libs/globalfunctions.php	2012-10-14 13:26:06.000000000 +0900
--- nucleus/libs/globalfunctions.php	2013-07-22 21:59:15.212014586 +0900
***************
*** 1558,1564 ****
  	if ($usePathInfo) {
  		$param = array(
  			'type'		=>  $type,
! 			'args'		=>  $args,
  			'completed'	=> &$created,
  			'url'		=> &$url
  		);
--- 1558,1564 ----
  	if ($usePathInfo) {
  		$param = array(
  			'type'		=>  $type,
! 			'params'	=>  $args,
  			'completed'	=> &$created,
  			'url'		=> &$url
  		);

このパッチを適用するには、Nucleus本体をインストールしたディレクトリ(config.phpの$DIR_NUCLEUS変数で指定したディレクトリの一つ親のディレクトリです。この変数を弄らずにそのまま使っている場合には、config.phpと同じディレクトリになると思います。)に、このパッチ「nucleus.patch」を置いて、そのディレクトリをカレントディレクトリとして、下記のコマンドを実行して下さい。

patch -b -p0 < nucleus.patch

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

ちなみに、パッチが当たる箇所は少ないので、わざわざコマンドでやらなくても、パッチを見ながらテキストエディタで修正するのがお手軽かもしれません・・・。

v3.65にアップグレードして不具合が発生した場合、プラグインによっては、この問題以外の問題も併発している場合もあるので、そういう場合にはプラグイン側も修正する必要があります。多くは、MANAGERクラスのnotifyメソッドを呼び出す部分のようですが、Nucleusのアップグレードと同時にphpやPEARもアップグレードしていると、それに伴う色々な問題も発生していることでしょう。

関連するプラグイン

この問題の影響を受けると思しきプラグインの一覧は下記のとおりです。ここでは、あけび猫のブログで紹介しているプラグインのみ列挙しています。

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

Comments

No comments yet

Add Comment

Trackback

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


http://2hz.org/akebia/