質問箱/221

カテゴリ
サマリ検索フォームをページ中に指定したい
バージョン1.4
投稿者いとう?
状態完了
投稿日2003-07-22 (TUE) 10:53:26

質問

このサイトのように、検索フォームをページ中に埋め込みたいのですが、searchプラグインはコマンドでしか提供されていません。どうすれば文中にフォームを埋め込めますか?

回答

  • merlin 2003-07-22 (TUE) 13:08:06

    このサイトの InterWikiName の下の方を見ると大きなヒントがあります。InterWikiNameをこのように設定しておいて、lookup プラグインを使って「#lookup(検索,検索,)」とやってやると検索フォームが出ます。キーワードは、InterWikiですね。後は、lookup プラグインにスタイル設定を追加してスタイルシートで定義してやればここみたいに出来ます。lookupプラグインは使いでがありますよ。

    単語検索
  • sha 2003-07-23 (WED) 02:14:57

    InterWikiNameが何であるかやっと分かりました。これは便利ですね。ただし、「lookupのスタイル設定」や「スタイルシート」というのが分かりません。もう少し詳しく教えて頂けませんか?自分でやってみて、上の例では「検索:」という文字列が出ないようにする設定のことだと想像していますが、具体的な設定方法が分かりません。

  • いとう? 2003-07-23 (WED) 08:54:46

    ははぁ、なるほど、仕組みは分かりました。ただ、わたしの場合はボタンが表示されない… :( わたしもスタイル設定の解説希望、です。

  • sha 2003-07-23 (WED) 18:58:13

    プレビューだとボタンは表示されませんよ。「更新」をして見てください。

  • merlin 2003-07-24 (THU) 03:20:31

    私もまだまだ勉強中なのでわかっていることだけ。「検索:」を消すのは lookupからその部分を消している為だと思います。スタイル設定は、lookupプラグインでは設定されてないので、lookup.inc.phpをカスタマイズするのとそれに対応するスタイルをskin/default.cssに追加することで達成されます。XHTMLでは、画面デザインはCSSの担当なのでそちらで設定するということになります。これらのプラグインは、htmlを生成してそれをplugin.phpに渡しているのでその部分をカスタマイズすればいいんです。標準のlookup.inc.phpでは

     ........
     $ret = <<<EOD
    <form action="$script" method="post">       <<===== ここ
    <div>
      <input type="hidden" name="plugin" value="lookup" />
      <input type="hidden" name="refer" value="$s_page" />
      <input type="hidden" name="inter" value="$iwn" />
    $iwn:                                       <<===== ここ
      <input type="text" name="page" size="30" value="$default" />
      <input type="submit" value="$btn" />
    </div>
    </form>
    EOD;
       return $ret;
     ........
    となっていますが、「検索:」を消すには $iwn: を消せばよくて、かつこのフォームに スタイルを設定するには、
    <form class="lookup_form" action="$script" method="post">
    のようにクラス呼出を追加して、さらにクラス定義は、
    /* \lookup.inc.php */
    
    .lookup_form{
            margin:.4em 0px .4em 0px;
            text-align:center;
    }
    
    .lookup{
            margin:auto;
            margin-top:0px;
            margin-bottom:0px;
            text-align:center;
    }
    みたいな定義を skin/default.css に追加してやるって感じですね。(ここのdefault.css の記述です。)
    この lookupの方は、ラジオボタンを表示するようにカスタマイズされていてそこに使われているようです。cssについては、山程インターネット上に情報がころがっているのでそちらをどうぞ。 クラス定義を行っているプラグインも多いのでそれらを参考にしてください。
    繰り返しますが、PukiWiki1.4は、結構ちゃんとしたXHTMLを生成するようになっています。XHTMLでは、デザインは スタイルシート側の担当なのでデザインに凝るならそちらの勉強が必要です。ここは、特に reimyさんががんばって各ブラウザの特質も考慮してアクセシビリティを考慮したものに作られているので、大変参考になります。生成されたHTMLのソースとスタイルシートからでかなりの事がわかりますよ。自分で解析したり見つけ出したことでないと身につかないのでがんばってください。
    • merlin 2003-07-24 (THU) 09:18:43

      なお、このスタイルの追加は、開発項目に入っていて検討中で未実装の項目のようです (dev:PukiWiki/CSSのclass一覧 参照)

  • いとう? 2003-07-24 (THU) 13:40:38

    ボタン表示の件は了解です。 :)

    スタイル設定の件は $iwn: を削除するのではなく、スタイルシートで表示させない(文字色を背景色と同等にする、などではなく、そもそも出力させない)ような制御ができるのかな?と思って、お尋ねしました。まあ、わたしの場合は $iwn: が表示されても支障ないので、気にしないことにします。

    • reimy 2003-07-24 (THU) 15:34:17

      表示させないようにするには、CSSでdisplay:noneを指定すれば可能ですよ。

      • いとう? 2003-07-25 (FRI) 08:50:59

        おぉ、それは知りませんでした。 でも…上記のように form に対して class 定義してそれを display:none にすると、フォームそのものが消えちゃいませんか?*1 $iwn: だけを消したいならこれだけを span で括るとかする必要がありますよね。それならいっそ $iwn: を削ったほうが…とか思ってしまうので。

  • 削除予定: Q&Aに移動 -- 2006-01-14 (土) 15:20:59
  • 2006-01-14 (土) 15:20:59の削除予定へのリンクは、削除予定のルールに沿わないので削除しました。 -- Cocoa 2007-07-08 (日) 01:05:37
  • これがうまく動くようにするためには、search plugin が GET method を受け付けるように PLUGIN_SEARCH_DISABLE_GET_ACCESS を 0 にする必要がある。 -- 2007-10-24 (水) 14:49:56

*1 すんません、簡単に試せる環境がないので…

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-03-08 (月) 17:14:44
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.573 sec.

OSDN