バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 返り値を用いた条件分岐につきましてご教授ください

フロント機能

新規スレッドを追加する

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
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;}
とか考えていたのですが、これでサーバーサイドで処理が可能となりました。

アドバイスありがとうございます。
yuh
投稿日時: 2015/4/16 12:46
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 返り値を用いた条件分岐につきましてご教授ください
LC_Page_Exに組み込んじゃうのが手っ取り早そうではあります・・・。
ameno
投稿日時: 2015/4/16 12:16
対応状況: −−−
新米
登録日: 2015/4/15
居住地:
投稿: 4
Re: 返り値を用いた条件分岐につきましてご教授ください
yuhさま
ご返答有難うございます。

<!--{$hoge}-->

と「$」をつけるとスマホでもPCでも何も表示されず、

<!--{hoge}-->

ですと、PCでは何も表示されず、iPhoneで見るとちゃんと「1」と
表示されます。

yuh
投稿日時: 2015/4/16 10:04
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 返り値を用いた条件分岐につきましてご教授ください
<!--{hoge}-->
ではなく
<!--{$hoge}-->
じゃないんですか?
ameno
投稿日時: 2015/4/16 1:28
対応状況: −−−
新米
登録日: 2015/4/15
居住地:
投稿: 4
Re: 返り値を用いた条件分岐につきましてご教授ください
yuhさん
ご返答有難うございます。

その方法でもうまくいかないんですよ。。。
iPhoneでもelseの方の処理内容となってしまいます。

単純に
<!--{hoge}-->
とテンプレートに入れますと、PCでは何も表示されず、
iPhoneで見るとちゃんと「1」と表示されるので、値はちゃんとreturnしているかと思うのですが、、、
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/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
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,922名です
総投稿数は110,012件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
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.