Fatal Error: Unexpected BLOG

主に自分用の備忘録として

【EC-CUBE】カテゴリに項目を追加する

EC-CUBEの管理画面からカテゴリを登録/編集する画面に、項目を追加する方法です。

以下のサイトを参考にさせて頂きました。

早速取り掛かります。

データベースにカラムを追加

dtb_categoryにカラムを追加します。

phpMyAdminから追加しました。

    ALTER TABLE  `dtb_category` ADD  `new_column` VARCHAR( 1024 ) NULL

今回追加する項目はURLを入力することを想定しているので、最大長はやや多め。
そしてNullを許可しています。

クラスファイルを編集

LC_Page_Admin_Products_Category.phpを編集します。

408行目あたり。

    public function initParam(&objFormParam)
    {
        ...
        $objFormParam->addParam('追加情報', 'new_column', 1024, 'KVa', array('MAX_LENGTH_CHECK'));
    }

「追加情報」パラメータを追加。

エラーチェックは長さのみ。

テンプレートファイル編集

data/Smarty/templates/admin/products/category.tpl を編集します。

※パスは適宜読み替えてください。

59行目あたり

    <div class="now_dir">
        ... 
        <input class="box30" maxlength="1024" name="new_column" size="30" type="text" value="<!--{$arrForm.new_column|h}-->" />
        <a class="btn-normal"><span class="btn-next">登録</span></a><span class="attention">(上限1024文字)</span>
    </div>

これで、管理画面からカテゴリ登録/編集時に「追加情報(new_column)」を登録できるようになります。

参考サイトでは、$arrCat[0]からアクセスしていましたが、今回私が関わったケースではもう一工夫必要だったのでSC_Product.phpメソッドを追加し、一工夫後のデータを直接$arrProductに持たせる形にしました。

思ったよりずっと少ない変更で済んでヨカッタヨカッタ。