質問 > フロント機能 > 2.11.0以上でカテゴリ毎に説明文や画像を載せる追加機能について |
フロント機能
| 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
have |
投稿日時: 2011/6/4 22:34
対応状況: −−−
|
一人前 登録日: 2010/11/4 居住地: 東京都 投稿: 83 |
Re: 2.11.0以上でカテゴリ毎に説明文や画像を載せる追加機能について http://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=thread&topic_id=7698&forum=10&post_id=39083#forumpost39083を参考して、改造ができなかったです。
function doRegister(&$objFormParam)に ------------------------------------------ // カテゴリ登録 $this->registerCategory( $objFormParam->getValue('parent_category_id'), $objFormParam->getValue('category_name'), $objFormParam->getValue('category_info'), $objFormParam->getValue('info_flg'), $_SESSION['member_id']); ------------------------------------------- エラー:Parse error: syntax error, unexpected T_VARIABLE in /home/ドメインwww/data/class/pages/admin/products/LC_Page_Admin_Products_Category.php on line 357 (357行:$objFormParam->getValue('info_flg'),) ------------------------------------------ EC-CUBE]2.11.1 新規インストール [レンタルサーバ]さくら [OS]FreeBSD 7.1-RELEASE-p15 i386 [PHP] PHP 5.2.17 [データベース]MySQL 5.1 [WEBサーバ]Apache |
fukap |
投稿日時: 2011/6/4 23:37
対応状況: −−−
|
仙人 登録日: 2009/7/7 居住地: 滋賀県 投稿: 907 |
Re: 2.11.0以上でカテゴリ毎に説明文や画像を載せる追加機能について カテゴリ毎に説明文や画像を載せる追加機能については、
EC-CUBEの学校様や、公式カスタマイズ本で掲載されている情報のようです。 本スレの話は、その情報を元に、2.11で使うにはどこを直せば良いかという話ですので、 そちらも参照されると話がわかるのではないかと思います。 EC-CUBEの学校 http://www.eccube-school.jp/products/detail43.html p.s. この機能、とてもニーズがあるようですね。 2.12で標準化できないかな。 |
have |
投稿日時: 2011/6/5 10:51
対応状況: −−−
|
一人前 登録日: 2010/11/4 居住地: 東京都 投稿: 83 |
Re: 2.11.0以上でカテゴリ毎に説明文や画像を載せる追加機能について 有難うございます。
なお、logファイルに文字化けにどうすればいいですか? logファイルに 鍦х府锛歛bouts 鍦х府锛歝art 鍦х府锛歝ontact 鍦х府锛歟ntry 鍦х府锛歠orgot 鍦х府锛歠rontparts 鍦х府锛歡uide 鍦х府锛歮ail_templates 鍦х府锛歮ypage 鍦х府锛歰rder このような文字化けが出ました、どう直せますか? (データベース文字コード:UTF-8) -------------------------------- EC-CUBE]2.11.1 新規インストール [レンタルサーバ]さくら [OS]FreeBSD 7.1-RELEASE-p15 i386 [PHP] PHP 5.2.17 [データベース]MySQL 5.1 [WEBサーバ]Apache |
fukap |
投稿日時: 2011/6/5 11:39
対応状況: −−−
|
仙人 登録日: 2009/7/7 居住地: 滋賀県 投稿: 907 |
Re: 2.11.0以上でカテゴリ毎に説明文や画像を載せる追加機能について have様へ
本スレッドと関係ない話題ですし、 すでにその件のスレッドを立てられているようですので、 レスがあるのをお待ちください。 |
have |
投稿日時: 2011/6/5 13:37
対応状況: −−−
|
一人前 登録日: 2010/11/4 居住地: 東京都 投稿: 83 |
Re: 2.11.0以上でカテゴリ毎に説明文や画像を載せる追加機能について 「/data/class/pages/admin/products/LC_Page_Admin_Products_Category.php に以下の関数を編集しましたが、管理画面にエラーが出ました
(Warning: require_once(/home/ドメイン/www/data//data/app_initial.php) [function.require-once]: failed to open stream: No such file or directory in /home/ドメイン/www/data/require_safe.php on line 38 Fatal error: require_once() [function.require]: Failed opening required '/home/ドメイン/www/data//data/app_initial.php' (include_path='/home/ドメイン/www/data/module') in /home/ドメイン/www/data/require_safe.php on line 38) ---------- log file に『FATAL Error: /home/ドメイン/www/data/class/pages/admin/products/LC_Page_Admin_Products_Category.php:425 Call to a member function addParam() on a non-object』 ------------------------------------------------- 編集な関数以下です: /** * 編集対象のカテゴリ名を, 入力ボックスへ表示する. * * @param SC_FormParam $objFormParam * @return void */ function doPreEdit(&$objFormParam) { $category_id = $objFormParam->getValue('category_id'); $objQuery =& SC_Query_Ex::getSingletonInstance(); // 編集対象のカテゴリ名をDBより取得する $where = "category_id = ?"; $col = "category_name, category_info, info_flg, level"; //追加 $arrRet = $objQuery->select($col, “dtb_category”, $where, array($_POST['category_id']));//追加 //$category_name = $objQuery->get("category_name", "dtb_category", $where, array($category_id));/ /コメントアウ // 入力ボックスへカテゴリ名を保持する. //$this->arrForm['category_name'] = $category_name;//コメントアウ $this->arrForm['category_name'] = $arrRet[0]['category_name'];//追加 $this->arrForm['category_info'] = $arrRet[0]['category_info'];//追加 $this->arrForm['info_flg'] = $arrRet[0]['info_flg'];//追加 $this->arrForm['level'] = $arrRet[0]['level'];//追加 // カテゴリIDを保持する. $this->arrForm['category_id'] = $category_id; } /** * カテゴリの編集を実行する. * * 下記の場合は, 編集を実行せず、エラーメッセージを表示する * * - カテゴリ名がすでに使用されている場合 * * @param SC_FormParam $objFormParam * @return void */ function doEdit(&$objFormParam) { // 入力項目チェック $arrErr = $objFormParam->checkError(); if (count($arrErr) > 0) { $this->arrErr = $arrErr; $this->arrForm['category_id'] = $objFormParam->getValue('category_id'); $this->arrForm['category_name'] = $objFormParam->getValue('category_name'); return; } // 重複チェック $objQuery =& SC_Query_Ex::getSingletonInstance(); $where = "parent_category_id = ? AND category_id <> ? AND category_name = ?"; $count = $objQuery->count("dtb_category", $where, array($objFormParam->getValue('parent_category_id'), $objFormParam->getValue('category_id'), $objFormParam->getValue('category_name'))); if ($count > 0) { $this->arrErr['category_name'] = "※ 既に同じ内容の登録が存在します。<br/>"; $this->arrForm['category_id'] = $objFormParam->getValue('category_id'); $this->arrForm['category_name'] = $objFormParam->getValue('category_name'); return; } // カテゴリ更新 $arrCategory = array(); $arrCategory['category_name'] = $objFormParam->getValue('category_name'); $arrCategory['update_date'] = 'NOW()'; $this->updateCategory($objFormParam->getValue('category_id'), $arrCategory); } /** * カテゴリの登録を実行する. * * 下記の場合は, 登録を実行せず、エラーメッセージを表示する * * - カテゴリ登録数の上限を超える場合 * - 階層登録数の上限を超える場合 * - カテゴリ名がすでに使用されている場合 * * @param SC_FormParam $objFormParam * @return void */ function doRegister(&$objFormParam) { // 入力項目チェック $arrErr = $objFormParam->checkError(); if (count($arrErr) > 0) { $this->arrErr = $arrErr; $this->arrForm['category_name'] = $objFormParam->getValue('category_name'); $this->arrForm['category_info'] = $objFormParam->getValue('category_info');//追加 $this->arrForm['info_flg'] = $objFormParam->getValue('info_flg');//追加 return; } // 登録数上限チェック $objQuery =& SC_Query_Ex::getSingletonInstance(); $where = "del_flg = 0"; $count = $objQuery->count("dtb_category", $where); if ($count >= CATEGORY_MAX) { $this->arrErr['category_name'] = "※ カテゴリの登録最大数を超えました。<br/>"; $this->arrForm['category_name'] = $objFormParam->getValue('category_name'); return; } // 階層上限チェック if ($this->isOverLevel($objFormParam->getValue('parent_category_id'))) { $this->arrErr['category_name'] = "※ " . LEVEL_MAX . "階層以上の登録はできません。<br/>"; $this->arrForm['category_name'] = $objFormParam->getValue('category_name'); return; } // 重複チェック $where = "parent_category_id = ? AND category_name = ?"; $count = $objQuery->count("dtb_category", $where, array($objFormParam->getValue('parent_category_id'), $objFormParam->getValue('category_name'))); if ($count > 0) { $this->arrErr['category_name'] = "※ 既に同じ内容の登録が存在します。<br/>"; $this->arrForm['category_name'] = $objFormParam->getValue('category_name'); return; } // カテゴリ登録 $this->registerCategory($objFormParam->getValue('parent_category_id'), $objFormParam->getValue('category_name'), $objFormParam->getValue('category_info'),//追加 $objFormParam->getValue('info_flg'),//追加 $_SESSION['member_id']); } --------------------------------------- /** * パラメータの初期化を行う * * @param SC_FormParam $objFormParam * @return void */ function initParam(&$objFormParam) { //$objFormParam->addParam("親カテゴリID", "parent_category_id", null, null, array()); //$objFormParam->addParam("カテゴリID", "category_id", null, null, array()); //$objFormParam->addParam("カテゴリ名", "category_name", STEXT_LEN, 'KVa', array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK")); $this->objFormParam->addParam("カテゴリ名", "category_name", STEXT_LEN, "KVa", array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK")); $this->objFormParam->addParam("カテゴリ説明", "category_info", LLTEXT_LEN, "KVa", array("SPTAB_CHECK","MAX_LENGTH_CHECK"));//追加 $this->objFormParam->addParam("親カテゴリ説明のコピー", "info_flg", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));//追加 } ------------------------------------------------- /** * カテゴリを更新する * * @param integer $category_id 更新対象のカテゴリID * @param array 更新する カラム名 => 値 の連想配列 * @return void */ function updateCategory($category_id, $arrCategory) { $objQuery =& SC_Query_Ex::getSingletonInstance(); $objQuery->begin(); $where = "category_id = ?"; //追記:親の設定を引き継ぐ時 if($arrCategory['info_flg']) { $parent_category_id = $objQuery->get("dtb_category","parent_category_id", $where, array($category_id)); $arrCategory['category_info'] = $this->lfGetParentInfo($objQuery, $parent_category_id); } $objQuery->update("dtb_category", $arrCategory, $where, array($category_id)); $objQuery->commit(); } /** * カテゴリを登録する * * @param integer 親カテゴリID * @param string カテゴリ名 * @param integer 作成者のID * @return void */ function registerCategory($parent_category_id, $category_name, $category_info, $info_flg, $creator_id) { $objQuery =& SC_Query_Ex::getSingletonInstance(); $objQuery->begin(); $rank = null; if ($parent_category_id == 0) { // ROOT階層で最大のランクを取得する。 $where = "parent_category_id = ?"; $rank = $objQuery->max('rank', "dtb_category", $where, array($parent_category_id)) + 1; } else { // 親のランクを自分のランクとする。 $where = "category_id = ?"; $rank = $objQuery->get('rank', "dtb_category", $where, array($parent_category_id)); // 追加レコードのランク以上のレコードを一つあげる。 $sqlup = "UPDATE dtb_category SET rank = (rank + 1) WHERE rank >= ?"; $objQuery->exec($sqlup, array($rank)); } $where = "category_id = ?"; // 自分のレベルを取得する(親のレベル + 1) $level = $objQuery->get('level', "dtb_category", $where, array($parent_category_id)) + 1; $arrCategory = array(); $arrCategory['category_name'] = $category_name; $arrCategory['parent_category_id'] = $parent_category_id; $arrCategory['create_date'] = "Now()"; $arrCategory['update_date'] = "Now()"; $arrCategory['creator_id'] = $creator_id; $arrCategory['rank'] = $rank; $arrCategory['level'] = $level; $arrCategory['category_id'] = $objQuery->nextVal('dtb_category_category_id'); $arrCategory['category_info'] = $category_info;//追加 $arrCategory['info_flg'] = $info_flg;//追加 //追記:親の設定を引き継ぐ時 if($arrCategory['info_flg']) { //$parent_category_id = $objQuery->get("parent_category_id","dtb_category", $where, array($category_id)); $arrCategory['category_info'] = $this->lfGetParentInfo($objQuery, $parent_category_id); } $objQuery->insert("dtb_category", $arrCategory); $objQuery->commit(); // トランザクションの終了 } ---------------------------------------------------------------------------------------------------------- /** * デストラクタ. * * @return void */ function destroy() { parent::destroy(); } // 追記:親のcategory_infoを取得する function lfGetParentInfo($objQuery, $pid) { $where = "category_id = ?"; $parent_info = $objQuery->get("dtb_category","category_info", $where, array($pid)); return $parent_info; } -------------------------------------- コードが長くてごめんなさい。 宜しくお願いします ------------------------------------------------------------ EC-CUBE]2.11.1 新規インストール [レンタルサーバ]さくら [OS]FreeBSD 7.1-RELEASE-p15 i386 [PHP] PHP 5.2.17 [データベース]MySQL 5.1 [WEBサーバ]Apache |
fukap |
投稿日時: 2011/6/5 16:45
対応状況: −−−
|
仙人 登録日: 2009/7/7 居住地: 滋賀県 投稿: 907 |
Re: 2.11.0以上でカテゴリ毎に説明文や画像を載せる追加機能について 引用:
(Warning: require_once(/home/ドメイン/www/data//data/app_initial.php) [function.require-once]: このエラーの原因を探ってみると良いのではないでしょうか。 エラーの意味は、/home/ドメイン/www/data//data/app_initial.php というファイルを開こうとしたが、 ファイルが見つからないというものです。 ファイルのパスがおかしいように思えます。 define.php の HTML2DATA_DIR が正しく定義されているか確認してみてください。 |
have |
投稿日時: 2011/6/5 20:12
対応状況: −−−
|
一人前 登録日: 2010/11/4 居住地: 東京都 投稿: 83 |
Re: 2.11.0以上でカテゴリ毎に説明文や画像を載せる追加機能について fukap様: 返信頂いて、有難うございました。
以下define.phpのコードです、どう設定すればいいですか? 宜しくお願いします。 ------------------------------------------ <?php /** HTMLディレクトリからのDATAディレクトリの相対パス */ /* define("HTML2DATA_DIR", "../data/"); */ define("HTML2DATA_DIR", "/data/"); /** data/module 以下の PEAR ライブラリのみを使用する */ set_include_path(realpath(dirname(__FILE__) . "/" . HTML2DATA_DIR . "module")); /** * DIR_INDEX_FILE にアクセスするときにファイル名を使用するか * * true: 使用する, false: 使用しない, null: 自動(IIS は true、それ以外は false) * ※ IIS は、POST 時にファイル名を使用しないと不具合が発生する。(http://support.microsoft.com/kb/247536/ja) */ define('USE_FILENAME_DIR_INDEX', null); /* * Local variables: * coding: utf-8 * tab-width: 4 * c-basic-offset: 4 * c-hanging-comment-ender-p: nil * End: */ ?> このように変更すれば、 define("HTML2DATA_DIR", ""); エラー: Warning: require_once(/home/running/www/require_safe.php) [function.require-once]: failed to open stream: No such file or directory in /home/running/www/error.php on line 26 Fatal error: require_once() [function.require]: Failed opening required '/home/running/www/require_safe.php' (include_path='/home/running/www/module') in /home/running/www/error.php on line 26 |
fukap |
投稿日時: 2011/6/5 21:02
対応状況: −−−
|
仙人 登録日: 2009/7/7 居住地: 滋賀県 投稿: 907 |
Re: 2.11.0以上でカテゴリ毎に説明文や画像を載せる追加機能について
|
sakura0123 |
投稿日時: 2011/6/5 21:06
対応状況: −−−
|
常連 登録日: 2011/5/26 居住地: 投稿: 34 |
Re: 2.11.0以上でカテゴリ毎に説明文や画像を載せる追加機能について お世話になっております。
/data/class/pages/admin/products/LC_Page_Admin_Products_Category.phpに対し、have様の編集を参考に同様の処理を行いましたが、同じくエラーが出ました。 管理画面 「システムエラーが発生しました。 大変お手数ですが、サイト管理者までご連絡ください。」 ログ FATAL Error: ドメイン/data/class/pages/admin/products/LC_Page_Admin_Products_Category.php:423 Call to a member function addParam() on a non-object こちらもdefine.php の HTML2DATA_DIRが問題でしょうか? 便乗させて頂き、大変恐縮ではございますが宜しくお願いいたします。 |
fukap |
投稿日時: 2011/6/5 21:18
対応状況: −−−
|
仙人 登録日: 2009/7/7 居住地: 滋賀県 投稿: 907 |
Re: 2.11.0以上でカテゴリ毎に説明文や画像を載せる追加機能について initParam() 内がちょっと違う気がします。
誤
正
|
« 1 2 3 (4) 5 6 7 » |
| 新しいものから | 前のトピック | 次のトピック | トップ |