2017-10-07 6 views
0

私はそのテンプレートにTwig(Symfony)言語を使用しているプラ​​ットフォーム上でサイトを開発しています。そして、ある場所では、レイアウトを変更する必要があります別のブロック)を使用しているかどうかを判断します。Twig - モバイルエージェントかどうかを判断する

私はPHPで(check_user_agent( 'mobile') "変数を使用して)それを行う方法を知っていますが、それはTwigでは動作しません...そして、私はTwig" Mobile Detect Bundle "がありますが、インストール方法はわかりません(cPanelとの共有ホスティング)。

Soo ...何もインストールすることなく、Twigのモバイルユーザエージェントを検出する方法はありますか?

答えて

0

ユーザエージェントに基づいてtrue/falseを返すPHPコードがすでにある場合は、Write a custom Twig Extensionはそのコードを実行するのは簡単ですが、Twigから実行するのは簡単です。

また、コントローラーのアクションが呼び出される前にチェックを実行するために、コントローラーでチェックを実行して結果を渡すことも、 'kernel.controllerイベント'で渡すこともできます(おそらくリクエスト '属性'テンプレート内でチェックすることもできます)。

+0

私は@snela、@alisterbulmanが正しいと思う...あなたは '小枝Extension'であなたの問題を解決することができます。 –

0

各リクエストの間、SymfonyはデフォルトでTwigとPHPテンプレートエンジンの両方でグローバルテンプレート変数アプリを設定します。現在の要求を表す Requestオブジェクト:app.request

ですから、ユーザーエージェントを知りたい場合は、テンプレートにapp.request.headersを使用することができます。
例えば:

{{ app.request.headers.get('User-Agent')}} 
関連する問題