refプラグインで画像のリンク先を指定可能に

  • ページ: BugTrack
  • 投稿者: 三浦克介
  • 優先順位: 低
  • 状態: 却下
  • カテゴリー: プラグイン
  • 投稿日: 2003-07-07 (月) 18:55:10
  • バージョン:

メッセージ

画像のサムネールを表示し、クリックしたら拡大画像を表示したい場合、

[[http://hogehoge/thumb.jpg>http://hogehoge/larege.jpg]]

のようにすれば実現可能だが、添付ファイルをリンク先にしたり、テキストの回り込みをしたり、といったことはできない(と思われる)。refプラグインで、画像のリンク先として、別のURLや添付ファイルを指定できると良さそうである。


という訳で、このような改造を考えてみました fileBugTrack417a.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 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 で書かれているのは拝見したのですが、その方法では、添付ファイルをリンク先にしたり、テキストを回りこませたりすることができなかったので、作ってんみたのですが、できます? -- 三浦克介 2003-07-07 (月) 20:00:59
    [[&ref(small.jpg,around,nolink);>&ref(large.jpg);]]
    テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。
    テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。
    テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。
    テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。
    [[small.jpg>large.jpg]] テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。 テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。 テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。 テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。
  • あと、ブラケットと &ref の組み合わせで可能だとしても、ちょっとトリッキーかなと思ったので。BugTrack/379morikawa さんも「思いつかなかった」と述べていらっしゃいますし。 -- 三浦克介 2003-07-07 (月) 20:10:20
  • お、添付ファイルを参照するのは、こうですね? -- 三浦克介 2003-07-07 (月) 20:16:30
    [[&ref(small.jpg,around,nolink);>http://pukiwiki.sourceforge.jp/dev/?cmd=attach&openfile=large.jpg&refer=BugTrack/417]]
    small.jpgやはり、一般ユーザーレベルでは、無理なのでは? それと、テキストの回り込みはできませんよね?

large.jpg

テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。 テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。 テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。 テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。テキストの回りこみ。

  • ↑#ref(large.jpg,left,around,17%) とされていますが、縮小率を設定した場合、全画像データがブラウザに転送され、ブラウザで縮小処理がなされます。拡大画像を見る必要の無い人に対しても、多量のデータが送信されますので、トラフィックの無駄だと思います。特に、多数の画像を張り込んだアルバムのようなページは激重になります。さらに、ブラウザの画像縮小アルゴリズムは、単純なサンプリングアルゴリズムの場合が多く、縮小画像がギザギザした物になります。 -- 三浦克介 2003-07-07 (月) 21:24:23
    circle_large.png

    ←#ref(circle_large.png,left,around,20%) により表示。ブラウザにより違いますが、たいていは、ギザギザした画像になっていると思います。特に中央部は、崩れて見えるブラウザが多いと思います。

    circle_small.png

    ←まっとうなアルゴリズムで縮小した物を ref(circle_small.png,left,around) で表示。中央部の崩れはありません。

    #img(): File not found:
  • 需要が低いようなので、却下。 -- 三浦克介 2003-07-29 (火) 18:20:33
  • 久しぶりに投稿します。状態は却下ですが、最新リビジョンのref.inc.php(r1.50)に対するパッチを作成しましたので、以下に掲載します。r1.24以降なら適用可能と思います。 -- 三浦克介 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;
    +				}
     			}
     		}
    

添付ファイル: filecircle_small.png 884件 [詳細] filecircle_large.png 959件 [詳細] filelarge.jpg 2719件 [詳細] filesmall.jpg 366件 [詳細] fileBugTrack417a.diff 1077件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-07-24 (金) 01:34:51
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.464 sec.

OSDN