**addline.inc.php [#hf1ea364]
|RIGHT:100|LEFT:360|c
|~サマリ|ボタンを押すと指定文字列を追加するプラグイン|
|~リビジョン|0.13|
|~対応バージョン|1.4|
|~投稿者|[[sha]]|
|~投稿日|&new{2003-07-30 (WED) 00:03:38};|
***概要 [#g2f88834]
-ボタンやリンクを押すと、設定ページで指定した文字列を追加。
-行単位の追加。インライン型は同じ行内での文字列単位で追加も可能。
-ボタンやリンクの表記も変更可。

#contents
***説明 [#jd53c853]
-画面のボタンを押すと、「:config/plugin/addline/設定」で、あらかじめ指定された文字列を追加します。
-テーブルのフィールドを追加したりするのに便利です。[[自作プラグイン/attachref.inc.php]]と一緒に使うと、画像ギャラリーっぽい雰囲気のページが作れます。
-XHTML1.1 validation check済み
***使用法 [#zeadc534]
ブロック型プラグイン/インライン型プラグイン~
-引数の仕様~
 #addline(設定名,[above|below|up|down|btn:<ボタン名>|ltext:<左テキスト>|rtext:<右テキスト>])
 &addline(設定名,[before|after|above|below|up|down]){<リンク名>};
-引数の意味~
 設定名: 「:config/plugin/addline/設定名」の指定
 above|below|up|down: #commentと同じで、追加するのがボタンの上か下かの指定
 btn: submitボタンに付ける名前
 ltext,rtext: submitボタンの左右につけるテキスト
 before,after: インライン型の場合に、追加するのがリンクの前(左)か後(右)の指定
%%&color(red){【注意】};このインライン型でリンク名を変更する「{...}」引数を使った場合は、1行に1つの&amp;addlineのみ用いてください。1行に複数書くと挿入する場所を間違えます。現在のPukiWikiが原因のようです%%~
↑「[[cvs:make_link.php]]のv1.54以降」で対応済み([[dev:BugTrack/441]]参照)。
***使用例 [#o612ecf3]
:ブロック型|
例えば、以下のように#addlineを用意すると、「add」ボタンを押す毎に、テーブルの下に''設定に記載した内容が''追加されていきます。任意の位置に添付&参照できる[[自作プラグイン/attachref.inc.php]]と組み合わせると、ほら何か楽しそうでしょ?~
ページ内での記載例とボタンを2回押した結果
 |&attachref(,zoom,90x90);|&attachref(,zoom,90x90);|&attachref(,zoom,90x90);|
 |&attachref(,zoom,90x90);|&attachref(,zoom,90x90);|&attachref(,zoom,90x90);|
 #addline(テーブル1,above)
「:config/plugin/addline/テーブル1」の内容
 |&attachref(,zoom,90x90);|&attachref(,zoom,90x90);|&attachref(,zoom,90x90);|

#hr
:インライン型|
棒グラフ型簡易投票とか。~
 CENTER:「納豆は好きですか?」~
 &addline(グラフ,before){【は い】};▲&addline(グラフ,after){【いいえ】};~
「:config/plugin/addline/グラフ」の内容
 &heart;
【表示例】~
CENTER:「納豆は好きですか?」~
&heart;&heart;&heart;&heart;&heart;【は い】▲【いいえ】&heart;&heart;~

#hr
:インライン型2|
''addline.inc.php.8''からインライン型にも''above|below|up|down''が指定できるようになりました。テーブル内に記述できるようになっただけでなく、クリックするリンクによって追加する行の内容を変えられます。下記は、[ハート追加]を1回、[リンク追加]を1回クリックした例。
 |>|>|CENTER:~&addline(テーブル1,down){[リンク追加]};&addline(テーブル2,down){[ハート追加]};|
 |&attachref(,zoom,90x90);|&attachref(,zoom,90x90);|&attachref(,zoom,90x90);|
 |&heart;|&heart;|&heart;|
【表示例】~
|>|>|CENTER:~[リンク追加][ハート追加]|
|[添付]|[添付]|[添付]|
|&heart;|&heart;|&heart;|
「:config/plugin/addline/テーブル2」の内容
 |&heart;|&heart;|&heart;|
***ダウンロード [#seba858a]
-ここに添付しました。御利用下さい。~
-&ref(addline.inc.php.13); ←提供中
|CENTER:||c
|リビジョン|内容|h
|v0.13|XHTML1.1 validation check済み|
|v0.12|debug/ページ名が文字化け|
|v0.11|debug/コメント行「//...」対応|
|v0.10|debug/リンク名指定にバグ|
|v0.9|ブロック型をセンタリング。引数位置無視。debug用秘密引数|
|v0.8|インライン型に''above,below,up,down''引数を追加|
|v0.7|debug/configファイルが無いときにエラー出力|
|v0.6|debug/いっぱい(動作確認)|
|v0.5|整形済みテキスト対応(動作未確認)|
|v0.4|インライン型対応(動作未確認)|
|v0.3|ボタンの名前変更など対応|
|v0.2|:configファイル対応|
|v0.1|comment.inc.phpを利用して新規作成|
//***アンケート [#u8820470]
//-このプラグインを使用していますか?一人1回のみ投票して下さい。
//#vote(使用している[138])
//-''addline''プラグインに満足しておりますか?
//#vote(はい[35],いいえ[12])
//-「いいえ」に投票した方に質問です。~
//どのような修正を加えれば、よくなると思いますか?下記のコメントに記入して下さい。
***コメント [#g3355316]
-[[sha]] &new{2003-07-30 (WED) 00:53:42};
~バグ発見。1ページ内に複数の#addlineを使うと、&amp;attachref;は、#addline内の&amp;attachref;までカウントして場所を間違えます。場合によっては、#addline内の&amp;attachref;まで置き換えてしまいます。これはどう対処したらよいのでしょうか???うまいこと、#addline内の&amp;attachre;をquoteできればいいのですが、こういうときの一般的な方法はどうしたらよいのでしょうか?
-[[sha]] &new{2003-07-30 (WED) 01:06:06};
~同じバグが原因で、#addlineのbelowオプションは使わないで下さい。
-[[sha]] &new{2003-07-30 (WED) 01:17:13};
~「:config/plugin/addline/名前」とかで設定すればいいのかな?そうすれば複数行の追加を1度に出来るように書けるかもしれないし。。。でも、実装の仕方が分からない。。。
--[[sha]] &new{2003-07-30 (WED) 13:15:54};
~tracker.inc.phpを参考にして、そんな感じでやってみました。仕様変更。上のバグが解消したようです。
-[[nao-pon]] &new{2003-08-02 (SAT) 15:59:42};
~オプションでボタンに表示するテキストを指定できるようにしてはいかがでしょう。 :)&br;例えば・・・ btn:この上に行追加 とか。
~こんな感じかな。(ついでに up と down も指定可能にしてあります。 :p )
    $btn_text = $_addline_messages['btn_submit'];
    if ( func_num_args() ){
        foreach ( func_get_args() as $opt ){
            if ( $opt === 'above' || $opt === 'up' ){
                $above = 1;
            }
            else if (preg_match("/btn:(.+)/i",$opt,$args)){
                $btn_text = htmlspecialchars($args[1]);
            }
            else if ( $opt === 'below' || $opt === 'down' ){
                $above = 0;
            }
            else {
                $configname = $opt;
            }
        }
    }
    
    $s_page = htmlspecialchars($vars['page']);
    
    $string = <<<EOD
 <form action="$script" method="post">
  <div>
   <input type="hidden" name="addline_no" value="$addline_no" />
   <input type="hidden" name="refer" value="$s_page" />
   <input type="hidden" name="plugin" value="addline" />
   <input type="hidden" name="above" value="$above" />
   <input type="hidden" name="digest" value="$digest" />
   <input type="hidden" name="configname"  value="$configname" />
   <input type="submit" name="addline" value="$btn_text" />
  </div>
 </form>
 EOD;
-[[sha]] &new{2003-08-02 (SAT) 16:35:14};
~追加してみました。''addline.inc.php.3''の動作確認をしてみてください(私は週末は動作確認できないので)。ついでに、submitボタンの左右のテキストも''ltext:<左テキスト>, rtext:<右テキスト>''で指定できるようにしたつもりです。インライン型プラグインにするという手もあるんですけどね。
-[[nao-pon]] &new{2003-08-02 (SAT) 18:08:36};
~そうですね。ブロック型プラグインで呼び出したときは、フォームを表示して、インラインで呼び出したときは、テキストにリンクをつけるというのもいいかも。&br;&amp;addline(パラメーター){テキスト}; というような感じかな。
-[[sha]] &new{2003-08-02 (SAT) 22:56:18};
~というわけで作ってみました。''addline.inc.php.4''。例によって動作未確認です。
-[[sha]] &new{2003-08-03 (SUN) 02:24:07};
~debugです。''addline.inc.php.5''を添付。整形済みテキスト対応。動作未確認。ちなみに、ブロック型とインライン型で動作を変えてしまいました。ブロック型が行の追加なのに対して、インライン型は行内のテキスト追加を意識しています。これで、また違った使い方が出来そうです。例えば、棒グラフ型の投票とか。
-[[sha]] &new{2003-08-03 (SUN) 07:22:59};
~動作確認してdebugしました。''addline.inc.php.6''を御利用下さい。(これを機会に自分でPukiWIkiが使える環境を用意してみました。)
-[[merlin]] &new{2003-08-03 (SUN) 12:48:28};
~[[addline.inc.php.6 動きました。>merlin:Plugin/Demo/addline.inc.php]] config ペ-ジに該当ペ-ジが無いときの動作ですが 今は 何も起こらないですけど エラ-吐いた方がいいのかなぁ?
-[[sha]] &new{2003-08-03 (SUN) 14:44:54};
~あ、エラーが出てませんね。plugin_xxx_convert()とplugin_xxx_action()ではreturnで返す値の型が違うんですね。エラー出力で失敗していたようです。というわけで、エラー出力のdebugして、''addline.inc.php.7''にしました。
-[[sha]] &new{2003-08-03 (SUN) 22:37:17};
~インライン型で不具合発見。同じ行にある&amp;addline;の順番がめちゃめちゃ。なぜ?左端から順に呼ばれるんじゃないのか?
--[[sha]] &new{2003-08-03 (SUN) 23:53:27};
~症状がわかった。「{...}」で引数を書くと、インライン型の呼ばれる順番が変わるんだ!なんだそりゃ!?これだと、''attachref.inc.php''でも同様の現象が起こってしまう!
--[[sha]] &new{2003-08-05 (TUE) 18:36:24};
~この症状に関してはPukiWikiの問題で、「[[cvs:make_link.php]]のv1.54以降」にて対応されました。「[[dev:BugTrack/441]]」を参照のこと。
-[[sha]] &new{2003-08-05 (TUE) 22:35:54};
~''addline.inc.php.8''でインライン型でもabove,below指定が出来るようになりました。同じ行の位置に対して、クリックするリンクによって追加する内容を変えられます。
-[[sha]] &new{2003-08-11 (MON) 01:53:59};
~懸案事項としては、現在は文字列をそのままページに書き出しているけど、1回評価した結果をページに書き出すモードがあるといいかも。引数にevalとかつけて。呼び出される度に表記が変わるプラグインなどで、表記を固定することができるかと思って。randommes.inc.phpとか。
-[[sha]] &new{2003-08-11 (MON) 04:47:16};
~懸案事項2としては、自分自身を書き換えるoverride機能かな?押すと&amp;addline;自身が指定した文字列と置き換わるのです。何かに使えるかな?
- ページが凍結されていても文字列を追加(ページを更新)できてしまうのは仕様なのでしょうか? --  &new{2006-01-24 (火) 19:55:18};
- ページ凍結は編集できないようにするのであってそのページの機能を無効にするものではありません。 --  &new{2006-01-24 (火) 20:09:57};
- 了解しました。凍結時はaddlineが無効になるのを期待していたので残念です。 --  &new{2006-01-26 (木) 03:01:43};
- プラグインの中を見ていませんが、数行加えると凍結時に更新できなくなるはずです(( $vars が変数に代入されている場合はそちらで構いません ))。 -- [[0]] &new{2006-01-28 (土) 16:40:52};
++ plugin_addline_convert
 if (PKWK_READONLY || is_freeze($vars['page'])) {
 	return;
 }
++ plugin_addline_action
 if (PKWK_READONLY || is_freeze($vars['refer')) {
 	return array('msg' => 'err.', 'body' => "<p>freeze or READONLY</p>");
 }
- 興味深い状況ですが、このページにおけるvoteプラグインの「使用している」ボタンは、かなり前からスパム送信(側の動作テスト目的か何か)のために使用されている様です。voteプラグインを叩いたIPアドレスで過去の更新通知メールを検索すると、過去にスパムしか送信した事のないIPに行き当たる、ということで追認する事ができます。これを上手くブロックできる仕組みを考えないと、ブロックすることはできないでしょう。 -- [[henoheno]] &new{2006-11-29 (水) 22:16:29};
- スパムにつきコメントをコメントアウト -- [[]] &new{2006-12-19 (火) 02:17:45};
-- ありがとうございます。ただ、ここ数日増えている彼らはcomenntプラグインを使った「かのように再編集したテキスト」を貼り付けているんですよ (^^; 。なので comment プラグインに関する操作は効果がありません。こちらがもう少しうまいことやらないと、また来るでしょう (なおcommentプラグインを経由してきているものについては大半をブロックしています) -- [[henoheno]] &new{2006-12-19 (火) 23:18:43};

//#comment

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.078 sec.

OSDN