PukiWiki 1.4.7 でls2とpcommentの引数が反映されない件

2023.6.6 追記:
この問題は PukiWiki 1.5.0 で修正されています*1
pukiwiki.dev:BugTrack/2182

この記事を書いたのは 2014/5/25 です

タイトル通り。`#ls2(,reverse)` としてもソートが反転されないと言った感じです。随分長いこと悩まされていましたが解決したので書き残しておきます。

patch

ls2.inc.php

--- ls2.inc.php.orig 2006-10-22 05:41:11 +0900
+++ ls2.inc.php      2014-06-01 15:40:41 +0900
@@ -66,7 +66,9 @@
 }
 if ($prefix == '') $prefix = strip_bracket($vars['page']) . '/';
 
-array_walk($args, 'plugin_ls2_check_arg', & $params);
+if (! empty($args))
+foreach ($args as $arg)
+ls2_check_arg($arg, $params);
 
 $title = (! empty($params['_args'])) ? join(',', $params['_args']) :   // Manual
 str_replace('$1', htmlspecialchars($prefix), $_ls2_msg_title); // Auto
@@ -196,7 +198,7 @@
 }
 
 // オプションを解析する
-function plugin_ls2_check_arg($value, $key, & $params)
+function ls2_check_arg($value, & $params)
 {
 if ($value == '') {
 $params['_done'] = TRUE;

pcomment.inc.php

--- pcomment.inc.php.orig2006-10-22 05:41:11 +0900
+++ pcomment.inc.php2014-06-01 15:32:00 +0900
@@ -80,7 +80,9 @@
 
 // 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);
+if (! empty($args))
+foreach ($args as $arg)
+pcomment_check_arg($arg, $params);
 
 $vars_page = isset($vars['page']) ? $vars['page'] : '';
 $page  = (isset($params['_args'][0]) && $params['_args'][0] != '') ? $params['_args'][0] :
@@ -303,7 +305,7 @@
 }
 
 // Check arguments
-function plugin_pcomment_check_arg($val, $key, & $params)
+function pcomment_check_arg($val, & $params)
 {
 if ($val != '') {
 $l_val = strtolower($val);

*1 というか、1.5.3 以前の版は脆弱性が多数見つかってるのではやくアップデートしましょう (自分含め)。

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-06-06 (火) 01:14:53