質問 > フロント機能 > ECCUBEのブロックでタブパネルを作成することは可能でしょうか? |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
spgo |
投稿日時: 2012/8/30 13:24
対応状況: −−−
|
一人前 登録日: 2011/6/30 居住地: 投稿: 73 |
ECCUBEのブロックでタブパネルを作成することは可能でしょうか? ご多忙の中、恐縮でございますが、どなたかお知恵を拝借頂く事は可能でしょうか。
システム環境 [eccube] 2.12 [MySQL] 5.0.77 [PHP] 5.2.9 Eccubeのブロックでタブパネル機能を使用できないかどうかと考えております。たとえば、そのタブパネルブロック内のタブ1には新着商品5品の横並び、そしてタブ2には売り上げランキング5品の横並びといった感じです。 その場合、そのタブパネルブロック、つまりtabpanel.tplにおけるphp_pathはどのようにしたら宜しいのでしょうか。 つまり複数のタブ内の機能には各々のphp_pathを使用しなければいけませんが(例えば、新着商品用のphp_path、あるいは売り上げランキング用のphp_path)、タブパネルブロックには一つのphp_pathしか使用できないと思われます。 どのように使い分けたらよろしいのでしょうか。 あるいは、私がやろうとしていることに関して、他の違った方法があるのでしょうか? 理解不足で申し訳ございませんが、宜しくお願い申し上げます。 |
marugizmo |
投稿日時: 2012/8/30 19:37
対応状況: −−−
|
一人前 登録日: 2012/4/6 居住地: 投稿: 147 |
Re: ECCUBEのブロックでタブパネルを作成することは可能でしょうか? こんにちは
よくあるJavascriptのタブ切り替えはタブ全てのコンテンツを生成しておいて、「タブでどれを見せるかを切り替える」というのがほとんどです。 ですので、PHPで新着商品、ランキング両方の内容を生成しておいて、テンプレート側のタブで切り替えるということになります。
|
spgo |
投稿日時: 2012/8/31 15:32
対応状況: −−−
|
一人前 登録日: 2011/6/30 居住地: 投稿: 73 |
Re: ECCUBEのブロックでタブパネルを作成することは可能でしょうか? marugizmo様
お忙しい中お時間頂きまして、そして本件に関してご教授頂きまして大変感謝いたしております。ありがとうございます。 理解力が低くて大変もうしわけございませんが、 >テンプレート側のタブで切り替えるということになります。 とは具体的にどうすれば宜しいのでしょうか。 ご指摘の通り、新着商品、ランキング等のブロックは作成しております。この既存のブロックをタブパネルのブロック内で表示させるということでしょうか。 その場合、下記の様な記述の?の部分に、新着商品、ランキングのブロックで作成した記述をそのまま挿入するのではなくて、どのようにしたら宜しいのでしょうか。 tabpanel.tpl(タブパネル用に作成したブロック)内の記述***** <div id="container"> <ul class="tab"> <li><a href="#tab1" class="selected">新着商品</a></li> <li><a href="#tab2">ランキング</a></li> </ul> <ul class="panel"> <li id="tab1">?</li> <li id="tab2">?</li> </ul> </div> *********************************** |
marugizmo |
投稿日時: 2012/8/31 16:30
対応状況: −−−
|
一人前 登録日: 2012/4/6 居住地: 投稿: 147 |
Re: ECCUBEのブロックでタブパネルを作成することは可能でしょうか? こんにちは。
<li id="tab1">?</li>の中にはtab1で表示させたい内容が入ります。 同様に、<li id="tab2">?</li>にはtab2で表示させたい内容が入ります。 ですので、tabpanel.tplに内容を渡すのがtabpanel.phpだとすると、tabpanel.phpはtab1、tab2に入る両方の内容をtabpanel.tplに渡す必要があるわけです。 そのうえで、jQueryなどで最初のデフォルトで tab1 display:block; tab2 display:none; とかしておきます。※tab1が表示される。 そのうえで、li#tab2をクリックしたら tab1 display:none; tab2 display:block; と切り替えるようにします。※tab2が表示される。 li#tab1をクリックしたら、デフォルト状態に戻るようにしてください。 この辺はjQueryなどでプログラムするか、jQueryのプラグインを使われると良いのではないでしょうか。
|
spgo |
投稿日時: 2012/8/31 20:14
対応状況: −−−
|
一人前 登録日: 2011/6/30 居住地: 投稿: 73 |
Re: ECCUBEのブロックでタブパネルを作成することは可能でしょうか? marugizmo様
ご丁寧かつ詳細なご指導感謝いたします。 整理させて頂きたいのですが、 私は既に新着商品、ランキングブロックを作成し、トップページで表示させておりますが、その上でスペースを省くためにタブパネルを検討いたしました。 そして、前回頂きましたご回答からですと、下記の?内には既に作成した新着商品(new_products.tpl)、およびランキング(ranking.tpl)ブロックの内容をそのまま貼り付ければいいということですよね? 例えば以下の様な記述を?内にそのまま貼り付けるということですよね? <!--{if count($arrNewProducts) > 0}--> <div class="bloc_outer clearfix"> <div id="newproducts_area"> <!--{section name=cnt loop=$arrNewProducts step=2}--> ・・・・・・・・・ tabpanel.tpl(タブパネル用に作成したブロック)内の記述***** <div id="container"> <ul class="tab"> <li><a href="#tab1" class="selected">新着商品</a></li> <li><a href="#tab2">ランキング</a></li> </ul> <ul class="panel"> <li id="tab1">?</li> <li id="tab2">?</li> </ul> </div> *********************************** その上でtabpanel.phpを作成し、新着商品、およびランキングのphpで記述した内容を貼り付けるということでしょうか? html/frontparts/bloc/new_products.php html/frontparts/bloc/ranking.php ↓ html/frontparts/bloc/tabpanel.php 複雑になってしまい申し訳ございません。 |
marugizmo |
投稿日時: 2012/9/1 10:33
対応状況: −−−
|
一人前 登録日: 2012/4/6 居住地: 投稿: 147 |
Re: ECCUBEのブロックでタブパネルを作成することは可能でしょうか? こんにちは。
理解されている内容で問題ないと思います。 tabpanel.phpを作成される際、変数などにご注意ください。 jQueryUIを使ったタブパネルの分かりやすい例がありました。 http://5am.jp/jquery/jquery_ui_tabs/
|
spgo |
投稿日時: 2012/9/2 21:14
対応状況: −−−
|
一人前 登録日: 2011/6/30 居住地: 投稿: 73 |
Re: ECCUBEのブロックでタブパネルを作成することは可能でしょうか? marugizmo様
ご教授そして、jQueryUI関連の情報ありがとうございます。 私は前回ご質問させて頂きましたhtml/frontparts/bloc/tabpanel.phpの作り方で問題に直面しております。 tabpanel.phpの中にはhtml/frontparts/bloc/new_products.php、およびhtml/frontparts/bloc/ranking.phpの内容を盛り込むということでしたが、tabpanel.phpを作成する際、以下のnew_products.phpの内容にどのようにranking.phpの内容を盛り込めばよろしいのでしょうか? いろいろ試しておりますがうまくいきません。そのままnew_products.phpの下にranking.phpを付け加えたり、あるいはrequire_once(CLASS_EX_REALDIR .・・・、および$objPage = new・・・から続く箇所にranking.phpの”それ”を付け加えたりと、どうにもわかりません。 どのように記述したらよろしいかご教授頂けませんでしょうか? <?php // {{{ requires require_once realpath(dirname(__FILE__)) . '/../../require.php'; require_once(CLASS_EX_REALDIR . "page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_New_Products_Ex.php"); // }}} // {{{ generate page $objPage = new LC_Page_FrontParts_Bloc_New_Products_Ex(); $objPage->blocItems = $params['items']; register_shutdown_function(array($objPage, "destroy")); $objPage->init(); $objPage->process(); ?> |
spgo |
投稿日時: 2012/9/5 16:20
対応状況: −−−
|
一人前 登録日: 2011/6/30 居住地: 投稿: 73 |
Re: ECCUBEのブロックでタブパネルを作成することは可能でしょうか? いつもお世話になっております。またご多忙の中恐縮です。
現在、ECCubeのブロック上でタブパネルを機能させようとしております。その各タブには例えば、新着商品、ランキングといった既にブロックを作成したもの(既にトップページで表示している)を表示出来るようにしたいと考えております。 この場合、新着商品(html/frontparts/bloc/new_products.php)、そしてランキング(html/frontparts/bloc/ranking.php)のphpの内容を盛り込まなければならないタブパネルブロック用のphp(html/frontparts/bloc/tabpanel.php)はどのように記述すればよろしいか、 どなたかアドバイス等を頂けませんでしょうか? 以下の様に記述いたしましたが、駄目なようです。 ****** html/frontparts/bloc/tabpanel.php ********* <?php // {{{ requires require_once realpath(dirname(__FILE__)) . '/../../require.php'; require_once(CLASS_EX_REALDIR . "page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_New_Products_Ex.php", "page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_Ranking_Ex.php"); // }}} // {{{ generate page $objPage = new LC_Page_FrontParts_Bloc_New_Products_Ex(),new LC_Page_FrontParts_Bloc_Ranking_Ex(); $objPage->blocItems = $params['items']; register_shutdown_function(array($objPage, "destroy")); $objPage->init(); $objPage->process(); ?> |
marugizmo |
投稿日時: 2012/9/7 14:11
対応状況: −−−
|
一人前 登録日: 2012/4/6 居住地: 投稿: 147 |
Re: ECCUBEのブロックでタブパネルを作成することは可能でしょうか? こんにちは。
tabpanel.phpを作成する場合、単純に両方並べただけでは動かないと思います。 ファンクションなどをきちんと把握しながら、tabpanel.phpを作成する必要があります。 あと、dtb_blocなどDBの調整も必要です。
|
spgo |
投稿日時: 2012/9/20 12:15
対応状況: −−−
|
一人前 登録日: 2011/6/30 居住地: 投稿: 73 |
Re: ECCUBEのブロックでタブパネルを作成することは可能でしょうか? よろしくお願いします。
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |