質問 > フロント機能 > ブロックの追加について |
フロント機能
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
ゲスト |
投稿日時: 2012/7/6 18:48
対応状況: 解決済
|
Re: ブロックの追加について また困った時のためにまとめ
PC上のxampp環境でサイトを作成中なので下記のファイル構造です。 ・/xampp/htdocs/eccube/frontparts/bloc/user_recommend.php ・/xampp/htdocs/eccube/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_UserRecommend.php ・/xampp/htdocs/eccube/data/class_extends/page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_UserRecommend_Ex.php ・/xampp/htdocs/eccube/data/Smarty/templates/****/frontparts/bloc/user_recommend.tpl これに、SQLが INSERT INTO dtb_bloc (device_type_id, bloc_id, bloc_name, tpl_path, filename, create_date, update_date, php_path, deletable_flg) VALUES (10, 10, 'おすすめ商品(オリジナル)', 'user_recommend.tpl', 'user_recommend', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 'frontparts/bloc/user_recommend.php', 0); INSERT INTO dtb_blocposition (device_type_id, page_id, target_id, bloc_id, bloc_row, anywhere) VALUES (10, 29, 1, 10, 1, 0); それぞれのファイルの内容は下記の通り。 user_recommend.php ----------------------------------------------------------------------- <?php require_once realpath(dirname(__FILE__)) . '/../../require.php'; require_once CLASS_EX_REALDIR . 'page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_UserRecommend_Ex.php'; $objPage = new LC_Page_FrontParts_BLoc_UserRecommend_Ex(); $objPage->blocItems = $params['items']; register_shutdown_function(array($objPage, 'destroy')); $objPage->init(); $objPage->process(); ?> LC_Page_FrontParts_Bloc_UserRecommend_Ex.php ----------------------------------------------------------------------- <?php require_once CLASS_REALDIR . 'pages/frontparts/bloc/LC_Page_FrontParts_Bloc_UserRecommend.php'; class LC_Page_FrontParts_Bloc_UserRecommend_Ex extends LC_Page_FrontParts_Bloc_UserRecommend { /** * Page を初期化する. * * @return void */ function init() { parent::init(); } /** * Page のプロセス. * * @return void */ function process() { parent::process(); } /** * デストラクタ. * * @return void */ function destroy() { parent::destroy(); } } ?> LC_Page_FrontParts_Bloc_UserRecommend.php ----------------------------------------------------------------------- <?php require_once CLASS_REALDIR . 'pages/frontparts/bloc/LC_Page_FrontParts_Bloc.php'; class LC_Page_FrontParts_Bloc_UserRecommend extends LC_Page_FrontParts_Bloc { /** * Page を初期化する. * * @return void */ function init() { parent::init(); } /** * Page のプロセス. * * @return void */ function process() { $this->action(); $this->sendResponse(); } /** * Page のアクション. * * @return void */ function action() { } /** * デストラクタ. * * @return void */ function destroy() { parent::destroy(); } } ?> |
|
ゲスト |
投稿日時: 2012/7/6 18:35
対応状況: −−−
|
Re: ブロックの追加について 申し訳ございません。
確かに綴りが間違っておりました。 綴りを変更したところ、追加したブロックが正常に表示されました。 本当にありがとうございました。 PS 最後に、ぜひ2.12系のカスタマイズをHPに載せて下さい。参考にします。 |
|
PWS |
投稿日時: 2012/7/6 17:11
対応状況: −−−
|
一人前 登録日: 2012/1/23 居住地: Itami Hyogo 投稿: 141 |
Re: ブロックの追加について アップしていただいたソースを見ていて気が付きました。
LC_Page_FrontParts_Bloc_UserRecommned.php 綴りがファイル名と違いますね(^^;
|
ゲスト |
投稿日時: 2012/7/6 16:57
対応状況: −−−
|
Re: ブロックの追加について データベースはphpMyAdminを使用し作業しました。
方法は、install/insert_data.sql内の INSERT INTO dtb_bloc (device_type_id, bloc_id, bloc_name, tpl_path, filename, create_date, update_date, php_path, deletable_flg) VALUES (10, 9, '【ヘッダー】ログイン', 'login_header.tpl', 'login_header', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 'frontparts/bloc/login_header.php', 0); を INSERT INTO dtb_bloc (device_type_id, bloc_id, bloc_name, tpl_path, filename, create_date, update_date, php_path, deletable_flg) VALUES (10, 10, 'おすすめ商品(オリジナル)', 'user_recommend.tpl', 'user_recommend', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 'frontparts/bloc/user_recommend.php', 0); INSERT INTO dtb_blocposition (device_type_id, page_id, target_id, bloc_id, bloc_row, anywhere) VALUES (10, 28, 1, 3, 1, 0); を INSERT INTO dtb_blocposition (device_type_id, page_id, target_id, bloc_id, bloc_row, anywhere) VALUES (10, 29, 1, 10, 1, 0); にそれぞれ変更し、phpMyAdminにて、dtb_blocとdtb_blocpositionに追加しました。 ただ… dtb_blocpositionのbloc_idがよくわからず10としておきました。 |
|
ゲスト |
投稿日時: 2012/7/6 16:45
対応状況: −−−
|
Re: ブロックの追加について 申し訳有りません。
・html/frontparts/bloc/user_recommend.php ・data/class_extends/page_extends/LC_Page_FrontParts_Bloc_UserRecommend_Ex.php ・data/class/page/LC_Page_FrontParts_Bloc_UserRecommend.php ・data/Smarty/templates/****/frontparts/Bloc/user_recommend.tpl ではなく、 ・/frontparts/bloc/user_recommend.php ・/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_UserRecommned.php ・/data/class_extends/page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_UserRecommend_Ex.php ・/data/Smarty/templates/****/frontparts/bloc/user_recommend.tpl でした。 PC上のxampp環境でサイトを作成中なので、こいう状態です。 /xampp/htdocs/eccube/frontparts/bloc/user_recommend.php /xampp/htdocs/eccube/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_UserRecommned.php /xampp/htdocs/eccube/data/class_extends/page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_UserRecommend_Ex.php /xampp/htdocs/eccube/data/Smarty/templates/****/frontparts/bloc/user_recommend.tpl |
|
PWS |
投稿日時: 2012/7/6 15:19
対応状況: −−−
|
一人前 登録日: 2012/1/23 居住地: Itami Hyogo 投稿: 141 |
Re: ブロックの追加について エラーメッセージからすると、ファイルの配置が違うからrequireするファイルがない、と怒られているようですが。
とりあえず、ソースを順番に追っかけます。 まずは user_recommend.php このファイルのrequire文は以下の通り。 require_once CLASS_EX_REALDIR . 'page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_UserRecommend_Ex.php'; ちなみにCLASS_EX_REALDIRはclass_extendsディレクトリへのパス(/data/class_extends)の定数です。 つまり /data/class_extends/page_extends/frontparts/bloc の下にある LC_Page_FrontParts_Bloc_UserRecommend_Ex.php ファイルを呼び出しています。 で、その呼び出されたファイル LC_Page_FrontParts_Bloc_UserRecommend_Ex.php のdequire文は require_once CLASS_REALDIR . 'pages/frontparts/bloc/LC_Page_FrontParts_Bloc_UserRecommned.php'; こちらの示しているのは /data/class/pages/frontparts/blocディレクトリの下の LC_Page_FrontParts_Bloc_UserRecommned.php を読み込んでます。 LC_Page_FrontParts_Bloc_UserRecommned.phpのrequire文は require_once CLASS_REALDIR . 'pages/frontparts/bloc/LC_Page_FrontParts_Bloc.php'; で、/data/class/pages/frontparts/blocの下の LC_Page_FrontParts_Bloc.php を読み込んでいます。 これらの配置が正しく行われているのであれば、あとはDB側の問題ですね。 DBのmtb_bloc(だったと思うのですが、うろ覚えでごめんなさい)に値の登録はされていますでしょうか?
|
PWS |
投稿日時: 2012/7/6 15:05
対応状況: −−−
|
一人前 登録日: 2012/1/23 居住地: Itami Hyogo 投稿: 141 |
Re: ブロックの追加について えーと、確認しますと、親記事のファイルの配置(ディレクトリ)は正しくなくて、上記で書かれているファイルの配置(ディレクトリ)が正しい、ということでしょうか?
それから2番目のご回答で「LC_Page_FrontParts_Bloc_UserRecommend_Ex.php」の中身を二つ貼り付けていただいてますが、これ、中身が全く同じに見えるのですが、どちらがclassディレクトリでどちらがclass_extendディレクトリのファイルの中身でしょうか。 どちらも require_once CLASS_REALDIR . 'pages/frontparts/bloc/LC_Page_FrontParts_Bloc_UserRecommned.php'; と書かれているところをみると、たぶんこれはclass_extendsのblocディレクトリにあるファイルなんじゃないかなあ、と思うのですが。 失礼しました、これは私の見間違いです。
|
ゲスト |
投稿日時: 2012/7/6 14:45
対応状況: −−−
|
Re: ブロックの追加について 正直、参考にしたものを真似て作っただけなので、コードもわかっていなのですが・・・
各ファイルのは下記のように配置してあります。 ・/frontparts/bloc/user_recommend.php ・/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_UserRecommned.php ・/data/class_extends/page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_UserRecommend_Ex.php ・/data/Smarty/templates/****/frontparts/bloc/user_recommend.tpl 引用:
はい。上記のような配置になっております。 引用:
LC_Page_FrontParts_Bloc_UserRecommend_Ex.phpファイルの require_once CLASS_REALDIR . 'pages/frontparts/bloc/LC_Page_FrontParts_Bloc_UserRecommned.php'; ではなく require_once CLASS_REALDIR . 'data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_UserRecommned.php'; にすれば良いということでしょうか? |
|
PWS |
投稿日時: 2012/7/6 12:31
対応状況: −−−
|
一人前 登録日: 2012/1/23 居住地: Itami Hyogo 投稿: 141 |
Re: ブロックの追加について require_once CLASS_REALDIR . 'pages/frontparts/bloc/LC_Page_FrontParts_Bloc_UserRecommned.php';
で指定しているディレクトリ(class/pages/frontparts/bloc/) に、 LC_Page_FrontParts_Bloc_UserRecommned.php がありますか? data/class/page/LC_Page_FrontParts_Bloc_UserRecommend.php に配置されているのであれば、ディレクトリ違いますよね? #class_expandも配置されてるディレクトリが違うように思いますが、もしかして同名のファイルが/flontparts/bloc内にありませんか?
|
ゲスト |
投稿日時: 2012/7/6 12:18
対応状況: −−−
|
Re: ブロックの追加について 返答いただきありがとうございます。
アドバイスを頂きましたが、わからないので、各ファイルのコードを載せてみます。 よろしくお願いいたします。 user_recommend.php ---------------------------------------------------------------------------------------- <?php require_once realpath(dirname(__FILE__)) . '/../../require.php'; require_once CLASS_EX_REALDIR . 'page_extends/frontparts/bloc/LC_Page_FrontParts_Bloc_UserRecommend_Ex.php'; $objPage = new LC_Page_FrontParts_BLoc_UserRecommend_Ex(); $objPage->blocItems = $params['items']; register_shutdown_function(array($objPage, 'destroy')); $objPage->init(); $objPage->process(); ?> LC_Page_FrontParts_Bloc_UserRecommend_Ex.php ---------------------------------------------------------------------------------------- <?php require_once CLASS_REALDIR . 'pages/frontparts/bloc/LC_Page_FrontParts_Bloc_UserRecommned.php'; class LC_Page_FrontParts_Bloc_UserRecommned_Ex extends LC_Page_FrontParts_Bloc_UserRecommned { /** * Page を初期化する. * * @return void */ function init() { parent::init(); } /** * Page のプロセス. * * @return void */ function process() { parent::process(); } /** * デストラクタ. * * @return void */ function destroy() { parent::destroy(); } } ?> LC_Page_FrontParts_Bloc_UserRecommend.php ---------------------------------------------------------------------------------------- <?php require_once CLASS_REALDIR . 'pages/frontparts/bloc/LC_Page_FrontParts_Bloc.php'; class LC_Page_FrontParts_Bloc_UserRecommend extends LC_Page_FrontParts_Bloc { /** * Page を初期化する. * * @return void */ function init() { parent::init(); } /** * Page のプロセス. * * @return void */ function process() { $this->action(); $this->sendResponse(); } /** * Page のアクション. * * @return void */ function action() { } /** * デストラクタ. * * @return void */ function destroy() { parent::destroy(); } } ?> |
|
(1) 2 » |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |