BugTrack/675
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*memo.inc.phpを表組の中で利用すると、内容が更新できない [...
-ページ: BugTrack
-投稿者: [[jjyun]]
-優先順位: 低
-状態: 完了
-カテゴリー: プラグイン
-投稿日: 2004-09-04 (土) 08:08:29
-バージョン:
**メッセージ [#nf9efeb7]
(現象)
memo.inc.php はブロック型のプラグインなので、
表組みの中でも利用可能だろうと組み込んで見たところ、
表示はできても、メモの内容の更新ができません。
(仕様と言われてしまえばそれまでなのですが &worried;)
(原因)
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 Com...
+ $postdata .= $line;
+ continue;
+ }
+
+ if(preg_match_all('/(?:#memo\(([^\)]*)\))/', $line...
+ {
+ $paddata = preg_split('/#memo\(([^\)]*)\)/', $l...
+ $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;
----
-今までの実装がシンプルだっただけだと思いますよ :) -- [[...
-先日投稿した修正案だと、ページ内のコメント行をすべて消し...
//#comment
終了行:
*memo.inc.phpを表組の中で利用すると、内容が更新できない [...
-ページ: BugTrack
-投稿者: [[jjyun]]
-優先順位: 低
-状態: 完了
-カテゴリー: プラグイン
-投稿日: 2004-09-04 (土) 08:08:29
-バージョン:
**メッセージ [#nf9efeb7]
(現象)
memo.inc.php はブロック型のプラグインなので、
表組みの中でも利用可能だろうと組み込んで見たところ、
表示はできても、メモの内容の更新ができません。
(仕様と言われてしまえばそれまでなのですが &worried;)
(原因)
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 Com...
+ $postdata .= $line;
+ continue;
+ }
+
+ if(preg_match_all('/(?:#memo\(([^\)]*)\))/', $line...
+ {
+ $paddata = preg_split('/#memo\(([^\)]*)\)/', $l...
+ $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;
----
-今までの実装がシンプルだっただけだと思いますよ :) -- [[...
-先日投稿した修正案だと、ページ内のコメント行をすべて消し...
//#comment
ページ名: