BugTrack/782
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*Trackerプラグインでページに隙間があるとそこを利用してし...
-ページ: BugTrack
-投稿者: [[kak]]
-優先順位: 低
-状態: 完了
-カテゴリー: プラグイン
-投稿日: 2005-01-18 (火) 20:48:33
-バージョン:
-リリース予定バージョン: 1.5.2
#contents
**メッセージ [#r59ded53]
([[official:続・質問箱/539]])([[official:続・質問箱/522]])
現在の tracker プラグインでは番号1のページから最後のペー...
この辺には好き嫌いがあるのかもしれませんが、単純に一番最...
----
-動作は追っていないのですが。バックアップファイルを改変し...
-2つ方法があると思いますが、どちらにすべきでしょうか?~
1. get_existpages() ですべてのページを取得し、たとえば「...
2. どこかに最後の番号をキャッシュしておき、それを取り出す...
1. はお分かりの通り遅そうです。ページが増えるにつれてさら...
-ちなみに問題箇所は 110 行からの
// ページ名を決定
$base = $post['_base'];
$num = 0;
$name = (array_key_exists('_name',$post)) ? $post['_nam...
if (array_key_exists('_page',$post))
{
$page = $real = $post['_page'];
}
else
{
$real = is_pagename($name) ? $name : ++$num;
$page = get_fullname('./'.$real,$base);
}
if (!is_pagename($page))
{
$page = $base;
}
while (is_page($page))
{
$real = ++$num;
$page = "$base/$real";
}
のところです。$real = is_pagename($name) ? $name : ++$num...
-ページ名は明示的にフォームから[_name]で指定することもで...
--$real = is_pagename($name) ? $name : ++$num; は [_name...
-単純にバックアップがあるかどうかを確認して重複チェックす...
- while (is_page($page))
+ while (is_page($page) || backup_file_exists($page))
{
$real = ++$num;
$page = "$base/$real";
}
--こんな感じで。試してみたところは大丈夫そうです。 -- [[t...
-- それがよさそうですね。キャッシュを作ったとしてもその中...
--でもまぁめんどくさいし、バックアップが壊されなければい...
$base = $post['_base'];
$name = (array_key_exists('_name',$post)) ? $post['_nam...
$_page = (array_key_exists('_page',$post)) ? $post['_pa...
if ( is_pagename( $_page ) )
{
$page = $real = $_page;
}
else if ( is_pagename( $name ) )
{
$real = $name;
$page = get_fullname('./'.$real,$base);
}
else
{
$page = $base; // is_page($page) にヒットさせ連番ルー...
}
while (is_page($page) || _backup_file_exists($page) )
{
$real = ++$num;
$page = "$base/$real";
}
上の [_page] があるときは [_name] が働かない。の不具合も...
-ところで、[_name] [_page] で指定したページ名がすでに存在...
- 対応しました。バックアップは考慮せず、既存の最も大きい...
#comment
**bugtrack プラグインのページチェックロジックを、tracker ...
投稿日: 2007-11-07 (水) 23:05:33
上の話題とは少し違う方法なのですが、bugtrack プラグインが...
1から順番に数えていく今のロジックだと、100を超える数を数...
[[cvs:plugin/tracker.inc.php]] (1.22)
$name = isset($post['_name']) ? $post['_name'] : '';
- if (isset($post['_page'])) {
+ if (isset($post['_page']) && $post['_page'] != '') {
$real = $page = $post['_page'];
} else {
$real = is_pagename($name) ? $name : ++$num;
$page = get_fullname('./' . $real, $base);
}
if (! is_pagename($page)) $page = $base;
- while (is_page($page)) {
- $real = ++$num;
- $page = $base . '/' . $real;
- }
+ if (is_page($page)) {
+ $jump = 0;
+ do {
+ $num = $jump;
+ $jump += 50;
+ $page = $base . '/' . $jump;
+ } while (is_page($page));
+ do {
+ $real = ++$num;
+ $page = $base . '/' . $real;
+ } while (is_page($page));
+ }
$config = isset($post['_config']) ? $post['_config'] :...
最初にif (is_page($page)) で括ることで、[_page] や[_name]...
if (is_page($page)) で括っているので、その中はwhile ルー...
----
- $post['_page'] が空文字のとき対策を追加 -- &new{2007-1...
//#comment
**ベースページが未作成の時、特定の条件でベースページに投...
投稿日: 2007-11-07 (水) 23:05:33
tracker にはベースページを作らなくても、パラメータとして...
しかし、次の部分の中で不正なページ名だった場合$page = $ba...
$base = isset($post['_base']) ? $post['_base'] : '';
$refer = isset($post['_refer']) ? $post['_refer'] : '';
// $page name to add will be decided here
$num = 0;
$name = isset($post['_name']) ? $post['_name'] : '';
if (isset($post['_page'])) {
$real = $page = $post['_page'];
} else {
$real = is_pagename($name) ? $name : ++$num;
$page = get_fullname('./' . $real, $base);
}
if (! is_pagename($page)) $page = $base;
この部分で不正なページと判断されるのは$post['_page'] に不...
ふと思ったんですけど、$base が空文字の時だと$page も空文...
改修案の素案&br;[[cvs:plugin/tracker.inc.php]] (1.22)
$num = 0;
$name = isset($post['_name']) ? $post['_name'] : '';
if (isset($post['_page'])) {
$real = $page = $post['_page'];
} else {
$real = is_pagename($name) ? $name : ++$num;
$page = get_fullname('./' . $real, $base);
}
- if (! is_pagename($page)) $page = $base;
+ if (! is_pagename($page)) {
+ if (! is_pagename($base)) {
+ return array(
+ 'msg' => 'エラーメッセージ',
+ 'body' => 'エラーメッセージ'
+ );
+ }
+ $page = $base . '/' . ++$num;
+ }
while (is_page($page)) {
素案なんで、エラーメッセージの部分がいいかげんなのは勘弁...
----
//#comment
終了行:
*Trackerプラグインでページに隙間があるとそこを利用してし...
-ページ: BugTrack
-投稿者: [[kak]]
-優先順位: 低
-状態: 完了
-カテゴリー: プラグイン
-投稿日: 2005-01-18 (火) 20:48:33
-バージョン:
-リリース予定バージョン: 1.5.2
#contents
**メッセージ [#r59ded53]
([[official:続・質問箱/539]])([[official:続・質問箱/522]])
現在の tracker プラグインでは番号1のページから最後のペー...
この辺には好き嫌いがあるのかもしれませんが、単純に一番最...
----
-動作は追っていないのですが。バックアップファイルを改変し...
-2つ方法があると思いますが、どちらにすべきでしょうか?~
1. get_existpages() ですべてのページを取得し、たとえば「...
2. どこかに最後の番号をキャッシュしておき、それを取り出す...
1. はお分かりの通り遅そうです。ページが増えるにつれてさら...
-ちなみに問題箇所は 110 行からの
// ページ名を決定
$base = $post['_base'];
$num = 0;
$name = (array_key_exists('_name',$post)) ? $post['_nam...
if (array_key_exists('_page',$post))
{
$page = $real = $post['_page'];
}
else
{
$real = is_pagename($name) ? $name : ++$num;
$page = get_fullname('./'.$real,$base);
}
if (!is_pagename($page))
{
$page = $base;
}
while (is_page($page))
{
$real = ++$num;
$page = "$base/$real";
}
のところです。$real = is_pagename($name) ? $name : ++$num...
-ページ名は明示的にフォームから[_name]で指定することもで...
--$real = is_pagename($name) ? $name : ++$num; は [_name...
-単純にバックアップがあるかどうかを確認して重複チェックす...
- while (is_page($page))
+ while (is_page($page) || backup_file_exists($page))
{
$real = ++$num;
$page = "$base/$real";
}
--こんな感じで。試してみたところは大丈夫そうです。 -- [[t...
-- それがよさそうですね。キャッシュを作ったとしてもその中...
--でもまぁめんどくさいし、バックアップが壊されなければい...
$base = $post['_base'];
$name = (array_key_exists('_name',$post)) ? $post['_nam...
$_page = (array_key_exists('_page',$post)) ? $post['_pa...
if ( is_pagename( $_page ) )
{
$page = $real = $_page;
}
else if ( is_pagename( $name ) )
{
$real = $name;
$page = get_fullname('./'.$real,$base);
}
else
{
$page = $base; // is_page($page) にヒットさせ連番ルー...
}
while (is_page($page) || _backup_file_exists($page) )
{
$real = ++$num;
$page = "$base/$real";
}
上の [_page] があるときは [_name] が働かない。の不具合も...
-ところで、[_name] [_page] で指定したページ名がすでに存在...
- 対応しました。バックアップは考慮せず、既存の最も大きい...
#comment
**bugtrack プラグインのページチェックロジックを、tracker ...
投稿日: 2007-11-07 (水) 23:05:33
上の話題とは少し違う方法なのですが、bugtrack プラグインが...
1から順番に数えていく今のロジックだと、100を超える数を数...
[[cvs:plugin/tracker.inc.php]] (1.22)
$name = isset($post['_name']) ? $post['_name'] : '';
- if (isset($post['_page'])) {
+ if (isset($post['_page']) && $post['_page'] != '') {
$real = $page = $post['_page'];
} else {
$real = is_pagename($name) ? $name : ++$num;
$page = get_fullname('./' . $real, $base);
}
if (! is_pagename($page)) $page = $base;
- while (is_page($page)) {
- $real = ++$num;
- $page = $base . '/' . $real;
- }
+ if (is_page($page)) {
+ $jump = 0;
+ do {
+ $num = $jump;
+ $jump += 50;
+ $page = $base . '/' . $jump;
+ } while (is_page($page));
+ do {
+ $real = ++$num;
+ $page = $base . '/' . $real;
+ } while (is_page($page));
+ }
$config = isset($post['_config']) ? $post['_config'] :...
最初にif (is_page($page)) で括ることで、[_page] や[_name]...
if (is_page($page)) で括っているので、その中はwhile ルー...
----
- $post['_page'] が空文字のとき対策を追加 -- &new{2007-1...
//#comment
**ベースページが未作成の時、特定の条件でベースページに投...
投稿日: 2007-11-07 (水) 23:05:33
tracker にはベースページを作らなくても、パラメータとして...
しかし、次の部分の中で不正なページ名だった場合$page = $ba...
$base = isset($post['_base']) ? $post['_base'] : '';
$refer = isset($post['_refer']) ? $post['_refer'] : '';
// $page name to add will be decided here
$num = 0;
$name = isset($post['_name']) ? $post['_name'] : '';
if (isset($post['_page'])) {
$real = $page = $post['_page'];
} else {
$real = is_pagename($name) ? $name : ++$num;
$page = get_fullname('./' . $real, $base);
}
if (! is_pagename($page)) $page = $base;
この部分で不正なページと判断されるのは$post['_page'] に不...
ふと思ったんですけど、$base が空文字の時だと$page も空文...
改修案の素案&br;[[cvs:plugin/tracker.inc.php]] (1.22)
$num = 0;
$name = isset($post['_name']) ? $post['_name'] : '';
if (isset($post['_page'])) {
$real = $page = $post['_page'];
} else {
$real = is_pagename($name) ? $name : ++$num;
$page = get_fullname('./' . $real, $base);
}
- if (! is_pagename($page)) $page = $base;
+ if (! is_pagename($page)) {
+ if (! is_pagename($base)) {
+ return array(
+ 'msg' => 'エラーメッセージ',
+ 'body' => 'エラーメッセージ'
+ );
+ }
+ $page = $base . '/' . ++$num;
+ }
while (is_page($page)) {
素案なんで、エラーメッセージの部分がいいかげんなのは勘弁...
----
//#comment
ページ名: