pnamazu の opmode2006年07月02日 00時19分20秒

本家 Namazu にはありませんが、pnamazu にある機能の ひとつに opmodeがあります。

CGI 変数 'opmode'

CGI 動作時の QUERY_STRING に opmode という変数があったら、

  • 'or' の場合
 演算子の無いものを or で扱います。また、従来通り、 それが { } で
 囲まれているときは phrase 演算し、 'and', 'or' といった演算子も、
 使えます。 
  • 'inside' の場合
 単純な日本語の単語検索のときに、語の前後に '*' がついているもの
 として扱います。
 
 例: 「京都」は「*京都*」と扱われます。
 
 英数字については、この処理はされません。 従来通り '*' を明示しない限り、
 単語単位となります。 
  • 'forward' の場合
 単純な日本語の単語検索のときに、語の後に '*' がついているものとして
 扱います。
 
 例: 「京都」は「京都*」と扱われます。
 
 英数字については、この処理はされません。 従来通り '*' を明示しない限り、
 単語単位となります。

radio ボタンに対応2006年07月02日 03時42分52秒

QUERY_STRING の内容で NMZ.head を書き換えるものの中で、select タグで
選択可能な項目を input タグの radio ボタンにも対応しました。
(HEAD のみ)

例えば、

<select name="max">
<option value="10">10</option>
<option selected value="20">20</option>
<option value="30">30</option>
<option value="50">50</option>
<option value="100">100</option>
</select>



<input type="radio" name="max" value="10">10
<input type="radio" name="max" value="20" checked>20
<input type="radio" name="max" value="30">30
<input type="radio" name="max" value="50">50
<input type="radio" name="max" value="100">100

というように書いても検索結果に選択した項目が反映されます。

対象となる項目は以下の通りです。
* result
* sort
* lang
* idxname
* subquery
* max

form の書き換え2006年07月02日 06時19分06秒

form の書き換えに関する以下の内容を修正しました。

・QUERY_STRING が空の場合(namazu.cgi を直接呼び出した場合)、NMZ.head の checked, selected で示される選択状態の書き換えを行わないようにしました。
 
これにより、初期値に関わらず、各項目の選択状態はテンプレートの内容のまま表示されます。
 (HEAD のみ)

・<!DOCTYPE をチェックして、XHTML かどうかを判定する check_xhtml() を追加しました。(HEAD のみ)

・空要素タグを "/>" を出力して閉じている部分を " />" に変更しました。
(HEAD/stable-2-0共)