refプラグイン(インライン型)でファイル名だけを指定する書式が使えなくなっている†
- ページ: BugTrack
- 投稿者: jjyun
- 優先順位: 重要
- 状態: 提案
- カテゴリー: プラグイン
- 投稿日: 2004-08-29 (日) 18:02:23
- バージョン: 1.4.4
メッセージ†
あるページに添付したファイルを、同じページから参照する際に、
refプラグインを以下のように使っています。
&ref(添付ファイル名);
1.32 までは、この表記でリンク表示されていたのですが、
1.33 以降からは、以下のようなエラーメッセージが表示されるようになりました。(添付ファイル名やページ名を抽象的に書きたかったのですが、よりわかりづらくなるかもしれないと思い、そのままにしています)
「両方のページに~」というエラー内容はわからないものの、
指定されている表記に従って、以下のように書き直せば、
これまで通りに、リンク表記がなされます。
&ref(./添付ファイル名);
refプラグインは、添付先のページ指定に関する修正がなされていると
思いますが、この挙動は意図されたもの(refの仕様の変更)なのでしょうか?それともバグですか?(^^;
- む、確認します。該当のページは
Webに露出しているページ(今私が確認できる状態)ですか? => 補足しました。プレビューで様子を見ています -- henoheno
- 現在、公開サイトでは最新版(1.36)を導入しています。ローカル側でバージョン関連の切り分けは行いました。 -- jjyun
- 上記エラーは A というページに ref(foo.tgz,B) という(現状では推奨されない)表記をした際に、foo.tgz というファイルが A にも B にも存在していると出すエラーとして用意したものです。つまり意図した状況ではありません-- henoheno
- む。手元ではまだ再現できず。 -- henoheno
- 再現しました。 #ref では再現せず、&と; で囲むインライン型の表記でのみ再現しました。 -- henoheno
- あ、タイトルに (インライン型) って書いてあるや・・・ pukiwiki.orz -- henoheno
- これはインラインプラグインを呼ぶ関数 do_plugin_inline() が、引数としてひとつ余計な値を渡して来るのが直接の原因の様で、ref自身はあまり悪くなさそうです。 -- henoheno
- do_plugin_inline() のこの挙動は r(リビジョン)1.3 のころからこうで、なぜこうなのかが良く解っていないので、コメントを添えたのみで特に手を加えていないんですよね -- henoheno
diff -r1.36 ref.inc.php
181c181
< } else if (isset($args[0]) && ! isset($params[$args[0]])) {
---
> } else if (isset($args[0]) && $args[0] != '' && ! isset($params[$args[0]])) {
- cvs:plugin/ref.inc.php (v1.4:1.37)
- refプラグインの(第二引数の)引数チェックをより厳密にする方向の修正を行いました。これで第二引数が空だった時の挙動も確定します -- henoheno
- いつもいつも、迅速な対応を頂きありがとうございます。
私の方でも動作確認し、1.32以前と同様の動作をすることを確認しましたので、状態を「完了」にしたいと思います。 -- jjyun
再提案†
- これ、ファイル名のみを指定した記述に対する対処なんですね。&ref(添付ファイル名,拡大率); など他のオプションを指定していた場合は同じ症状になる事に今更気付きました。ウチは該当箇所が少なかったので「./ファイル名」に直しましたが、困る人が出てくる可能性がある点を書いておきますです。 -- にぶんのに
- うちも1.4.4で同じ現象にはまりました。 -- teanan
- お知らせありがとうございます :) 手元では ref(filename,right) のような組み合わせで確認していたのですが、固定文字列でないオプションのチェックが抜けている様ですね。簡単に修正できるかと思ったら、refプラグインの内部では拡大率(50%など)のオプションを判定している所だけ、オプション判定をする部分と同じ場所にはない様です。ちょっと考えないといけません -- henoheno