問題タブ [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 投票する
2 に答える
617 参照

twitter-bootstrap - htmlタグ内のTwigフィルターリターン

小枝テンプレート内で Bootstrap ツールチップをより簡単かつきれいに表示しようとしています。私はこのようなことを達成したい:<i class="icon" {{'this is great tooltip'|tooltip}}></i> 小枝フィルターを作成しました:

私が望むように文字列を返します。ただし、html コードでは次のようになります。

ご覧のとおり、追加しまし['is_safe'=>['html']]たが、何も変更されていません。
スペースをハードスペースに変更しようとしましたが、効果がありませんでした。
さらに悪いことに、ツールチップは次のように表示されます:そのツールチップは非常に奇妙ですすべてのスペースと引用符またはアポストロフィを無視します。次のよう になります。修正方法を教えてください。:)これは非常に優れたツールチップです。

0 投票する
0 に答える
379 参照

debian - パッケージphp5-twigおよびcomposerのtwigを使用したdebianサーバー上のTwig C拡張機能は機能しますか?

deb パッケージのみをインストールできる共有 Debian (安定版) Web サーバーで Twig (作曲家バージョン) を使用しています。

  • 管理者に Twig 用の Debian C 拡張機能をインストールするよう依頼する必要がありますか?
  • composer の Twig (php ライブラリ) のバージョンは、Debian の C 拡張機能のバージョンよりも新しいものになります: どのような結果が得られるでしょうか?
    • Twig は状況によっては失敗する場合があります。
    • Twig は拡張機能が古いバージョンのものであることを認識し、それを無視します。
    • もう少し古いものであれば、Twig は C 拡張を使用できます。
  • 現在、debian の安定バージョンは 1.16.2 で、composer のバージョンは 1.24.0 です。

私には選択肢があります:

  1. composer 100% php、バージョン 1.24.0 の Twig を C 拡張なしで使用
  2. Composer php バージョン 1.24.0 の Twig を使用し、Debian バージョン 1.16.2 の C 拡張を使用します (ただし、動作しますか?)
  3. Debian バージョン 1.16.2 の Twig php および C 拡張機能を使用します。拡張機能は機能しますが、このために composer を構成する方法はまだわかりません。Debian ではなく、Twig に依存する他の php パッケージ用の composer が必要だからです。)

私の質問は、最良の選択は何ですか? テストを作成してプロファイリングすることはできますが、Twig C 拡張機能を使用する利点を示す単純なコードを記述する方法はまだわかりません。

参考文献:

0 投票する
0 に答える
115 参照

twig - Twig の整数としてのラジオ ボタンの値

これは、radio_button の質問を生成するための私のコードです。

ここの値はすべて文字列として出力されます。それらを整数に強制するにはどうすればよいですか?

ちなみに、それが違いを生む場合、私はTwig Bridgeを使用しています。

更新 - これはラジオ ボタンの 1 つのビュー ソースです。

そうではありませんか。

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

symfony - コントローラーからローカル Twig 拡張機能を追加する方法

グローバル フィルターにせずに、1 つのページに使用したい非常に特殊なフィルターがあります。私はこれをやってみました(それは私が望む機能ではなく、単なるテストです):

しかし、「拡張機能が既に初期化されているため、フィルターを追加できません」というエラーが表示されます。

AppBundle/Twig ディレクトリにクラスを作成し、それをサービスとして追加できることはわかっていますが、1) それは信じられないほど重く、必要な単純なフィルターだけの PITA です。2) アプリケーション全体に対してグローバルになります。 、これは私がローカルで必要とするものにはばかげています。

これを行う方法はありますか、それともグローバル拡張機能だけにこだわっていますか? 前もって感謝します。

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

symfony - サービスなしでtwig-extensionのSymfony2呼び出しコントローラーアクション

次の機能を持つシステムをプログラミングしています: 通常のユーザー (プログラマーや管理者ではない) は、「プレースホルダー」を挿入できるコンテンツを作成できます。これらのプレースホルダーは、ページがレンダリングされるときに、さまざまなコンテンツ タイプ (16 進カラー コード、スライダー、画像など) に置き換えられます。プレースホルダーの置換は少し複雑で、いくつかの追加機能があります (たとえば、デフォルト値の定義、プレースホルダーを正しい言語のコンテンツに置き換えるなど)。このため、「プレースホルダーフィルター」を使用して小枝拡張を作成しました。この関数は、正しいコンテンツを取得してプレースホルダーを置き換え、追加機能を処理する必要があります。

コンテンツ タイプは非常に異なるため、コントローラでコンテンツをレンダリングするためのロジックを含むコンテンツ タイプごとに、「プラグイン」と呼びましょう。

今私の問題:

プラグインのコントローラ アクションは、レンダリングされたコンテンツを返します。プレースホルダーを小枝拡張機能のコンテンツに置き換えるため、この小枝拡張機能でコントローラー アクションを呼び出す方法が必要です。

今までの私の考え:

この方法でテンプレートでコントローラーアクションを呼び出すことができることを知っています (ソース: http://symfony.com/doc/current/book/templating.html ):

そのため、小枝でコントローラーアクションを呼び出すことは問題ないようです。しかし、小枝拡張でこの関数呼び出しが必要です。

また、コントローラーをサービスとして実装するときに、コントローラー アクションを呼び出すことができることも知っています。しかし、プラグインはシステムに動的に組み込まれるため、すべてのプラグイン コントローラーをサービスとして定義することはできません。新しいプラグインをインストールするときにサービスも動的に処理するのは「難しい」でしょう(スクリプトでservice.ymlを編集する必要があると思います-または間違っていますか?)。これが、コントローラーをサービスとして使用できない理由です。-しかし、サービスを動的に実装する方法を教えていただければ、他のソリューションにもオープンです。

私がすでに試したことは、次の 2 つのページのソリューションを組み合わせることでした: http://symfony.com/doc/current/book/templating.html

およびhttps://www.robinvdvleuten.nl/blog/rendering-templates-in-a-twig-extension/

twig-extension の placeholder-filter で Twig_Environment にアクセスできるようになりましたが、次のコードは機能しません。

ControllerReference を文字列に変換できないというエラーが表示されます (ControllerReference はオブジェクトであるため、これは理にかなっています...)。

コントローラーをサービスとして定義せずに、twig-extension でコントローラー アクションを呼び出す方法はありますか? それとも、ソリューション全体を再考する必要がありますか?

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

twig - Twig - デバッグ モードが有効な場合にテンプレート名を表示する

最近Twigを使用していますが、ページにロードされているテンプレート名を出力できるかどうか疑問に思っていました. 私が考えることができる最善の方法は、テンプレート自体の上に名前を html コメントとして表示することです。

挿入することでテンプレート名を取得できることは知っていますが、{{ _self.templateName }}すべてのテンプレートまたは部分に追加するのは好きではありません。

ソリューションは などで機能するはずで{% include %}あり{% use %}、デバッグモードが有効になっているときにのみ発生する場合もいいでしょう。

拡張機能を作成しようとしましたが、どのように記述しても、各テンプレートで何らかの呼び出しを行う必要があります。

この背後にある理由は、プロジェクトがますます大きくなっているので、他の誰かが実装したテンプレートを探す時間を短縮しようとしているからです。

注: Symfony は使用していません。

事前に感謝します。どんな助けでも大歓迎です!

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

php - SlimPHP v3 ビューにフラッシュ メッセージを表示する方法

新しいドキュメントには、フラッシュ メッセージに関する記述はありません。

github リポジトリ (slimphp/Slim-Flash) からフラッシュ拡張機能をインストールしました。すべて正常に動作し、メッセージを追加したり、これらのメッセージを取得したりできます。

ただし、これはルート内でのみ機能します。もちろん、これらのメッセージを自分のビューに表示したいと考えています。

しかし、小枝ビューでこのメッセージを取得する方法がわかりません。

私はすでに試しました:

手伝ってくれてありがとう!

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

php - Twig関数で整数として渡されるTwig Datetime

小枝からIDと日時オブジェクトを渡す必要がある小枝関数を作成しました。

そして小枝から;

しかし、エラーが発生しました

IT は DateTime のインスタンスである必要があり、整数が与えられます。