バージョン選択

フォーラム

メニュー

オンライン状況

82 人のユーザが現在オンラインです。 (70 人のユーザが フォーラム を参照しています。)
登録ユーザ: 1
ゲスト: 81
tonos もっと...

サイト内検索

質問 > フロント機能 > default_frame.twigに独自のPHP処理を入れたい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
eri_0620
投稿日時: 2017/5/6 17:18
対応状況: −−−
常連
登録日: 2017/5/6
居住地:
投稿: 36
default_frame.twigに独自のPHP処理を入れたい
▼テンプレート
[EC-CUBE] 3.0.12
[レンタルサーバ]
[PHP] 5.4.45
[データベース] MySql

ECCUBEを学びはじめた初心者です!
symfonyのこともそんなに知らない状態です。すみません。
自分で作成したデザインでECサイトを作成したいのですが、なかなか進めることができません!ぜひ教えていただきたいのが、
default_frame.twigにPHPのユーザーエージェントを使用して、CSSやJSのリンク先の切り替えを行いたいのですが、そのPHP処理はどのように埋め込んだらいいのかがわかりません。controller側を探したのですが、このtwigを読んでいるPHPにいきつくことができませんでした!

どなたかご存知であれば、ぜひ教えていただけないでしょうか?
どうかよろしくお願いしますm(_ _)m
umebius
投稿日時: 2017/5/6 20:55
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: default_frame.twigに独自のPHP処理を入れたい
default_frame.twigでユーザーエージェントは app.request.headers.get('User-Agent') で取得できますので、
正規表現などで切り分けてやれば一応実現はできますね。

正規表現や比較はこの辺りが参考になります。
https://twig.sensiolabs.org/doc/2.x/templates.html#comparisons


----------------
EC-CUBEカスタマイズ・高速化・脆弱性対策・SEO ご相談ください。

2系・3系から4系へのバージョンアップ実績豊富

umebius
投稿日時: 2017/5/6 21:02
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: default_frame.twigに独自のPHP処理を入れたい
なおdefault_frame.twigはコントローラが呼ぶ個別ページのテンプレートが継承しているテンプレートで、他のtwigから呼ばれています。

例えばProduct.detail.twigを見ると一番上の方に
{% extends 'default_frame.twig' %}という記述があるはずです。


----------------
EC-CUBEカスタマイズ・高速化・脆弱性対策・SEO ご相談ください。

2系・3系から4系へのバージョンアップ実績豊富

eri_0620
投稿日時: 2017/5/6 21:27
対応状況: −−−
常連
登録日: 2017/5/6
居住地:
投稿: 36
Re: default_frame.twigに独自のPHP処理を入れたい
umebius 様

ありがとうございます!!
app.request.headers.get('User-Agent')というものがあるんですね!すみません、聞いてばかりで本当に申し訳ないのですが、こんな情報ってどうやって調べれば出てくるんでしょうか?私のまわりsymfonyを知っている人が一人もいなくて聞ける人が一人もいないのでかなり困っています。。。
また、default_frameがtwigを継承しているところはなんとなく理解できたのですが、継承元のコントローラーでPHP処理を書いても例えば、default_frameが持っている<head>タグ内にはその処理を埋め込むことはできないような気がするのですが、default_frame.twig自体に処理を埋め込む方法ってないのでしょうか?聞いてばかりで本当にすみません(;_;)
umebius
投稿日時: 2017/5/6 21:37
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: default_frame.twigに独自のPHP処理を入れたい
app.request.headers.get('User-Agent')はtwig内に書く際の記述方法です。
default_frame.twigで
{% if app.request.headers.get('User-Agent') matches '正規表現' %}

{% else %}

{% endif %}


----------------
EC-CUBEカスタマイズ・高速化・脆弱性対策・SEO ご相談ください。

2系・3系から4系へのバージョンアップ実績豊富

umebius
投稿日時: 2017/5/6 21:45
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: default_frame.twigに独自のPHP処理を入れたい
php内で書くなら、src/Eccube/Application.phpあたりで書くと良いんじゃないでしょうか。


            $BaseInfo = $app['eccube.repository.base_info']->get();
            $app['twig']->addGlobal('BaseInfo', $BaseInfo);

というコードがありますが、やることはこれと似通ってるのでこの下あたりでいいんじゃないでしょうか。


引用:
こんな情報ってどうやって調べれば出てくるんでしょうか?


今は"symfony user agent"で検索しました。


----------------
EC-CUBEカスタマイズ・高速化・脆弱性対策・SEO ご相談ください。

2系・3系から4系へのバージョンアップ実績豊富

eri_0620
投稿日時: 2017/5/6 22:32
対応状況: −−−
常連
登録日: 2017/5/6
居住地:
投稿: 36
Re: default_frame.twigに独自のPHP処理を入れたい
umebius 様

ご丁寧に本当にありがとうございました!
おかげさまで、この問題は解決しそうです!
また、どこかで別件でつまづいて記事を書くかもしれませんが、とにかくなんとかがんばってみます!!
本当にありがとうございました!


umebius
投稿日時: 2017/5/7 9:43
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: default_frame.twigに独自のPHP処理を入れたい
自分でもわかりにくい説明だと思って辟易しているのですが
解決できそうでしたら良かったです。
またご投稿ください。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,301名です
総投稿数は109,692件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.