問題タブ [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.
symfony - Twig がブラウザーではなくファイルに HTML 出力を書き込むようにするにはどうすればよいでしょうか?
レンダリングしたい Twig テンプレート (.html ファイル) があります (トークンを PHP ファイルの値に置き換えます)。ただし、レンダリングされた結果をブラウザーに送信する代わりに、新しい .html ファイルに書き込みたいと考えています。Django テンプレートの場合も同様のソリューションになると思います。
PHPでこれを行うにはどうすればよいですか?
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です
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()
が呼び出された後にエスケープが発生するため、エスケープをどのように処理するかはわかりません。
php - Twigのforループで画像を使用するには?
配列に画像のアドレスがあり、そのソースから3つの画像をロードしたい
私のコード:
Src in imgタグには何を書けばいいですか?