バージョン | 1.4 |
---|---|
投稿者 | rendezvous |
状態 | 完了 |
投稿日 | 2003-09-02 (TUE) 13:51:23 |
pukiwikiにて、アフィリエート業者のタグを張りたいのですがhtmlの編集が許されていないので貼れません。できれば、htmlを編集できるか、strip_htmltagを無効化できるプラグインがあるとうれしいのですが。。。過去にはshowhtmlプラグインがあったようなのですが、フルセット見つけることができなかったので、もしよろしければお願いいたします。
showhtmlプラグインは、1.4で動くのかなぁ?... ただ、htmlをそのまま貼れるとセキュリティの穴になる可能性が高いのと著作権の問題を提起する場合があるなど問題になる可能性があるので、アフィリエートなどは、skinに組み込んでしまわれる方が当面の対策としてはいいかもしれません。ファイルはpukiwiki.skin.ja.phpになります。ヘッダー部やフッター部に常に表示できるので効果も高いかと...
お呼びですので、出てきました。構文を無視しているものの、1.4で動いています。そのうち貼らなきゃなぁ。と思いつつ、html を無理矢理表示させているので、1.4になってしまうと、厳しいですよねぇ。と。
まず、過去の自作プラグインリスト/showhtmlの説明によりますと「他サイトのWebページを、PukiWiki内で奇麗に表示するプラグイン」とのことなので、今回の主旨の用途とは違うもののようです。次に、もしhtmlがそのまま貼れるプラグインがあったとすると、merlinさんの言う通り穴になりがちだったり、XML準拠じゃないタグが書けたりすると画面が真っ白になってアクセス不能に出来たりと、何かいやなことがいくらでも起こせそうな危険なものになりそうです。skinに埋め込むのがベストだと思います。
あるいは、引数に広告IDを付けて呼び出すアフィリエート専用プラグインがあれば安全かもしれません。確かバナー自体もリンクで読み込んでたと思うので、おそらく広告IDさえ分かれば、どんな業者の広告でもアフィリエートのタグが記述できるんじゃないでしょうか?
なんか広告IDなんて生易しいものではなさそうです。やたら長い文字列を3つくらい指定しないといけないみたいですね。これは引数としては現実的ではないかも。
一般的に全ページに貼るようなアフィリエート業者のタグだと、skinに仕込むことで解決するのですが、実際は、各個別ページでそれぞれ個別のアフィリエートタグを貼るといった用途が多いかと。ただ、「誰でも編集できる」といった部分からセキュリティー上の穴となるのも問題ですのでどうすればいいか少し考えて見ます。アムアム。
少し発想を変えてみると、アフィリエート業者のタグで多く使用されるのは<a>と<img>ですので、これをstrip_htmltagでstripする、しないがhtml.phpか、pukiwiki.ini.php中の設定として選べるとうれしいです(もしくはstripしないタグを設定できる)。自分はプログラムできないので、このようなお願いばかりとなってしまい恐縮です。
<a>と<img>だけですと、[[<画像URL>:<リンクURL>]]を駆使すれば対応できるかもしれません。例えば以下のような感じで。実際にはだらだらとパラメータがひっつくと思いますが、いかがでしょうか?画像がcgiだった場合は大丈夫かなぁ。。。
[[http://pukiwiki.sourceforge.jp/pukiwiki1.4/image/pukiwiki.gif:http://pukiwiki.sourceforge.jp/]]【表示例】
画像のURLの拡張子がgif、png、jpg、jpegの場合なら問題ないですけどね…。cgiから呼ばれている場合だとただのリンクになっちゃうでしょう。
画像拡張子でないcgi等を画像として表示する(<img>)方法はあるのでしょうか?どうやってもうまくいかないので。
こんなのを発見質問箱/188(欲しいプラグイン/23)とかdev:BugTrack/52とか。うぐぐ、もしかして許されてない!?
画像の拡張子が.gifでおわるといいんですが、多くの場合hoge.gif74FJEGLL79G とかついたりしているんですよね。プラグインとは離れてしまいますが、WalWikiの設定のようなのだといいのですが。サンプルのアフィリエート業者タグは↓みたいなかんじです
<A HREF="http://px.a8.net/svt/ejp?a8mat=ICRXD+96FLIQ+K+ZSD6A" target="_blank">A8.net</A> <img border="0" width="1" height="1" src="http://ad.a8.net/0.gif?a8mat=ICRXD+96FLIQ+K+ZSD6A" alt="Click Here!">
PukiWikiのソース内で画像ファイルの拡張子をチェックしている
preg_match("/\.(gif|png|jpe?g)$/i",$name))となっている部分を
preg_match("/\.(gif|png|jpe?g|gif\?.*)$/i",$name))に変更すればうまくいくかな。穴になりかねないので、個別対応ということになるでしょうが。
該当するファイルはref.inc.php、img.inc.php、make_link.php、attach.inc.phpなど。
ご参考→「dev:BugTrack/460」ref.inc.phpで画像CGI等を表示できるようにする提案です。
おお!ありがとうございます。早速やってみます。
やってみました。でも、file:// 問題とか、コピペするだけでいいとかありますので、できれば、ページ指定でhtmlタグを全面使用可能になるといいなぁ。でも無理ですよね。ごめんなさい。独り言です。
ちなみに、上のアフィリエート業者タグのサンプルですが、<img>タグを<img ... />と記載しておかないと、XHTML準拠じゃないので画面が真っ白(内容が空)になって、ブラウザからの修正が効かなくなったりすることがあります。自分が管理できるサイトならFTP等で対処できますが、ちょっとした油断で、もし自分が管理できないサイトでこれをやってしまうと取り返しが付かなくなったり…。とても怖いです。任意のタグが入れられる機能を公開することはとても恐ろしいのです。もちろんセキュリティホールになってクラッキングを受けやすくしてしまうという怖さもあります。
もし「dev:BugTrack/460」のような拡張ref.inc.phpを用いれば、上記のサンプルだと、下記のように使うことが出来ます。ただし、一つ問題があるのですが、1回画像を表示する毎に2回アクセスされてしまいます。考えれば当然でしたが、カウンターのような画像CGIではとっても気になるでしょうね。
[[A8.net:http://px.a8.net/svt/ejp?a8mat=ICRXD+96FLIQ+K+ZSD6A]] #ref(http://ad.a8.net/0.gif?a8mat=ICRXD+96FLIQ+K+ZSD6A,img,1x1)
ありがとうございます。確かにstrictな判定しかできないようなブラウザで閲覧していて真っ白になってしまうのは怖いですね。ただ、一方でamazonなどでも、iframeを使用するタグがあったりとアフィリエートの自由度とPukiwikiの安全性を両立させるのは非常にむずかしいですね。
ブラウザのせいではないのです。XML準拠じゃないと、たぶんPukiWikiがブラウザへ内容を出力しないのです(ソースを見てもわずかなタグしか見れない)。だからお手上げになるわけです。
なるほどー。そういうことだったんですね。かなりよくわかりました。ありがとうございます。
amazonのライブリンクをPukiWiki 1.4に導入する場合の方法は、dev:PukiWiki/Plug-inの仕様を参照。
それで、お願いしてばかりではダメなのと申し訳ないのと、実はいい機会なのかもしれないので、ちょっと自分用(個人用)のプラグインを作ってみようかとおもいます。完全な素人なので、まずは#xxxx の呼び出し毎に1種類のタグデータ(例:hello world)を返すだけのものを作ってみて、動作確認しましたが(素人が故に)感動してしまったので、次は引数でプラグインファイル中に設定してある任意のタグを呼べるもの、最後に外部に保存してある任意のテキストファイル中の文字列を反映できるものまでもっていこうかと考えています。
おお、とうとうプラグインに手を染めましたか。面白いでしょ。私もそうやってはまってしまったのでした。頑張って下さい。本来PukiWIkiではそういったタグレベルを全く意識しなくてもかなりの表現力で記述できるのがよいところだったんですけどね。ユーザには「リンク」だとか「画像表示」だとかの機能だけ提供して、実際にどんなタグが使われているかは意識させないようなプラグインになることを望みます。
ありがとうございます。土日しか作業できなさそうなので、遅々とすると思いますが、めげずにがんばります。
「dev:BugTrack/460」に、更に改良した拡張ref.inc.phpを提案しておきました。「一旦ファイルに蓄えて、それが画像なら表示する」という動作になっています。これで画像CGIに1度に2回アクセスすることがなくなりました。例えば下記のような記述で、画像CGIを表示してリンクを貼ることが出来ます。アフィリエート業者の画像バナータグにも対応できると思います。
[[&ref(http://server/cgi-bin/aaa.cgi?params=xxx,img,nolink);:http://server/cgi-bin/bbb.cgi?params=yyy]]
ex.) [[http://example.org/counter/index.cgi?site=http://www.pukiwiki.sourceforge.jp/]]