1

MediaWiki ページのテーブルに MySQL DB のデータを表示しようとしています。外部データ拡張関数 #get_db_data および #for_external_table を使用してデータを取得します。これは正常に機能します。ただし、さらに次の 2 つのことを行いたいと考えています。

  • 取得した値をテンプレート名として使用します。DB の値が x の場合、Template:X (または {{X}}) を挿入します。

  • ParserFunctions 拡張機能を使用して、条件で (別の) フェッチされた値を使用します。具体的には、数値が返されます。数が 100 未満の場合は括弧内に表示し、それ以外の場合は何も表示しません。

これまでのコードは次のとおりです。

{{#get_db_data:
db=pravidla
|from=alch
|order by=nazev
|data=nazev=nazev,prima=prima,primaproc=prima_proc,sekunda=sekunda,sekundaproc=sekunda_proc,dominanta=dominanta
}}

{| class="wikitable sortable" style="border: solid 1px black"
|+ Tabulka přísad
|''Přísada''
|''Prima''
|''Sekunda''
|''Dominanta'' {{#for_external_table:<nowiki/>
{{!}}-
{{!}} {{{nazev}}}
{{!}} {{{prima}}} ({{{primaproc}}} %)
{{!}} {{{sekunda}}} ({{{sekundaproc}}} %)
{{!}} {{{dominanta}}} }}
|}

prima、secunda、domina 変数の値は、同じ名前のテンプレートに置き換える必要があります。どちら{{{{{prima}}}}}{{Lcb}}{{Lcb}}{{{prima}}}{{Rcb}}{{Rcb}}(Lcb={ and Rcb=}) は機能しません。

中央の 2 つのセルの値を含む括弧は、値が 100 (パーセント) 未満の場合にのみ表示される{{#ifeq: {{{primaproc}}} | 100 | | ({{{primaproc}}} %) }}はずなので、次のようにする必要がありますが、試してもうまくいきませんでした。

これを読んでくれてありがとう、そしてどんな洞察も大歓迎です。

4

1 に答える 1