listbox.inc.php

サマリリストボックスプラグイン
リビジョン1.2
対応バージョン1.4
投稿者KaWaZ?
投稿日2003-10-06 (MON) 10:41:53

説明

  • 変更可能なリストボックスを表示するプラグインです。
  • インラインプラグインとして動作します*1
  • formによる改行の挿入などが起こらないよう作ってあるので、意図した通りにページデザインに組み込めます。

使用方法

第1引数に現在の値、第2引数以降にリストボックスの内容を指定します。

  • インライン型
    &listbox(いちご,りんご,いちご,みかん,秋刀魚,スイカ);
  • ブロック型【推奨】
    #listbox2(いちご,りんご,いちご,みかん,秋刀魚,スイカ)

デモ

以下のURLでプラグインの動作の確認が出来ます。

ダウンロード

  • filelistbox2.inc.php-1.2

    ボックス型プラグインにしてタグの不整合を無くしたものです。【推奨】

  • filelistbox.inc.php-1.5

    インライン型プラグインのままタグの不整合を無くしたものですが残っています。

    javascriptを使ってHTML/XHTMLの制限を回避しています回避できてません。

コメント

  • KaWaZ? 2003-10-06 (MON) 11:27:38

    bugtrack プラグインで状態や優先度の変更をするのにソース編集しなきゃいけないのが不満で、それを改善するための第一歩として作ってみました。

  • merlin 2003-10-06 (MON) 11:59:25

    面白いですね。こういうののスタイルはcssに分けた方がいいのかなぁ? とりあえずこっちでもデモ

  • KaWaZ? 2003-10-06 (MON) 15:46:00

    ネットスケープで上手く表示できない不具合があったので修正しました&ref(): File not found: "listbox.inc.php-1.3" at page "自作プラグイン/listbox.inc.php";。

  • sha 2003-10-07 (TUE) 01:06:50

    これはいいですね。www.kawaz.jpには行けませんでしたよ。Javascriptを使っているようですので、「ブラウザでJavascriptを有効にするように」と説明を付け加えておいてはどうでしょうか。

  • reimy 2003-10-07 (TUE) 01:11:50

    XHTML 1.1 Strictで not validになります。理由はインライン型プラグインにしているからです。インラインプラグインでは、XHTMLのブロックレベル要素は使用できません。XHTMLのインライン要素のみ使用できます。XHTMLのブロックレベル要素である<form>タグを使用するプラグインはブロック型プラグインでなければいけません。現状では下記のように出力されており、タグの不整合が発生しています。

    <p>
      <form action="http://www.kawaz.jp/pukiwiki/" method="post" style="display:inline;margin:0;">
        <select name="value" style="vertical-align:middle;" onchange="this.form.submit();">
          <option value='あべし' selected>あべし</option>
    (中略)
          <input type="hidden" name="number" value="13" />
          <input type="hidden" name="plugin" value="listbox" />
          <input type="hidden" name="refer" value="SandBox/listboxプラグインの試験" />
      </form>
    </p>

    <form>は<p>の子要素にはできません。<p>の子要素にできるのは、XHTMLのインライン要素のみです。

    <select>や<input>は<form>の子要素にはできません。<div>などを間に入れる必要があります。<form>を使用している他のブロック型プラグインのソースを参照してください。

    • merlin 2003-10-07 (TUE) 09:12:14

      そうかぁ ソース見てなんか変だと思ったのはそれだったんですね。ちゃんと勉強しなくちゃ..デモページにXHTMLチェックも入れよう。

  • KaWaZ? 2003-10-07 (TUE) 19:42:16

    ボックス型プラグインにした listbox2 と、インライン型プラグインのまま XHTML1 の不整合をなくしたバージョン 1.5 をアップロードしました。

    デモページでも書いていますが、僕としてはデザインや使い勝手上、lsitboxはインライン型プラグインとして実装したいのですが現在の PukiWiki ではそう実装しようとすると矛盾が起きてしまいどうするのが良いのか悩んでます。1.5 では、とりあえず javascript で回避してみました。

    • sha 2003-10-07 (TUE) 23:33:13

      可能かどうか確認していませんが、getメソッドを使ってプラグインのaction()へパラメータを引き渡せばJavascriptの中でも<form>を使わずに記述できませんか?

  • reimy 2003-10-08 (WED) 00:44:41

    listbox.inc.phpのインライン型プラグインのタグの不整合は直ってないです。

    <p>優先度:<script type="text/javascript">
    (中略)
    </script>
    <select style="vertical-align:middle;" onchange="plugin_listbox_onchange(0,this.value);">
      <option value='CVS待ち' selected='selected'>CVS待ち</option>
      <option value='完了'>完了</option>
      <option value='保留'>保留</option>
      <option value='却下'>却下</option>
    </select>
    </p>

    <p>タグは<select>を子要素にできません。<p>タグの中にインライン要素のタグしか子要素にできないのは、XHTML 1.1だけでなくXHTML 1.0/HTML 4.01のSctrict/Transitional/Frameset共通です。

    それとlistbox.inc.phpのブロック型プラグインの中でdisplay:inlineが指定されていますが、意味ないです。指定するのならdisplay:run-inです。但し、CSS2のプロパティなのでInternet Explorerではサポートされていません(代わりにInternet ExplorerではCSS3のdisplay:inline-blockがサポートされています)。そもそも個々の<input>タグを<div>で囲む必要はないです。<form>~</form>の子要素に<div>~</div>を置けば、<div>の子要素として好きな配置で複数の<input>や<select>を置けます(各<input><select>の間に改行が入らなくて済む)。

  • reimy 2003-10-08 (WED) 01:05:32

    1.4 rc3以降では、テーブルの各セルの中でブロック型プラグインが使用可能(dev:開発日記/2003-05-29)なので、trackerプラグインの中でブロック型プラグインのlistboxプラグインを指定することで、trackerプラグインによるbugtrackの「状態」や「優先度」の変更が可能になります。trackerプラグインでbugtrackを実現する方法は、しろくろのへや::config/plugin/tracker/default参照。

  • merlin 2003-10-16 (THU) 08:20:07

    tracker + listbox2 でのサンプルを merlin:Plugin/Demo/tracker.inc.php/todotest に置きました。

  • merlin 2003-10-21 (TUE) 00:53:00

    listbox2 v1.1 は、XHTML1.1 Invalid です。 以下を変更することが必要です。

    function plugin_listbox2_getOptions($value, $options) {
      $options_html = '';
      foreach($options as $option) {
        if($option == '') {
          continue;
        }
        $option_enc = htmlspecialchars($option);
        if($value == $option) {
    -     $options_html .= "<option value='$option_enc' selected>$option_enc</option>";
    +     $options_html .= "<option value='$option_enc' selected='selected'>$option_enc</option>";
        } else {
          $options_html .= "<option value='$option_enc'>$option_enc</option>";
        }
      }
     return $options_html;
  • KaWaZ? 2003-11-30 (SUN) 16:59:58

    listbox2 を v1.2 として修正しました。merlin さんの XHTML1.1 valid のパッチを当てました。また、check_editable 関数を使って編集に認証が必要なページではリストボックスの値を変更できないようにしました。

  • 欲しいプラグイン/204, 欲しいプラグイン/391 -- 2012-03-30 (金) 12:38:53


*1 ブロック型プラグインでないとタグの不整合が発生します。

添付ファイル: filelistbox2.inc.php-1.2 6161件 [詳細] filelistbox.inc.php-1.5 2599件 [詳細]

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

PukiWiki 1.5.1+ © 2001-2016 PukiWiki Development Team. Powered by PHP 5.6.30-0+deb8u1. HTML convert time: 4.554 sec.

OSDN