質問 > フロント機能 > 複数のブロックを一つのブロック内で選択式によって表示 |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
bio |
投稿日時: 2013/3/26 20:20
対応状況: −−−
|
一人前 登録日: 2013/3/13 居住地: 投稿: 81 |
複数のブロックを一つのブロック内で選択式によって表示 お世話になります。どうか宜しくお願いします。
優良ウェブサイト等で、スペースの無駄を省くためにファイルがかさなったような形態になっていて、その同じスペースにある重なったファイルを選択式でみれるようになっているサイトをよく見かけます。 Eccubeでもできますでしょうか。 (一つのブロック内に複数のブロックを内包させ、php_pathで複数のclass_extendsに連結させ、複数のclassファイルを呼び込む様なやり方を試していますが駄目です。) どうかご教授お願いできませんでしょうか。 宜しくお願い致します。 [EC-CUBE] 2.11.5 [レンタルサーバ] ファーストEC-Cubeサーバ- [OS] Linux [PHP] PHP 5.2.17 [データベース] MySQL 5.0.67 [WEBサーバ] apache2.2.x [ブラウザ] IE8 |
AMUAMU |
投稿日時: 2013/3/27 1:18
対応状況: −−−
|
神 登録日: 2009/5/2 居住地: 東京都 投稿: 2712 |
Re: 複数のブロックを一つのブロック内で選択式によって表示 デザインレベルの話をしているのかロジックレベルの話をしているのか質問の内容が申し訳ありませんがよく分かりません
デザインレベル(見た目)の話であれば、HTML/CSS/Javascriptの話となるので、期待されるデザインについてのTipsサイトなどを参考にされるのが良いと思います。 イメージされているデザインが分かりませんが、EC-CUBEでは特に見た目のカスタマイズに特別な制限が掛かる事は無いと思います。
|
bio |
投稿日時: 2013/3/27 18:12
対応状況: −−−
|
一人前 登録日: 2013/3/13 居住地: 投稿: 81 |
Re: 複数のブロックを一つのブロック内で選択式によって表示 AMUAMU様
ご返信いただきましてありがとうございます。 ECCUBEのブロック設定を利用して一つのブロック内で複数のブロックを選択式で閲覧(そのブロックを使用してページ詳細設定で作成したページで)できるようにできるかどうかをお聞きしておりました。説明が不足しておりまして申し訳ございません。 試しました方法は、デザインレベルでは、デザイン・ブロック設定で、作成した2つのtplファイル(tplA、tplB)を一つのtplファイル(tpl1)に内包し、選択式によって選べるように、次のような記述を書きました。(この記述、およびこの記述のためのjsファイル、cssファイルはTipsサイトの実証済みのものを使用) Tpl1.tpl <div id="container"> <ul class="tab"> <li><a href="#tab1"class="selected">A</a></li> <li><a href="#tab2">B</a></li> </ul> <ul class="panel"> <li id="tab1"> tplAで記述した内容 </li> <li id="tab2"> tplBで記述した内容 </li> </ul> </div> ロジックレベルでは、このtpl1.tpl用にDBのdtb_bloc で設定したphp_pathを次の様な作りにし、2つのclass_extendsに連結させ、二つのclassファイルを呼び込めるようにしたつもりです。(選択でどうきりわけるかがわかりません。) frontparts/bloc/tpl1.php <?php // {{{ requires require_once realpath(dirname(__FILE__)) . '/../../require.php'; require_once CLASS_EX_REALDIR . 'page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_tplA_Ex.php'; require_once CLASS_EX_REALDIR . 'page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_tplB_Ex.php'; // }}} // {{{ generate page $objPage1 = new LC_Page_FrontParts_Bloc_tplA_Ex(); $objPage1->blocItems = $params['items']; register_shutdown_function(array($objPage1, 'destroy')); $objPage1->init(); $objPage1->process(); $objPage2 = new LC_Page_FrontParts_Bloc_tplB_Ex(); $objPage2->blocItems = $params['items']; register_shutdown_function(array($objPage2, 'destroy')); $objPage2->init(); $objPage2->process(); ?> 方法自体が正しいのかわかりませんが、結果は2のtplファイル(tplA、tplB)が、この二つのtplファイルを内包したtpl1(同頁上段の記述)を使ってページ詳細設定で作成したuser_data/tpl1.phpに同時に表示されます。 デザインレベルとロジックレベルが関連する質問だと思いますが、デザインレベルはtipsサイトを使用しておりますので、ロジックレベルの質問になるのかなとも思います。 これをどうしたら、選択したtplファイルが表示されるようになるか、教えていただけませんでしょうか。 |
AMUAMU |
投稿日時: 2013/3/27 18:26
対応状況: −−−
|
神 登録日: 2009/5/2 居住地: 東京都 投稿: 2712 |
Re: 複数のブロックを一つのブロック内で選択式によって表示 実際にPHPのプログラム内で何をしようとしているのかが分からないので少々抽象的な話になりますが・・・
デザインレベルでやることと、PHPのロジックレベルでやることを混同しているのではないかと思います。 Tpl1.tplの内容だけで、見た目上の切り替え機能は実現出来ていますよね? その上で、Tpl1に含まれるtplAとtplB部分の内容についてPHPレベルでデータを取り出す必要があるのであれば、片方にロジックをまとめれば良いと思います。 具体的な例を出した方が分かりやすいので示しますと 標準であるカテゴリブロックと、ログインブロックの処理をまとめ、1つのカテゴリブロック内のテンプレートで両方の見た目を扱いたいとします。 この場合、カテゴリブロックのPHPロジックであるLC_Page_FrontParts_Bloc_Category.phpに対して、LC_Page_FrontParts_Bloc_Login.phpの処理を適切に加えて、1つのLC_Page_FrontParts_Bloc_Category.php内で両方の処理(変数の割当や動作)が出来るようにする必要があります。 その上で、ログインブロックにあるテンプレートの内容をカテゴリーブロックのテンプレート内に入れる必要があります。 あとはタブ型に見せたいのであれば、これらをタブ表示するためのタグやスクリプトで修飾するだけです。 後半の frontparts/bloc/tpl1.php として記述されているような内容になることはありません。 少々やりたいことと見えるレベルの扱い、そして実際のロジックレベルでの動きを混同している感があるので、リセットして望むと良いと思います。
|
bio |
投稿日時: 2013/3/28 18:10
対応状況: −−−
|
一人前 登録日: 2013/3/13 居住地: 投稿: 81 |
Re: 複数のブロックを一つのブロック内で選択式によって表示 AMUAMU様、
ご教授頂きありがとうございます。具体例を以って解説頂きまして感謝いたします。 ご説明の箇所で下記があります。 “LC_Page_FrontParts_Bloc_Category.phpに対して、LC_Page_FrontParts_Bloc_Login.phpの処理を適切に加えて、1つのLC_Page_FrontParts_Bloc_Category.php内で両方の処理(変数の割当や動作)が出来るようにする必要があります。” ということはphpロジックにカテゴリとログインを挿入して、下記の記述のようにhtmlでtab2が選ばれたらログインブロックを表示し、それ以外はカテゴリーブロックを表示するというようにすればよろしいのでしょうか。 if (‘id’ == 'tab2') { class LC_Page_FrontParts_Bloc_Login extends LC_Page_FrontParts_Bloc ・ ・・・・・・・ ・ ・・・・・・・ }else{ class LC_Page_FrontParts_Bloc_Category extends LC_Page_FrontParts_Bloc ・ ・・・・・・・ ・ ・・・・・・・ } “その上で、ログインブロックにあるテンプレートの内容をカテゴリーブロックのテンプレート内に入れる必要があります。 あとはタブ型に見せたいのであれば、これらをタブ表示するためのタグやスクリプトで修飾するだけです。” そして、ブロック設定では以下の様なカテゴリーとログインの両方の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"> Category.tplで記述した内容 </li> <li id="tab2"> Login.tplで記述した内容 </li> </ul> </div> 試してみましたがカテゴリーブロックしか表示されず、タブ2を選択してもログインブロックが表示されません。具体的に問題点をご指摘頂けませんでしょうか。 |
AMUAMU |
投稿日時: 2013/3/29 13:39
対応状況: −−−
|
神 登録日: 2009/5/2 居住地: 東京都 投稿: 2712 |
Re: 複数のブロックを一つのブロック内で選択式によって表示 引用:
ということはphpロジックにカテゴリとログインを挿入して、下記の記述のようにhtmlでtab2が選ばれたらログインブロックを表示し、それ以外はカテゴリーブロックを表示するというようにすればよろしいのでしょうか。 ブラウザ上の表示とプログラムの動作を何か混同しているようですが、根本的な勘違いをしているようなので説明が難しいところです・・・少し基本に立ち戻って確認されると良いと思います。 使われているタブ表示の形は、画面に一時的に出ていなくても実際には存在している という表現で伝わるでしょうか・・・ プログラム内の共存方法についてはmode値で切り替えたりするわけですが、詳しくはPHPの初歩的な話なので勉強頂くしか無いと思います。
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |