BugTrack2/106, official:PukiWiki/Install/xrea.comの関連です。
最近のバージョンのphpで、php.iniに次の設定を行った場合に、warningが出力されます。
allow_call_time_pass_reference = Off
なお、この設定は、xrea.comなどのサーバが適用していますが、特有のものではなく、php.iniの推奨設定とされております。
多くの場合に関してはBugTrack2/106の方で修正が完了しておりますが、 array_walk関数を使用するls2, pcommentの両プラグインに関しては修正されておりませんので、修正パッチを掲載しておきます。
Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of array_walk(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in /pukiwiki/pukiwiki/plugin/pcomment.inc.php on line 87
Index: plugin/pcomment.inc.php =================================================================== RCS file: /cvsroot/pukiwiki/pukiwiki/plugin/pcomment.inc.php,v retrieving revision 1.43 diff -u -r1.43 pcomment.inc.php --- plugin/pcomment.inc.php 4 Oct 2005 14:31:22 -0000 1.43 +++ plugin/pcomment.inc.php 29 Jun 2006 12:10:02 -0000 @@ -80,7 +80,11 @@ // BugTrack2/106: Only variables can be passed by reference from PHP 5.0.5 $args = func_get_args(); // with array_walk() - array_walk($args, 'plugin_pcomment_check_arg', & $params); + foreach ($args as $key => $arg) + { + plugin_pcomment_check_arg($arg, $key, $params); + } +// array_walk($args, 'plugin_pcomment_check_arg', & $params); $vars_page = isset($vars['page']) ? $vars['page'] : ''; $page = (isset($params['_args'][0]) && $params['_args'][0] != '') ? $params['_args'][0] : Index: plugin/ls2.inc.php =================================================================== RCS file: /cvsroot/pukiwiki/pukiwiki/plugin/ls2.inc.php,v retrieving revision 1.23 diff -u -r1.23 ls2.inc.php --- plugin/ls2.inc.php 5 Dec 2004 11:37:37 -0000 1.23 +++ plugin/ls2.inc.php 29 Jun 2006 12:34:39 -0000 @@ -66,7 +66,11 @@ } if ($prefix == '') $prefix = strip_bracket($vars['page']) . '/'; - array_walk($args, 'plugin_ls2_check_arg', & $params); + foreach ($args as $key => $arg) + { + plugin_ls2_check_arg($arg, $key, $params); + } +// array_walk($args, 'plugin_ls2_check_arg', $params); $title = (! empty($params['_args'])) ? join(',', $params['_args']) : // Manual str_replace('$1', htmlspecialchars($prefix), $_ls2_msg_title); // Auto
以前にどこかで「一筋縄ではいかない修正」とコメントされておられたので、この単純な変更には問題がありそうなのですが、php.iniの推奨設定とされていることもあるので、新たにBugTrackを立てさせさせていただきました。