#author("2021-11-06T17:36:39+09:00","","") *refプラグインで画像のリンク先を指定可能に [#vd47dbb1] -ページ: BugTrack -投稿者: [[三浦克介]] -優先順位: 低 -状態: 却下 -カテゴリー: プラグイン -投稿日: 2003-07-07 (月) 18:55:10 -バージョン: **メッセージ [#nd437e32] 画像のサムネールを表示し、クリックしたら拡大画像を表示したい場合、 [[http://hogehoge/thumb.jpg>http://hogehoge/larege.jpg]] のようにすれば実現可能だが、添付ファイルをリンク先にしたり、テキストの回り込みをしたり、といったことはできない(と思われる)。refプラグインで、画像のリンク先として、別のURLや添付ファイルを指定できると良さそうである。 ---- という訳で、このような改造を考えてみました &ref(BugTrack417a.diff);(refプラグ印のリビジョンがr1.24以降の場合は、本ページ最後のパッチを適用してください)。 #ref(添付ファイル or URL,パラメータ,タイトルおよびリンク先 or URL) &ref(添付ファイル or URL,パラメータ,タイトルおよびリンク先 or URL); 例えば、 #ref(http://hogehoge/small.jpg,around,http://hogehoge/large.jpg,サンプル画像) とすると、テキスト回り込み有りで small.jpg が表示され、画像をクリックすると large.jpg が表示されます。 ただ、refプラグインは複雑なので、いろいろとエンバグしていそうな気が・・・。 ---- -画像のリンク先を別のURLや添付ファイルを指定するのは、現状のままでできますよ。 -- [[reimy]] &new{2003-07-07 (月) 19:47:53}; [[&ref(http://hogehoge/thumb.jpg,nolink);>http://hogehoge/larege.jpg]] [[&ref(http://hogehoge/small.jpg,nolink,サンプル画像);>http://hogehoge/large.jpg]] -[[reimy]] さんが [[BugTrack/379]] で書かれているのは拝見したのですが、その方法では、添付ファイルをリンク先にしたり、テキストを回りこませたりすることができなかったので、作ってんみたのですが、できます? -- [[三浦克介]] &new{2003-07-07 (月) 20:00:59}; [[&ref(small.jpg,around,nolink);>&ref(large.jpg);]] テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。 テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。 テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。 テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。 [[&ref(small.jpg,around,nolink);>&ref(large.jpg);]] テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。 テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。 テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。 テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。 -あと、ブラケットと &ref の組み合わせで可能だとしても、ちょっとトリッキーかなと思ったので。[[BugTrack/379]] で [[morikawa]] さんも「思いつかなかった」と述べていらっしゃいますし。 -- [[三浦克介]] &new{2003-07-07 (月) 20:10:20}; -お、添付ファイルを参照するのは、こうですね? -- [[三浦克介]] &new{2003-07-07 (月) 20:16:30}; [[&ref(small.jpg,around,nolink);>http://pukiwiki.sourceforge.jp/dev/?cmd=attach&openfile=large.jpg&refer=BugTrack/417]] [[&ref(small.jpg,around,nolink);>http://pukiwiki.sourceforge.jp/dev/?cmd=attach&openfile=large.jpg&refer=BugTrack/417]]やはり、一般ユーザーレベルでは、無理なのでは? それと、テキストの回り込みはできませんよね? ---- #ref(large.jpg,left,around,17%) ~テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。 テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。 テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。 テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。 -↑#ref(large.jpg,left,around,17%) とされていますが、縮小率を設定した場合、全画像データがブラウザに転送され、ブラウザで縮小処理がなされます。拡大画像を見る必要の無い人に対しても、多量のデータが送信されますので、トラフィックの無駄だと思います。特に、多数の画像を張り込んだアルバムのようなページは激重になります。さらに、ブラウザの画像縮小アルゴリズムは、単純なサンプリングアルゴリズムの場合が多く、縮小画像がギザギザした物になります。 -- [[三浦克介]] &new{2003-07-07 (月) 21:24:23}; #ref(circle_large.png,left,around,20%) ~←#ref(circle_large.png,left,around,20%) により表示。ブラウザにより違いますが、たいていは、ギザギザした画像になっていると思います。特に中央部は、崩れて見えるブラウザが多いと思います。 #ref(circle_small.png,left,around) ~←まっとうなアルゴリズムで縮小した物を ref(circle_small.png,left,around) で表示。中央部の崩れはありません。 #img(,clear) -需要が低いようなので、却下。 -- [[三浦克介]] &new{2003-07-29 (火) 18:20:33}; - 久しぶりに投稿します。状態は却下ですが、最新リビジョンのref.inc.php(r1.50)に対するパッチを作成しましたので、以下に掲載します。r1.24以降なら適用可能と思います。 -- [[三浦克介]] &new{2009-07-24 (金) 00:27:04}; Index: plugin/ref.inc.php =================================================================== RCS file: /cvsroot/pukiwiki/pukiwiki/plugin/ref.inc.php,v retrieving revision 1.50 diff -u -r1.50 ref.inc.php --- plugin/ref.inc.php 24 Feb 2006 01:35:34 -0000 1.50 +++ plugin/ref.inc.php 23 Jul 2009 16:33:16 -0000 @@ -300,8 +300,30 @@ } else if (preg_match('/^([0-9.]+)%$/', $arg, $matches) && $matches[1] > 0) { $params['_%'] = $matches[1]; + } else if($is_image && is_url($arg)) { + // 画像で、拡張パラメータが URL なら、リンク + $url2 = htmlspecialchars($arg); } else { - $_title[] = $arg; + // ファイル名にページ名(ページ参照パス)が合成されているか + // (Page_name/maybe-separated-with/slashes/ATTACHED_FILENAME) + if (preg_match('#^(.+)/([^/]+)$#', $arg, $matches)) { + if ($matches[1] == '.' || $matches[1] == '..') { + $matches[1] .= '/'; // Restore relative paths + } + $tmp_name = $matches[2]; + $tmp_page = get_fullname(strip_bracket($matches[1]), $page); // strip is a compat + } else { + $tmp_name = $arg; + $tmp_page = $page; + } + $tmp_file = UPLOAD_DIR.encode($tmp_page).'_'.encode($tmp_name); + if ($is_image && is_file($tmp_file)) { + // 画像で、拡張パラメータが添付ファイルなら、リンク + $url2 = $script . '?plugin=attach' . '&refer=' . rawurlencode($tmp_page) . + '&openfile=' . rawurlencode($tmp_name); // Show its filename at the last + } else { + $_title[] = $arg; + } } } //#comment