(現象) memo.inc.php はブロック型のプラグインなので、 表組みの中でも利用可能だろうと組み込んで見たところ、 表示はできても、メモの内容の更新ができません。 (仕様と言われてしまえばそれまでなのですが (^^;)
(原因) plugin_memo_action()の内容を確認したところ、 プラグインの出現を判断している正規表現が、 「行頭に定義されている場合」 と決め打ちしているために、以上のような挙動になっていることを 確認しました。
(対策/修正案) listboxなど、表組みの中でも動作する自作プラグインを 参考にして修正案を作ってみました。ご検討をお願いします。
plugin_memo_action() : foreach($postdata_old as $line) { - if (preg_match("/^#memo\(?.*\)?$/", $line)) - { - if ($memo_no == $vars['memo_no']) - { - $postdata .= "#memo($memo_body)\n"; - $line = ''; - } - ++$memo_no; - } - $postdata .= $line; + + if(preg_match('/^(?:\/\/| )/', $line)) // Skip Comment lines + $postdata .= $line; + continue; + } + + if(preg_match_all('/(?:#memo\(([^\)]*)\))/', $line,$matches,PREG_SET_ORDER)) + { + $paddata = preg_split('/#memo\(([^\)]*)\)/', $line); + $line = $paddata[0]; + foreach($matches as $i => $match) + { + $opt = $match[1]; + if ($memo_no++ == $vars['memo_no']) + $opt = $memo_body; + $line .= "#memo($opt)" . $paddata[$i+1]; + } + } + $postdata .= $line;