質問 > フロント機能 > 返り値を用いた条件分岐につきましてご教授ください |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
ameno |
投稿日時: 2015/4/15 23:01
対応状況: −−−
|
新米 登録日: 2015/4/15 居住地: 投稿: 4 |
返り値を用いた条件分岐につきましてご教授ください ご教授願います。
【実現したいこと】 閲覧ユーザーの環境[iOS、Android、PC]によって見せる内容を分けたい。 【例】 例えば、閲覧者がiPhoneの時は <div> iPhone向けコンテンツ </div> を表示させる。 【ここまでの過程】 下記サイト http://ishiitakeru-programing-memo.blogspot.jp/2014/11/ececcube.html の「独自プラグインを作る」を用い、 function smarty_function_hoge($params, &$smarty){ if(iPhoneかどうか・・・){ return 1; else・・・ } のようなものを作成し、テンプレートで<!--{hoge}-->と入れますと ちゃんと閲覧者の環境によって値がreturnし表示されるところまでは確認いたしました。 このあとの、このreturnした値をどのようにして条件分岐に用いるかにてこずっています。 何せSmarty等に初心者でして、、、 <!--{assign var=fuga value=hoge}--> <!--{if $fuga == 1}--> <p>iPhone向け内容</p> <!--{else}--> <p>その他向け内容</p> <!--{/if}--> のようにやってみてもうまく行きません。 かなりトンチンカンなことを行っているかとは思っているのですが、、、 ご教授いただければ幸いです。 何卒よろしくお願いいたします。 -------------------------- EC-CUBEバージョン 2.13.3 PHPバージョン PHP 5.4.27 DBバージョン MySQL 5.6.13 |
yuh |
投稿日時: 2015/4/15 23:24
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1819 |
Re: 返り値を用いた条件分岐につきましてご教授ください <!--{if $hoge == 1}-->
<p>iPhone向け内容</p> <!--{else}--> <p>その他向け内容</p> <!--{/if}--> でいいんじゃないでしょうか? あえてassignする必要がないように思えます。 |
ameno |
投稿日時: 2015/4/16 1:28
対応状況: −−−
|
新米 登録日: 2015/4/15 居住地: 投稿: 4 |
Re: 返り値を用いた条件分岐につきましてご教授ください yuhさん
ご返答有難うございます。 その方法でもうまくいかないんですよ。。。 iPhoneでもelseの方の処理内容となってしまいます。 単純に <!--{hoge}--> とテンプレートに入れますと、PCでは何も表示されず、 iPhoneで見るとちゃんと「1」と表示されるので、値はちゃんとreturnしているかと思うのですが、、、 |
yuh |
投稿日時: 2015/4/16 10:04
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1819 |
Re: 返り値を用いた条件分岐につきましてご教授ください <!--{hoge}-->
ではなく <!--{$hoge}--> じゃないんですか? |
ameno |
投稿日時: 2015/4/16 12:16
対応状況: −−−
|
新米 登録日: 2015/4/15 居住地: 投稿: 4 |
Re: 返り値を用いた条件分岐につきましてご教授ください yuhさま
ご返答有難うございます。 <!--{$hoge}--> と「$」をつけるとスマホでもPCでも何も表示されず、 <!--{hoge}--> ですと、PCでは何も表示されず、iPhoneで見るとちゃんと「1」と 表示されます。 |
yuh |
投稿日時: 2015/4/16 12:46
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1819 |
Re: 返り値を用いた条件分岐につきましてご教授ください LC_Page_Exに組み込んじゃうのが手っ取り早そうではあります・・・。
|
ameno |
投稿日時: 2015/4/16 18:12
対応状況: −−−
|
新米 登録日: 2015/4/15 居住地: 投稿: 4 |
Re: 返り値を用いた条件分岐につきましてご教授ください yuhさま
ご返信有難うございます。 LC_Page_Ex.phpに下記コード public function init(){ parent::init(); if(iPhoneかどうかの条件式){ $iPhone = "iPhone"; } $this->hoge = $iPhone; } を追記し、テンプレート内に <!--{if $hoge == "iPhone"}--> iPhoneだよ <!--{else}--> iPhoneじゃないよ <!--{/if}--> で無事目的に達しました。 デフォルトのスマホテンプレートを使用せず、スマホでもPC用のテンプレを 表示させるようにしているのですが、当初はJavaScript&jQuery&CSSで、 端末判断してCSSで body div.fuga {display:none;} body.iPhone div.fuga {display:block;} とか考えていたのですが、これでサーバーサイドで処理が可能となりました。 アドバイスありがとうございます。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |