バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 一覧ページに違うブロックを適用したい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
DDR
投稿日時: 2009/7/4 14:55
対応状況: −−−
仙人
登録日: 2008/6/21
居住地: 大阪
投稿: 307
一覧ページに違うブロックを適用したい
お世話になっております
いつもざっくりな質問で申し訳ありません

商品一覧ページのブロックですが
商品カテゴリー毎に違ったブロックを表示したいのですが

一覧ページのブロックを

list1.htmlの時は1.2のブロックを表示
list2.htmlの時は1.3のブロックを表示

単純ですがこんな感じです
素人感覚ですがif構文だけで実装できるような感じで良いのでしょうか?

<!--{if $smarty.server.PHP_SELF == "../list1.html"}-->  
<!--list1.htmlのみブロック表示-->

<!--{else}-->
 <!--その他ページでブロック表示-->
<!--{/if}-->



これにlist1.html list2.html など複合させるソースの
書き方が分かりません;;


また、別にこうした方が
単純にスマートだとかあれば御願いします


----------------
------------------------------------------------------------------------------------------
EC-CUBE 3.0.17
DBサーバー mariaDB
WEBサーバー apache (CentOS)
PHP 7.1
-----------------------...

AMUAMU
投稿日時: 2009/7/4 15:58
対応状況: −−−
登録日: 2009/5/2
居住地: 東京都
投稿: 2712
Re: 一覧ページに違うブロックを適用したい
Smartyのinclude文を使いましょう
詳細はSmartyマニュアルが参考になると思います。


----------------
EC-CUBE公式エヴァンジェリスト
EC-CUBEインテグレートパートナー (株)スピリット・オブ
移転・拡張・高速化・問題解決
各種カスタマイズ・支援依頼承ります。

[url=h

seasoft
投稿日時: 2009/7/4 17:01
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 一覧ページに違うブロックを適用したい
> list1.htmlの時は1.2のブロックを表示
> list2.htmlの時は1.3のブロックを表示

list.php?category_id=1
list.php?category_id=2
では?


とりあえず、上の前提でですが、
・dtb_blocposition を拡張する方法
・dtb_blocposition から読み込んだデータを書き換えする方法
が思いつきます。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

DDR
投稿日時: 2009/7/4 17:09
対応状況: −−−
仙人
登録日: 2008/6/21
居住地: 大阪
投稿: 307
Re: 一覧ページに違うブロックを適用したい
ご返信有難う御座います

(/user_data/test.php)
新規で作成したページならincludeで
そのページだけ変えられますが
(単純にブロック変更できますけど)

勉強不足でレスして申し訳ありませんが
全ページ共有の一覧ページでinclude文だと全部に
テンプレ呼び出しませんか?

list1.html
list2.html
list3.htmlを開いた時にのみ左カラムに
サンプルというブロックを表示したいのです
list4.html
list5.html
list6.html....
を開くと左カラムにサンプルブロックは表示されない


list1.htmlのページにてincludeさせるという事でしょうか?
ページ毎に書き換え可能なのでしょうか?


if構文だけなら実装は出来ますが
list1.htmlのみしか私のスキルでは無理なのです;;


----------------
------------------------------------------------------------------------------------------
EC-CUBE 3.0.17
DBサーバー mariaDB
WEBサーバー apache (CentOS)
PHP 7.1
-----------------------...

DDR
投稿日時: 2009/7/4 17:25
対応状況: −−−
仙人
登録日: 2008/6/21
居住地: 大阪
投稿: 307
Re: 一覧ページに違うブロックを適用したい
いつもお世話になっております

そうですね
動的を静的化してたので正確には
list.php?category_id=1
list.php?category_id=2
になりますね

DB関連になってくるのですかorz

表示させたいページ数も少ないので
if構文で category_id を複数指定してやれるだけ
で良いと思っているのですが

複数指定してやる事はできないでしょうか?

<!--{if $smarty.server.PHP_SELF == "ここに複数category_id "}-->  

共有の一覧ページのレイアウトでサンプルブロックをtureにして
これだと全ての一覧ページに表示させる事になりますが
ifで指定したcategory_id 以外では非表示となり
理想な形になるのですが


現在 表示非表示を切り替えるブロックに書いてあるソースです
includeなどで呼び出すのではなく全てに適用してます


<!--{assign var=list   value="`$smarty.const.URL_DIR`products/list.php"}-->

<!--{if $smarty.server.PHP_SELF==$list}-->


<!--表示させたい一覧のみ-->

ブロック中身


<!--{else}-->
 <!--表示させない-->
<!--{/if}-->



しかし

<!--{assign var=list  value="`$smarty.const.URL_DIR`products/list.php?category_id=1"}-->



としてやっても一覧ページは無理なんですねorz
んーー難しい


----------------
------------------------------------------------------------------------------------------
EC-CUBE 3.0.17
DBサーバー mariaDB
WEBサーバー apache (CentOS)
PHP 7.1
-----------------------...

ecbg
投稿日時: 2009/7/4 22:02
対応状況: −−−
仙人
登録日: 2009/2/25
居住地: 東京
投稿: 387
Re: 一覧ページに違うブロックを適用したい
ブロックテンプレートで||を使って複数のカテゴリIDを並べるだけで可能なように思うのですが、
例えば、{if ID取得変数=="該当ID1" || ID取得変数=="該当ID2"}
こんな感じじゃないですか。
AMUAMU
投稿日時: 2009/7/4 23:08
対応状況: −−−
登録日: 2009/5/2
居住地: 東京都
投稿: 2712
Re: 一覧ページに違うブロックを適用したい
if 〜 else if 〜else 〜 /if という構文がある場合、ifの間にincludeを入れれば良いかと思いますが、それは期待した動作と違うのかな?


----------------
EC-CUBE公式エヴァンジェリスト
EC-CUBEインテグレートパートナー (株)スピリット・オブ
移転・拡張・高速化・問題解決
各種カスタマイズ・支援依頼承ります。

[url=h

DDR
投稿日時: 2009/7/5 0:10
対応状況: −−−
仙人
登録日: 2008/6/21
居住地: 大阪
投稿: 307
Re: 一覧ページに違うブロックを適用したい
お世話になります!

返信有難う御座います

一応確認してみました
||を追加する事で複数に出来ると思ったのですが当方では出来なかったですorz
間違っているのかもしれませんが

<!--{assign var=list value="`$smarty.const.URL_DIR`products/list.php"}-->
<!--{assign var=detail value="`$smarty.const.URL_DIR`products/detail.php"}-->

<!--{if $smarty.server.PHP_SELF==$list || $detail}-->


これは 商品一覧と商品詳細ページという事ですね

勉強になりました


{if ID取得変数=="該当ID1" || ID取得変数=="該当ID2"}

問題なのは "該当ID" を指定する事が出来なかったです


----------------
------------------------------------------------------------------------------------------
EC-CUBE 3.0.17
DBサーバー mariaDB
WEBサーバー apache (CentOS)
PHP 7.1
-----------------------...

DDR
投稿日時: 2009/7/5 0:17
対応状況: −−−
仙人
登録日: 2008/6/21
居住地: 大阪
投稿: 307
Re: 一覧ページに違うブロックを適用したい
お世話になります

ご返信有難うございます

新しいページにという事でしたら
それで問題は全くないのですが

list.phpにとなると

list.phpのレイアウトで追加したいブロックを選択できるので
呼び込み自体は問題はないのですが
レイアウトでブロックを指定しない場合はそのincludeで
呼び出し出来るので綺麗なのかもしれませんね

ただ、そのif構文を追加したいブロックに書き出している事が
そもそも考え方が間違っているという事でしょうか?


----------------
------------------------------------------------------------------------------------------
EC-CUBE 3.0.17
DBサーバー mariaDB
WEBサーバー apache (CentOS)
PHP 7.1
-----------------------...

seasoft
投稿日時: 2009/7/5 6:07
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 一覧ページに違うブロックを適用したい
> そうですね
> 動的を静的化してたので正確には
> list.php?category_id=1
> list.php?category_id=2
> になりますね

カスタマイズにより標準実装と異なる場合は、その旨を明記しておくのが適切かと思います。

当方では、DDR 様の経緯をある程度把握しているので分かりますが、把握していない方は、既に突っ込み所がズレてますよ^^;


> DB関連になってくるのですかorz

DB 周りの付近を構わずに実現することも可能ですが、現状で DB で制御している部分なので、DB 回りを変えたほうが影響・副作用も少ないはず。

テンプレートの変更は一切なく、PHP ロジックのみで可能なはずです。(未検証)

ちなみに、最初に書いた「dtb_blocposition から読み込んだデータを書き換えする方法」ならば、DB から取得したデータを書き換える方向なので、DB や DB からの取得のロジックは書き換える必要がなく、取得した後の変数データを加工する(配列要素削除かな)だけで対応できそうです。


> 複数指定してやる事はできないでしょうか?

無論可能です。

if 構文でも、swich 構文でも。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

(1) 2 3 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は89,648名です
総投稿数は110,158件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1657
8
red
1570
9
mcontact
1323
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.