質問 > 管理機能 > 新着商品に対して一定期間NEWマークを付ける方法 |
管理機能
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
matchbou |
投稿日時: 2018/6/4 14:45
対応状況: −−−
|
一人前 登録日: 2018/3/19 居住地: 投稿: 130 |
Re: 新着商品に対して一定期間NEWマークを付ける方法 一応、ご参考までにtwig側でも秒単位での判断は可能です。
|
ゲスト |
投稿日時: 2018/6/4 14:20
対応状況: −−−
|
Re: 新着商品に対して一定期間NEWマークを付ける方法 確認を取ったところ、「New表示」が実装出来れば良いとだけ依頼されております。なので特別、twig側だけで1週間の判断をしたい訳ではありません。
ただ、twig側だけで1週間の判断が出来る実装も可能なんだなと思ってしまっただけです(汗)。 アドバイス頂いた通り、私自身もコントローラーで設定したいとは思っていたので、
こちらの$productTimeの値をreturnで返す関数を作り、twigのif文で対応したいと思います。ありがとうございました。 |
|
matchbou |
投稿日時: 2018/6/4 13:28
対応状況: −−−
|
一人前 登録日: 2018/3/19 居住地: 投稿: 130 |
Re: 新着商品に対して一定期間NEWマークを付ける方法 最初のご質問内にある三項演算子をコントローラーで設定すれば
$productTimeにフラグが入り、twig側ではフラグのif文で新着の表示非表示が出来るかと思うのですが、twig側だけで1週間の判断をしたいということでしょうか?
|
ゲスト |
投稿日時: 2018/6/4 12:42
対応状況: −−−
|
Re: 新着商品に対して一定期間NEWマークを付ける方法 仰られた通り、Product.phpにて、
これを用いた関数を作って導入したら無事表示する事が出来ました。echoで確認しても、ちゃんと経過秒数に変換出来ています。 助かりました、本当にありがとうございます。 ですが...、
(現在から7日前の経過秒数よりも、create_dateが後であるかというif文) twigファイルにて直接、上記のコードを追加しても、全く同じ結果?が得られました。 これだと、秒単位での1週間の期間で管理出来ないと思っていたのですが、これでも秒単位で管理出来てしまうのでしょうか?調べても分かりませんでした。 |
|
matchbou |
投稿日時: 2018/6/4 9:55
対応状況: −−−
|
一人前 登録日: 2018/3/19 居住地: 投稿: 130 |
Re: 新着商品に対して一定期間NEWマークを付ける方法 create_dateはDateTimeオブジェクト型なので、フォーマット変換すればstrtotimeが使用できます。
$this->create_dateということはentity内ですかね。そこで指定してしまうと影響範囲が大きいかと思いますので、コントローラー内の方が宜しいかと思います。
|
ゲスト |
投稿日時: 2018/6/3 12:16
対応状況: −−−
|
新着商品に対して一定期間NEWマークを付ける方法 -- EC-CUBE3 --
-- macOS High Sierra -- -- 新着関連のプラグインは導入済み -- EC-CUBE3でショッピングサイトを開発しております。 新着商品に対して1週間、NEWマーク(もしくはテキスト)を表示させたいのですが、新着関連のプラグインを一通り導入してもNEWマークの表示と掲載期間を設定出来るようなものはありませんでした。 そこで自分で実装しようと思うのですが、考え方としてはPHPにて、 現在の経過ミリ秒 - 各商品の登録日の経過ミリ秒 <= 1周間のミリ秒(値:604800) の三項演算子 time() - Product.create_date <= 604800 ? 1(true) : 0(false) これで進めようとしています。 しかし、プラグインの一部分なのか分かりませんが、create_dateという登録日を格納する変数を、どうやって経過ミリ秒に変換すれば良いのかが分かりません。 strtotime($this->create_date) としてもエラーが出てしまいます。 var_dumpでcreate_dateを調べたところ、 object(DateTime)#1902(3){ ["date"]=>string(26)"2018-06-01 14:51:29.000000" ["timezone_type"]=>int(3) ["timezone"]=>string(10) "Asia/Tokyo"} となりました。 ちなみに、商品の登録日はtwigファイル内で create_date|date_format という形で2018/06/01とサイトに表示されます。 恐れ入りますが、このcreate_dateという変数を経過ミリ秒に変換するにはどうすれば良いか、分かる方がいらっしゃいましたら教えて下さい。 もしくは別のやり方で同じ実装を行なえるのであれば、アドバイスを頂ければと思っています。よろしくお願いします。 |
|
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |