バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 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]:
failed to open stream: No such file or directory in /home/ドメイン/www/data/require_safe.php on line 38


このエラーの原因を探ってみると良いのではないでしょうか。
エラーの意味は、/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以上でカテゴリ毎に説明文や画像を載せる追加機能について
これを試したら、うまくいきませんか?

http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=5609&forum=2
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() 内がちょっと違う気がします。


$this->objFormParam->addParam(


$objFormParam->addParam(
« 1 2 3 (4) 5 6 7 »
| 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

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