BugTrack/2328
の編集
Top
/
BugTrack
/
2328
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
* interwikiで画像CGIを埋め込むhack [#a4c87da8] - ページ: [[BugTrack2]] - 投稿者: [[pai]] - 優先順位: 低 - 状態: 保留 - カテゴリー: その他 - 投稿日: 2009-12-09 (水) 00:25:52 - バージョン: 1.4.7 ** 概要 [#kd609d28] 渡されたパラメータから画像を生成するCGIに、InterWikiを使用してパラメータを渡そうというhackです。 ** 変更点 [#g04d6002] --- make_link_091208.php 2009-12-08 23:46:47.898723100 +0900 +++ make_link.php 2009-12-09 00:20:51.576164200 +0900 @@ -186,7 +186,7 @@ $this->body = $body; $this->type = $type; if (! PKWK_DISABLE_INLINE_IMAGE_FROM_URI && - is_url($alias) && preg_match('/\.(gif|png|jpe?g)$/i', $alias)) { + is_url($alias) && preg_match('/\.(gif|png|jpe?g)(\?|$)/i', $alias)) { $alias = '<img src="' . htmlspecialchars($alias) . '" alt="' . $name . '" />'; } else if ($alias != '') { if ($converter === NULL) @@ -522,6 +522,9 @@ $script . '?' . rawurlencode('[[' . $name . ':' . $this->param . ']]') : htmlspecialchars($url); + if (preg_match('/\.(gif|png|jpe?g)(\?|$)/i', $url)) + $alias = $this->url; + return parent::setParam( $page, htmlspecialchars($name . ':' . $this->param), ** 使い方 [#b8a2c731] + まず、InterWikiNameのページに以下のような定義を置きます(diagram.phpが、画像生成CGIです) [http://localhost/diagram.php/.png? diagram] euc + 使いたいページで、以下のように記述します [[diagram:message ここに書いたテキストが渡されます]] + すると以下のようなhtmlが出力されます(:以降が、URLエンコードされて渡されています) <a href="http://localhost/diagram.php/.png?message%20%A4%B3%A4%B3%A4%CB%BD%F1%A4%A4%A4%BF%A5%C6%A5%AD%A5%B9%A5%C8%A4%AC%C5%CF%A4%B5%A4%EC%A4%DE%A4%B9" title="diagram:message ここに書いたテキストが渡されます" rel="nofollow"><img src="http://localhost/diagram.php/.png?message%20%A4%B3%A4%B3%A4%CB%BD%F1%A4%A4%A4%BF%A5%C6%A5%AD%A5%B9%A5%C8%A4%AC%C5%CF%A4%B5%A4%EC%A4%DE%A4%B9" alt="diagram:message ここに書いたテキストが渡されます" /></a> ** 関連項目 [#q4282e5f] - [[BugTrack/108]] 画像にリンクを貼りたい - [[BugTrack2/247]] 外部リンクをリダイレクトページ経由にすることで、Refererを消す -- これとは両立しません。 ** メッセージ [#pb8da790] -------- - 差分の後半部分、$alias に代入するべきなのは$this->url ではなく$url なのでは?& を含むURL だった場合に、& → &amp; → &amp;amp; へと2重置き換えされてしまうような気が・・・。&br;あと、互換性がないような現状の提案では、1.4.x の間は採用見送りになってしまいそう。(AutoLink 有効 → 無効 に変更した時と同じ規模のページデータの書き換えを、アップグレード時に強制してしまう可能性((test.png?size=300x400 みたいなパラメータつきのリンクを、InterWiki 使って可変生成している人がいれば、ですけど・・・)) があるため) -- &new{2009-12-09 (水) 02:37:45}; --- ありがとうございます。$urlについては確認します。互換性については、[http://www.something.com/image/$1/0001.jpeg something-image]のような、クエリでない使い方をしている人がいる可能性はあります。InterWikiName側で、埋め込み画像であることを明示した方がスマートかも知れません。 -- [[pai]] &new{2009-12-11 (金) 21:43:40}; - 関連?: [[BugTrack/460]] -- &new{2009-12-23 (水) 19:30:47}; //#comment
タイムスタンプを変更しない
* interwikiで画像CGIを埋め込むhack [#a4c87da8] - ページ: [[BugTrack2]] - 投稿者: [[pai]] - 優先順位: 低 - 状態: 保留 - カテゴリー: その他 - 投稿日: 2009-12-09 (水) 00:25:52 - バージョン: 1.4.7 ** 概要 [#kd609d28] 渡されたパラメータから画像を生成するCGIに、InterWikiを使用してパラメータを渡そうというhackです。 ** 変更点 [#g04d6002] --- make_link_091208.php 2009-12-08 23:46:47.898723100 +0900 +++ make_link.php 2009-12-09 00:20:51.576164200 +0900 @@ -186,7 +186,7 @@ $this->body = $body; $this->type = $type; if (! PKWK_DISABLE_INLINE_IMAGE_FROM_URI && - is_url($alias) && preg_match('/\.(gif|png|jpe?g)$/i', $alias)) { + is_url($alias) && preg_match('/\.(gif|png|jpe?g)(\?|$)/i', $alias)) { $alias = '<img src="' . htmlspecialchars($alias) . '" alt="' . $name . '" />'; } else if ($alias != '') { if ($converter === NULL) @@ -522,6 +522,9 @@ $script . '?' . rawurlencode('[[' . $name . ':' . $this->param . ']]') : htmlspecialchars($url); + if (preg_match('/\.(gif|png|jpe?g)(\?|$)/i', $url)) + $alias = $this->url; + return parent::setParam( $page, htmlspecialchars($name . ':' . $this->param), ** 使い方 [#b8a2c731] + まず、InterWikiNameのページに以下のような定義を置きます(diagram.phpが、画像生成CGIです) [http://localhost/diagram.php/.png? diagram] euc + 使いたいページで、以下のように記述します [[diagram:message ここに書いたテキストが渡されます]] + すると以下のようなhtmlが出力されます(:以降が、URLエンコードされて渡されています) <a href="http://localhost/diagram.php/.png?message%20%A4%B3%A4%B3%A4%CB%BD%F1%A4%A4%A4%BF%A5%C6%A5%AD%A5%B9%A5%C8%A4%AC%C5%CF%A4%B5%A4%EC%A4%DE%A4%B9" title="diagram:message ここに書いたテキストが渡されます" rel="nofollow"><img src="http://localhost/diagram.php/.png?message%20%A4%B3%A4%B3%A4%CB%BD%F1%A4%A4%A4%BF%A5%C6%A5%AD%A5%B9%A5%C8%A4%AC%C5%CF%A4%B5%A4%EC%A4%DE%A4%B9" alt="diagram:message ここに書いたテキストが渡されます" /></a> ** 関連項目 [#q4282e5f] - [[BugTrack/108]] 画像にリンクを貼りたい - [[BugTrack2/247]] 外部リンクをリダイレクトページ経由にすることで、Refererを消す -- これとは両立しません。 ** メッセージ [#pb8da790] -------- - 差分の後半部分、$alias に代入するべきなのは$this->url ではなく$url なのでは?& を含むURL だった場合に、& → &amp; → &amp;amp; へと2重置き換えされてしまうような気が・・・。&br;あと、互換性がないような現状の提案では、1.4.x の間は採用見送りになってしまいそう。(AutoLink 有効 → 無効 に変更した時と同じ規模のページデータの書き換えを、アップグレード時に強制してしまう可能性((test.png?size=300x400 みたいなパラメータつきのリンクを、InterWiki 使って可変生成している人がいれば、ですけど・・・)) があるため) -- &new{2009-12-09 (水) 02:37:45}; --- ありがとうございます。$urlについては確認します。互換性については、[http://www.something.com/image/$1/0001.jpeg something-image]のような、クエリでない使い方をしている人がいる可能性はあります。InterWikiName側で、埋め込み画像であることを明示した方がスマートかも知れません。 -- [[pai]] &new{2009-12-11 (金) 21:43:40}; - 関連?: [[BugTrack/460]] -- &new{2009-12-23 (水) 19:30:47}; //#comment
テキスト整形のルールを表示する