質問 > フロント機能 > 年代ごとに表示するページを変えたいです。 |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
hihi |
投稿日時: 2012/11/30 17:17
対応状況: −−−
|
一人前 登録日: 2012/8/14 居住地: 投稿: 72 |
年代ごとに表示するページを変えたいです。 [EC-CUBE]2.12.1
[PHP]5.3.1 [データベース]MySQL 5.1.43 ________________ 会員情報の生年月日データから、今現在の年齢を計算して 10代なら10代のページを表示、20代なら20代のページを表示と 言うように年代ごとにページを変えたいと思っています。 流れとしては、会員登録完了ページからTOPページへ戻った時に年代ごとのページが表示するされるというかたちです。 どのようにしたら実現できますでしょうか? ご教授下さい。 よろしくお願いします。 |
dimaggio |
投稿日時: 2012/12/3 17:31
対応状況: −−−
|
一人前 登録日: 2011/3/30 居住地: Tokyo 投稿: 120 |
Re: 年代ごとに表示するページを変えたいです。
|
hihi |
投稿日時: 2012/12/3 19:33
対応状況: −−−
|
一人前 登録日: 2012/8/14 居住地: 投稿: 72 |
Re: 年代ごとに表示するページを変えたいです。 ありがとうございます。
ただ、携帯とスマホが未対応でしたので、 すごくいいプラグインだと思うのですが、 その関係で導入できません。 |
hihi |
投稿日時: 2012/12/5 21:41
対応状況: −−−
|
一人前 登録日: 2012/8/14 居住地: 投稿: 72 |
Re: 年代ごとに表示するページを変えたいです。 $now = date('Ymd');
$birthday = "<!--{$smarty.session.customer.birth}-->"; print "age:".floor(($now-$birthday)/10000); 上記のやり方でやったのですが うまく行きません。どうしてでしょうか? ご教授下さい。 |
dimaggio |
投稿日時: 2012/12/6 10:50
対応状況: −−−
|
一人前 登録日: 2011/3/30 居住地: Tokyo 投稿: 120 |
Re: 年代ごとに表示するページを変えたいです。 <!--{$smarty.session.customer.birth}--> の値はyyyy-mm-dd hh:mm:ss形式のデータぽいので、date('Ymd')と表記を合わせる必要がありそうですね。
年齢を取得するだけなら、 $now = date('Y'); にして、$smarty.session.customer.birth の方からyyyyだけを抜き出して差をとる方が楽かもしれません。 誕生日の前後で1歳の誤差が生じますが。
|
hihi |
投稿日時: 2012/12/6 14:36
対応状況: −−−
|
一人前 登録日: 2012/8/14 居住地: 投稿: 72 |
Re: 年代ごとに表示するページを変えたいです。 ページを新規作成して下記のように書いたのですが
/** * Page のアクション. * * @return void */ function action() { $now = date('Ymd'); $birthday = "<!--{$smarty.session.customer.birth}-->"; print "age:".floor(($now-$birthday)/10000); } $birthday = に "<!--{$smarty.session.customer.birth}-->"; を直接入れることは出来ないので困っています。 会員の生年月日を取り出すのはどうしたらいいんでしょうか? よろしくお願いします。 |
dimaggio |
投稿日時: 2012/12/6 17:59
対応状況: −−−
|
一人前 登録日: 2011/3/30 居住地: Tokyo 投稿: 120 |
Re: 年代ごとに表示するページを変えたいです。 $birthday = $_SESSION['customer']['birth'];
とかどうですかね。
|
hihi |
投稿日時: 2012/12/6 19:49
対応状況: −−−
|
一人前 登録日: 2012/8/14 居住地: 投稿: 72 |
Re: 年代ごとに表示するページを変えたいです。 function action() {
$now = date('Ymd'); $birthday = $_SESSION['customer']['birth']; print "age:".floor(($now-$birthday)/10000); } 上記のように設置したのですが、 うまく行きません。 会員のデータが、1990-01-01なので age:22にならないといけないのですが、 age:2011になってしまいます。 他になにが必要なのでしょうか? よろしくお願いします。 |
dimaggio |
投稿日時: 2012/12/6 21:06
対応状況: −−−
|
一人前 登録日: 2011/3/30 居住地: Tokyo 投稿: 120 |
Re: 年代ごとに表示するページを変えたいです。 $now = date('Y-m-d');
print "age:".($now-$birthday); とかどうですかね。
|
hihi |
投稿日時: 2012/12/7 13:26
対応状況: −−−
|
一人前 登録日: 2012/8/14 居住地: 投稿: 72 |
Re: 年代ごとに表示するページを変えたいです。 dimaggioさんありがとうございます。
無事に出力できました。 出力したデータ(age:22)をテンプレート側で使いたい場合は どうしたらよいのでしょうか? 以下のような感じで使いたいと思っています。 ご教授よろしくお願いします。 (例) <!--{if $smarty.session.customer.age >= 18}--> 18歳以上 <!--{else}--> 18歳以下です。 <!--{/if}--> |
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |