EC-CUBE PHP

【EC-CUBE】CSV出力設定「出力設定リストが入力されていません」エラーで登録できない件の修正方法

投稿日:2016年10月24日 更新日:

EC-CUBE2で作ったサイトのお客様から、CSV出力設定の登録が出来ないとの連絡が。

CSV出力する項目を設定しているにもかかわらず、「※ 出力設定リストが入力されていません。」とエラーになり登録出来ないという事象。

調べてみると、特定の条件(操作)を行った時のみ発生する事象で今まで気づきませんでした。

何も手を加えていないEC-CUBE2でも同じ事象が発生したので、EC-CUBE本体の潜在的な事象のようです。

この事象の修正方法を解説します。
コピペで直せるようにソースも掲載しています。

スポンサーリンク

特定の条件で発生する

事象を再現させる方法は下記の通り。

  1. 全ての項目を「CSV出力する項目」に設定してある状態で保存します。
  2. 再度、設定画面を開き「<<」ボタンで、全ての項目を「CSV出力しない項目」へ移動します。
  3. その状態から、適当な項目を「CSV出力する項目」へ移動します。
  4. 「この内容で登録する」ボタンで保存。
  5. 「※ 出力設定リストが入力されていません。」エラーが発生。

一旦全ての項目をCSV出力しない項目にしてから、CSV出力する項目を設定していくとエラーになるんですね。
ただし、もとからCSV出力しない項目として保存済の項目をCSV出力する項目に設定するとエラーは発生しないです。

ややこしいですね。笑
お客様から連絡をうけて再現させるまで時間がかかりました。

修正方法

調べてみるとJavaScriptで出力項目の選択の状態を変更しているんですが、POSTされたデータでは未選択になっていました。

選択状態を正しくformに反映されるように処理を追加すると正しく動作します。

修正ファイルは下記のテンプレート
/data/Smarty/templates/admin/contents/csv.tpl

scriptタグの中に下記のfunctionを追加。(53行目あたり)

function setOutputList() {
	var selected = new Array();
	$('select[name="output_list[]"]').children('option[selected="selected"]').each(function() {
		selected.push($(this).val());
	});
	$('select[name="output_list[]"]').val(selected);
}

「この内容で登録する」ボタンのon_clickで、上記のfunctionを呼び出す。(83行目あたり)

変更前

<li><a class="btn-action" href="javascript:;" onclick="eccube.fnFormModeSubmit('form1', 'confirm', '', ''); return false;"><span class="btn-next">この内容で登録する</span></a></li>

変更後

<li><a class="btn-action" href="javascript:;" onclick="setOutputList();eccube.fnFormModeSubmit('form1', 'confirm', '', ''); return false;"><span class="btn-next">この内容で登録する</span></a></li>

この修正で当該エラーは解決されると思います。

お役に立てれば幸いです。
最後までお読み頂きありがとうございました!

スポンサーリンク


-EC-CUBE, PHP

執筆者:

関連記事

【EC-CUBE2】CSVをUTF-8でダウンロードさせる修正方法

デフォルトのEC-CUBE2だと、ダウンロードされるCSVはShift-JISになっています。 おそらく、EXCELでCSVを編集する事を考慮しているのでしょう。 でも、Shift-JISだと困るシー …

【PhpStorm】デプロイ構成のユーザー名とパスワードが保存されない時の対処方法

PhpStormに移行して快適な生活を過ごしております。 かなり気に入ったのですがその中でもデプロイ機能の使いやすさは抜群です! PhpStormから簡単にサーバーへのアップロードやダウンロードはもち …

【現役エンジニアがオススメ】『いきなりはじめるPHP』はプログラミング入門に最適

こんにちは!DENです。 PHPの入門書『いきなりはじめるPHP』が、なかなか良い本だったのでご紹介します。 いきなりはじめるPHP posted with ヨメレバ 谷藤賢一 リックテレコム 201 …

【PhpStorm/MAMP】デバッグ中にphpMyAdminで中断してしまう場合の対処方法

PhpStormでデバッグしていると、なぜかphpMyAdminで一時停止してしまう問題。 開発環境は、ローカルのMAMPです。 phpMyAdminを使う時は毎回デバッグをOFFにしていたのですが、 …

EclipseからPhpStormへ乗り換える時に行った事

こんにちは! DENです! 僕はもともとJavaエンジニアだったので、PHPの開発ももっぱらEclipseです。 もう10年近くEclipseを使っています。 使い慣れたIDEで不満もなく使っていまし …

プロフィール

このサイトを運営しているDENです。
アングラーのフリープログラマー。 主にプログラミングと釣の話を発信しています。
プログラミングで自由になり思う存分に釣りをしまくる生活実践中。
詳しいプロフィールはこちら 
フォスターフリーランス