Skip to content

Commit

Permalink
郵便番号CSVが存在しないとエラー停止する EC-CUBE#3
Browse files Browse the repository at this point in the history
SVN で dummy が存在しなかった空ディレクトリーが無かった事になっている EC-CUBE#4
  * 一部のみ修正
typo修正・ソース整形・ソースコメントの改善 for 2.13.4 EC-CUBE#5
  • Loading branch information
seasoftjapan committed Jan 2, 2015
1 parent deb24e6 commit 7fc7df0
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 21 deletions.
4 changes: 3 additions & 1 deletion data/Smarty/templates/admin/basis/zip_install.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,9 @@
<p>保存されている郵便番号CSVの更新日時: <!--{$tpl_csv_datetime|h}--></p>
<p>郵便番号CSVには <!--{$tpl_line|h}--> 行のデータがあります。</p>
<p>郵便番号DBには <!--{$tpl_count_mtb_zip|h}--> 行のデータがあります。</p>
<!--{if $tpl_count_mtb_zip == 0}-->
<!--{if $tpl_line == 0}-->
<p class="attention">郵便番号CSVを取得してください。</p>
<!--{elseif $tpl_count_mtb_zip == 0}-->
<p class="attention">登録を行なってください。</p>
<!--{elseif $tpl_line <> $tpl_count_mtb_zip}-->
<p class="attention">行数に差異があります。登録に異常がある恐れがあります。</p>
Expand Down
59 changes: 39 additions & 20 deletions data/class/pages/admin/basis/LC_Page_Admin_Basis_ZipInstall.php
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,9 @@ public function action()
case 'manual':
$this->insertMtbZip($this->arrForm['startRowNum']);
break;

default:
break;
}
SC_Response_Ex::actionExit();
}
Expand All @@ -131,7 +134,7 @@ public function action()
break;

// 郵便番号CSV更新
case 'update_csv';
case 'update_csv':
$this->lfDownloadZipFileFromJp();
$this->lfExtractZipFile();

Expand All @@ -141,12 +144,15 @@ public function action()

// 自動登録時の郵便番号CSV更新
// XXX iframe内にエラー表示しない様、ここでlfDownloadZipFileFromJp()を呼ぶ。
case 'auto';
case 'auto':
if (!$this->tpl_skip_update_csv) {
$this->lfDownloadZipFileFromJp();
$this->lfExtractZipFile();
}
break;

default:
break;
}

$this->tpl_line = $this->countZipCsv();
Expand Down Expand Up @@ -234,6 +240,9 @@ public function insertMtbZip($start = 1)
$img_cnt = 0;

$fp = $this->openZipCsv();
if (!$fp) {
trigger_error(ZIP_CSV_UTF8_REALFILE . ' の読み込みに失敗しました。', E_USER_ERROR);
}
while (!feof($fp)) {
$arrCSV = fgetcsv($fp, ZIP_CSV_LINE_MAX);
if (empty($arrCSV)) continue;
Expand Down Expand Up @@ -288,16 +297,20 @@ public function openZipCsv()
{
$this->convertZipCsv();
$fp = fopen(ZIP_CSV_UTF8_REALFILE, 'r');
if (!$fp) {
trigger_error(ZIP_CSV_UTF8_REALFILE . ' の読み込みに失敗しました。', E_USER_ERROR);
}

return $fp;
}

public function convertZipCsv()
{
if (file_exists(ZIP_CSV_UTF8_REALFILE)) return;
// 変換先ファイルが存在する場合
if (file_exists(ZIP_CSV_UTF8_REALFILE)) {
return;
}
// 変換元ファイルが存在しない場合
if (!file_exists(ZIP_CSV_REALFILE)) {
return;
}

$fpr = fopen(ZIP_CSV_REALFILE, 'r');
if (!$fpr) {
Expand All @@ -315,6 +328,8 @@ public function convertZipCsv()

fclose($fpw);
fclose($fpr);

return;
}

public function countMtbZip()
Expand All @@ -329,18 +344,20 @@ public function countZipCsv()
$line = 0;
$fp = $this->openZipCsv();

// CSVの行数を数える
while (!feof($fp)) {
/*
// 正確にカウントする
$tmp = fgetcsv($fp, ZIP_CSV_LINE_MAX);
*/
// 推測でカウントする
$tmp = fgets($fp, ZIP_CSV_LINE_MAX);
if (empty($tmp)) continue;
$line++;
if ($fp) {
// CSVの行数を数える
while (!feof($fp)) {
/*
// 正確にカウントする
$tmp = fgetcsv($fp, ZIP_CSV_LINE_MAX);
*/
// 推測でカウントする
$tmp = fgets($fp, ZIP_CSV_LINE_MAX);
if (empty($tmp)) continue;
$line++;
}
fclose($fp);
}
fclose($fp);

return $line;
}
Expand Down Expand Up @@ -417,9 +434,11 @@ public function lfExtractZipFile()
zip_close($zip);

// CSV 削除
$res = unlink(ZIP_CSV_REALFILE);
if (!$res) {
trigger_error(ZIP_CSV_REALFILE . ' を削除できません。', E_USER_ERROR);
if (file_exists(ZIP_CSV_REALFILE)) {
$res = unlink(ZIP_CSV_REALFILE);
if (!$res) {
trigger_error(ZIP_CSV_REALFILE . ' を削除できません。', E_USER_ERROR);
}
}

// CSV ファイル名変更
Expand Down
1 change: 1 addition & 0 deletions data/downloads/tmp/dummy
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

0 comments on commit 7fc7df0

Please sign in to comment.