2

テンプレート内の変数のリストを取得し、リストを使用してそれらを入力することは可能ですか?ユーザーにテンプレートを作成してもらいたいのですが、これは、どの変数が使用可能になるかを事前に知らないことを意味しますか?

編集:

私のテンプレートでは、ユーザーが何を印刷するかを決定します。そのような

$ users $ latest

しかし、私のアプリケーションからは、テンプレートで使用されている変数がわかりません。テンプレート内のすべての変数を含む[userslatest]などのリストを取得して、ユーザー仕様に従ってそれらを入力できるようにしたいと思います。

4

4 に答える 4

0

一部の速度クラスをオーバーライドせずにそれを行う簡単な方法はないと思います。

これが私がそれを行う方法のいくつかのオプションです:

  1. 可能なすべての変数を追加します (定義済みの変数セットがあると想定しています)。パフォーマンスが重い場合は、キャッシングを検討してください。
  2. テンプレートをレンダリングする前に、どのデータが必要かをユーザーに尋ねます (1 回限りのフォームの場合、それらの変数が変更されない場合は、頻繁に db に書き込みます)。
  3. テンプレートをレンダリングする前に簡単に解析できるように、テンプレート内の特定の形式で必要な変数のリストを提供するようにユーザーに依頼します。<!--%%__VARS__%%users,latest%%__VARS__%%-->
  4. regexp を使用してテンプレート ファイルを検索し、注意が必要な $var インスタンスを探します。
于 2009-10-22T19:28:18.237 に答える
0

ここでは、これを解決するためのいくつかの議論とアイデアがあります。推奨されるオプションは、基本的にテンプレートの生成された AST のウォーカーを実装することです。些細なことではありません。

于 2012-09-25T13:59:31.473 に答える