取得と並び替え

ListPagesモジュールを使用する事でデータフォームのフィールドからデータを取得1し、データフォームのフィールドの値に応じた並び替えをする事ができます。

取得

データフォームにフィールドを追加するか、既存のフィールドを使用します。下記のバンドの例では、バンドが次のツアーでスコットランドを訪れるかどうかを記入するフィールドを追加しました:

 scotland:
  label: 次のツアーでスコットランドを訪れるか
  type: select
  values:
     info: No Info
     visit: "Yes"
     novisit: "No"

値が "Yes"のものをリスト表示する場合、ListPagesモジュールを使用し、アンダースコアで始まるフィールド名、(この場合は_scotland)を記載し続けて=記号と必要なフィールドのプロパティを追加します(_scotland = "visit")。

[[module ListPages category="band"  _scotland="visit" perPage="10" order="name"  separate="false" prependLine="||~ Band||~ Type ||" appendLine="||||||~ ||"]]
|| %%title_linked%% || %%form_data{type}%% ||
[[/module]]

これで丁度2つのバンドが表示されるリストが生成されました:

スコットランドへのバンドツアー

Band Type
Coast Rock
Fairport Convention Folk

データフォームにある複数のフィールドを選択条件に組み込む事で検索範囲を絞り込むことができます。たとえば、スコットランドを巡るフォーク・バンドを選択する場合、scotland="visit"type="2"の取得条件を併用します(このデータフォームではtypeとは音楽の種類を表し、2はフォークである値を格納するプロパティです)。

 type:
   label: Music type
   type: select
   values:
     0: Classical
     1: Country
     2: Folk
     3: Indie
     4: Jazz
     5: Pop
     6: Rock
   default: 6

異なる選択条件を組み合わせるとAND演算子が使用されます。その為、結果はこれらの全ての条件に一致したものになります。検索結果を表示するListPagesコードは次のようになります。

[[module ListPages category="band"  _scotland="visit" _type="2" perPage="10" order="name"  separate="false" prependLine="||~ Band||~ Type ||" appendLine="||||||~ ||"]]
|| %%title_linked%% || %%form_data{type}%% ||
[[/module]]

そしてリストは以下の出力をします。

Band Type
Fairport Convention Folk

_field=""を使用すると、特定のフィールドが空のページを検索できます。

並び替え

また、データフォームのフィールドプロパティでソートすることもできます。バンドの例では、バンドによってリリースされたアルバム/ CDの数を格納するフィールドを作成しました:

 albums:
    label: Albums/CDs released
    type: select
    values:
      "00": 0
      "01": 1
      "02": 2
      "03": 3
      "04": 4
      "05": 5
      "06": 6
      "07": 7
      "08": 8
      "09": 9
..

アルバムの数を降順に並べ替えるには、Listpagesモジュールに設定したorder=パラメータの次にアンダースコアを付け、さらにその後、フィールドの名前、// desc //属性を使用します:

@@order="_albums desc"

[[module ListPages category="band"  perPage="10" order="_albums desc" separate="false" prependLine="||~ Band||~ Albums ||" appendLine="||||||~ ||"]]
|| %%title_linked%% || %%form_data{albums}%% ||
[[/module]]

ソートが正しく機能するためには、上記の例のデータフォームフィールドのように、値においては1,2,3等を持つ事ができますが、プロパティにおいて10未満の数値は01,02,03等が設定されている必要があります。この値は、以下に示すように、ListPagesモジュールに表示される値です。 (01、02、03、…)は8進数で扱われるため、ダブルクォーテーション( "01"、 "02"、 "03" …)で囲む必要があります。なぜなら08と09は8進数には存在しない為、そのままだと両方とも0になるからです。

Band Albums
Fairport Convention 54
Barclay James Harvest 49
FleetWoot Mac 29
Queen 14
Dire Straits 13
Coast 2
特に指定がない限り、このサイトのコンテンツには次のライセンスが適用されます: Creative Commons Attribution-ShareAlike 3.0 License