問題タブ [twig-extension]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2819 参照

symfony - Twig がブラウザーではなくファイルに HTML 出力を書き込むようにするにはどうすればよいでしょうか?

レンダリングしたい Twig テンプレート (.html ファイル) があります (トークンを PHP ファイルの値に置き換えます)。ただし、レンダリングされた結果をブラウザーに送信する代わりに、新しい .html ファイルに書き込みたいと考えています。Django テンプレートの場合も同様のソリューションになると思います。

PHPでこれを行うにはどうすればよいですか?

0 投票する
2 に答える
604 参照

twig - Silex マイクロフレームワーク (symfony-forms) で {{ form_widget(form) }} を使用してフォームを作成する際の Twig 構文エラー

Silex マイクロフレームワークで遊んでいます。まず、composer を使用して Twig 用の Twig 拡張機能をインストールしました。

この構成をフロント コントローラー (index.php) に追加しました。

すべてが期待どおりに動作するようにシミュレートされますが、ウィジェットを使用してフォームを作成する場合

Twig デバッガーから次のエラーが表示されます。

1/1 ExpressionParser.php 行 573 の Twig_Error_Syntax: 行 35 の「post.twig」の不明な「form_widget」関数。

このコード行をコメントアウトすると:

私のフロントコントローラーでは、すべてが正常に機能し、フォームは問題なくレンダリングされます。

これは twig デバッグ拡張の問題ですか? おそらくいくつかの非互換性?.

小枝でフォームをレンダリングするために widget_form を使用する必要はありません。小枝でレンダリングを適切に記述する前に、簡単なテスト目的でのみ使用しますが、小枝がこれに対してエラーをスローする理由はまだわかりません。

これは私のcomposer.jsonです

0 投票する
3 に答える
842 参照

twig - 特定の twig 変数 {{ product.name }} にコンテキスト HTML をラップします

小枝テンプレート<span data-id="..">を呼び出すときに、いくつかの html を自動的にラップしたいとします。{{ product.name }}

したがって、小枝テンプレートで を使用する場合{{ product.name }}、出力を : にしたいと考えています<span data-type="product" data-id="8" data-prop="name">My product name</span>。テンプレートの構文を にする必要があるため、小枝のフィルターやマクロを使用することはできません{{ product.name }}。したがって、エンドユーザー (テンプレート デザイナー) はそれを気にする必要はありません。

これが必要な理由は、小枝テンプレート用のページ上の編集ツールを構築しているためです。そのため、HTML 内からこれらの変数のコンテキストを知る必要があります。

Compilerが使用する をオーバーライドしようとしましたTwig_Environmentが、twig 変数ノードの出力を変更できないようです。

これどうやってするの?

編集

他のデザイナーが Symfony 2 の外部でこれらのテンプレートを使用するため、構文を使用するためにこれが必要であることを言及したかった{{ product.name }}のです。ほとんどすべての twig 変数をフロントエンドで編集可能にしたいので、フィルターまたはマクロを使用したソリューションは実際に動作しますが、私が書いているプラ​​ットフォームの使いやすさと読みやすさが損なわれます。現在、twig には、私が望むものを実現できるパブリック API はありません。そのため、twig コンパイラをいじっています。これを達成するために必要な Twig 内部の知識がありません。誰かが私を素晴らしい方向に向けることができれば!

更新 2

やりたいことを実現できる場所を見つけました。すべてのGetAttrノードは にコンパイルされ$this->getAttribute($someContext, "property")ます。したがって、コンパイルされた twig テンプレートのサブクラスを変更できれば、目的を達成できます。デフォルトでは、すべての twig テンプレートは から拡張されTwig_Templateます。この方法を拡張したい。

コンパイルされたすべての twig テンプレートのサブクラスを変更するにはどうすればよいですか?

UPDATE 3 コンパイルされたすべての twig テンプレートに独自の基本クラスを使用する方法を見つけました。小枝環境のオプションとして簡単に設定できます。このリンクを参照してください。明日はうまくいくことを願っています。どのように解決したかについて、適切な回答を投稿します。$this->getAttribute()が呼び出された後にエスケープが発生するため、エスケープをどのように処理するかはわかりません。

0 投票する
2 に答える
1131 参照

php - Twigのforループで画像を使用するには?

配列に画像のアドレスがあり、そのソースから3つの画像をロードしたい

私のコード:

Src in imgタグには何を書けばいいですか?