BugTrack/2319
の編集
Top
/
BugTrack
/
2319
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
* AutoAlias: IgnoreListに登録された単語が表示されなくなる [#t8ca9aaf] - ページ: [[BugTrack]] - 投稿者: 名無しさん - 優先順位: 低 - 状態: 完了 - カテゴリー: 本体バグ - 投稿日: 2009-03-31 (火) 19:33:54 - バージョン: 1.4.8_alpha - リリース予定バージョン: 1.5.3 ** メッセージ [#sd980467] AutoLink, AutoAlias ともにget_autolink_pattern() を経由して正規表現を作っていますが、本来AutoLink 用として用意されたConfig 設定をAutoAlias でもそのまま使っているので、不都合な場合があります。 例えば、IgnoreList に登録されていてAutoAliasName には登録されていない単語があった場合、Link_autoalias::toString() でreturn ''; されてしまい閲覧時にその文字が表示されなくなります。~ 意図してそれをしているのならまだいいのですが、AutoLink とAutoAlias を同時に運用している場合は、AutoAlias に登録していないのにAutoLink にならず、文字が表示されないという状況になってしまいます。 そこで、$min_len のようにget_autolink_pattern() を呼び出す時に、使うConfig 設定ページ(あるいは、使わないこと)を指定するようにして、省略された場合は互換動作させる(AutoLink の設定を使う)か、&br;ForceIgnoreList は共有してIgnoreList を利用するかを切り替えられるようにするか、&br;というようにできればいいなと思い提案します。 -------- - 設定ページを共有している問題と、AutoAlias でIgnoreList を使うと登録した文字が表示されなくなる場合がある問題は、別です。AutoAlias が「:config/AutoAliasName」を見るようになったとしても、IgnoreList の問題が残ってしまいます。 -- &new{2010-01-31 (日) 08:34:39}; -- AutoLink の場合は、 if (in_array($name, $this->forceignorepages) || ! is_page($name)) return FALSE; ForceIgnoreList に一致するか、IgnoreList に一致したなどで存在しないページ名にマッチした場合に、リンクの対象外になっています。&br;ところが、AutoAlias の場合は、 if (in_array($name, $this->forceignorepages)) { return FALSE; } ForceIgnoreList に一致した場合は対象外となっているのですが、IgnoreListにマッチした場合は AutoAliasName のルールを確認せずに処理を続行してしまいます。AutoLink と処理をあわせるのなら、 get_autoaliases($name) == '' を条件に追加すればいいですし、違ってもいいのなら「Link_autoalias::toString() で該当ルールなしの場合はreturn '';」している処理をreturn make_line_rules(htmlspecialchars($this->name)); するように変える方法もあります。 -- &new{2010-01-31 (日) 08:34:39}; - 『IgnoreList に登録されていてAutoAliasName には登録されていない単語があった場合、Link_autoalias::toString() でreturn ''; されてしまい閲覧時にその文字が表示されなくなります。』が問題なのだと理解しました。タイトルを変えました。(旧)「AutoAlias が、AutoLink 用のConfig 設定をそのまま使っている」→(新)「AutoAlias: IgnoreListに登録された単語が表示されなくなる」 -- [[umorigu]] &new{2020-02-15 (土) 23:53:59}; - 『AutoLink と処理をあわせるのなら、 'get_autoaliases($name) == ''' を条件に追加すればいいですし』の方針で修正しました commit:9d4e66031b -- [[umorigu]] &new{2020-02-15 (土) 23:59:20}; #comment
タイムスタンプを変更しない
* AutoAlias: IgnoreListに登録された単語が表示されなくなる [#t8ca9aaf] - ページ: [[BugTrack]] - 投稿者: 名無しさん - 優先順位: 低 - 状態: 完了 - カテゴリー: 本体バグ - 投稿日: 2009-03-31 (火) 19:33:54 - バージョン: 1.4.8_alpha - リリース予定バージョン: 1.5.3 ** メッセージ [#sd980467] AutoLink, AutoAlias ともにget_autolink_pattern() を経由して正規表現を作っていますが、本来AutoLink 用として用意されたConfig 設定をAutoAlias でもそのまま使っているので、不都合な場合があります。 例えば、IgnoreList に登録されていてAutoAliasName には登録されていない単語があった場合、Link_autoalias::toString() でreturn ''; されてしまい閲覧時にその文字が表示されなくなります。~ 意図してそれをしているのならまだいいのですが、AutoLink とAutoAlias を同時に運用している場合は、AutoAlias に登録していないのにAutoLink にならず、文字が表示されないという状況になってしまいます。 そこで、$min_len のようにget_autolink_pattern() を呼び出す時に、使うConfig 設定ページ(あるいは、使わないこと)を指定するようにして、省略された場合は互換動作させる(AutoLink の設定を使う)か、&br;ForceIgnoreList は共有してIgnoreList を利用するかを切り替えられるようにするか、&br;というようにできればいいなと思い提案します。 -------- - 設定ページを共有している問題と、AutoAlias でIgnoreList を使うと登録した文字が表示されなくなる場合がある問題は、別です。AutoAlias が「:config/AutoAliasName」を見るようになったとしても、IgnoreList の問題が残ってしまいます。 -- &new{2010-01-31 (日) 08:34:39}; -- AutoLink の場合は、 if (in_array($name, $this->forceignorepages) || ! is_page($name)) return FALSE; ForceIgnoreList に一致するか、IgnoreList に一致したなどで存在しないページ名にマッチした場合に、リンクの対象外になっています。&br;ところが、AutoAlias の場合は、 if (in_array($name, $this->forceignorepages)) { return FALSE; } ForceIgnoreList に一致した場合は対象外となっているのですが、IgnoreListにマッチした場合は AutoAliasName のルールを確認せずに処理を続行してしまいます。AutoLink と処理をあわせるのなら、 get_autoaliases($name) == '' を条件に追加すればいいですし、違ってもいいのなら「Link_autoalias::toString() で該当ルールなしの場合はreturn '';」している処理をreturn make_line_rules(htmlspecialchars($this->name)); するように変える方法もあります。 -- &new{2010-01-31 (日) 08:34:39}; - 『IgnoreList に登録されていてAutoAliasName には登録されていない単語があった場合、Link_autoalias::toString() でreturn ''; されてしまい閲覧時にその文字が表示されなくなります。』が問題なのだと理解しました。タイトルを変えました。(旧)「AutoAlias が、AutoLink 用のConfig 設定をそのまま使っている」→(新)「AutoAlias: IgnoreListに登録された単語が表示されなくなる」 -- [[umorigu]] &new{2020-02-15 (土) 23:53:59}; - 『AutoLink と処理をあわせるのなら、 'get_autoaliases($name) == ''' を条件に追加すればいいですし』の方針で修正しました commit:9d4e66031b -- [[umorigu]] &new{2020-02-15 (土) 23:59:20}; #comment
テキスト整形のルールを表示する