バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > v2.13 画像のアップロードにつきまして

管理機能

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
ma-ma
投稿日時: 2017/5/12 12:32
対応状況: −−−
常連
登録日: 2014/9/22
居住地:
投稿: 55
Re: v2.13 画像のアップロードにつきまして
468様

ご返信ありがとうございます。
ご教示いただた通り行ったところ、
Javascriptのエラーはなくなったのですが、
画像のアップロードが正常にできませんでした。
LC_Page_Admin_Products_Category.phpのfunction action()部分と追加メソッド部分と
category.tplの追記した部分を下記に載せさせて頂きますので、
大変恐れ入りますがご教示いただけませんでしょうか?
よろしくお願いいたします。

-------------
【LC_Page_Admin_Products_Category.php】

public function action()
{
$objFormParam = new SC_FormParam_Ex();
$objCategory = new SC_Helper_Category_Ex();
$objUpFile = new SC_UploadFile_Ex(IMAGE_TEMP_REALDIR, IMAGE_SAVE_REALDIR);
$objDownFile = new SC_UploadFile_Ex(DOWN_TEMP_REALDIR, DOWN_SAVE_REALDIR);

// 入力パラメーター初期化
$this->initParam($objFormParam);
$objFormParam->setParam($_POST);
$objFormParam->convParam();
// アップロードファイル情報の初期化
$this->lfInitFile($objUpFile);
$objUpFile->setHiddenFileList($_POST);
$mode = $this->getMode();
switch ($this->getMode()) {
// カテゴリ登録/編集実行
case 'edit':
$this->doEdit($objFormParam);
break;
// 入力ボックスへ編集対象のカテゴリ名をセット
case 'pre_edit':
$this->doPreEdit($objFormParam);
break;
// カテゴリ削除
case 'delete':
$this->doDelete($objFormParam);
break;
// 表示順を上へ
case 'up':
$this->doUp($objFormParam);
break;
// 表示順を下へ
case 'down':
$this->doDown($objFormParam);
break;
// FIXME r19909 によってテンプレートが削除されている
case 'moveByDnD':
// DnDしたカテゴリと移動先のセットを分解する
$keys = explode('-', $_POST['keySet']);
if ($keys[0] && $keys[1]) {
$objQuery =& SC_Query_Ex::getSingletonInstance();
$objQuery->begin();

// 移動したデータのrank、level、parent_category_idを取得
$rank = $objQuery->get('rank', 'dtb_category', 'category_id = ?', array($keys[0]));
$level = $objQuery->get('level', 'dtb_category', 'category_id = ?', array($keys[0]));
$parent = $objQuery->get('parent_category_id', 'dtb_category', 'category_id = ?', array($keys[0]));

// 同一level内のrank配列を作成
$objQuery->setOption('ORDER BY rank DESC');
if ($level == 1) {
// 第1階層の時
$arrRet = $objQuery->select('rank', 'dtb_category', 'level = ?', array($level));
} else {
// 第2階層以下の時
$arrRet = $objQuery->select('rank', 'dtb_category', 'level = ? AND parent_category_id = ?', array($level, $parent));
}
for ($i = 0; $i < sizeof($arrRet); $i++) {
$rankAry[$i + 1] = $arrRet[$i]['rank'];
}

// 移動したデータのグループ内データ数
$my_count = $this->lfCountChilds($objQuery, 'dtb_category', 'parent_category_id', 'category_id', $keys[0]);
if ($rankAry[$keys[1]] > $rank) {
// データが今の位置より上がった時
$up_count = $rankAry[$keys[1]] - $rank;
$decAry = $objQuery->select('category_id', 'dtb_category', 'level = ? AND rank > ? AND rank <= ?', array($level, $rank, $rankAry[$keys[1]]));
foreach ($decAry as $value) {
// 上のグループから減算
$this->lfDownRankChilds($objQuery, 'dtb_category', 'parent_category_id', 'category_id', $value['category_id'], $my_count);
}
// 自分のグループに加算
$this->lfUpRankChilds($objQuery, 'dtb_category', 'parent_category_id', 'category_id', $keys[0], $up_count);
} elseif ($rankAry[$keys[1]] < $rank) {
// データが今の位置より下がった時
$down_count = 0;
$incAry = $objQuery->select('category_id', 'dtb_category', 'level = ? AND rank < ? AND rank >= ?', array($level, $rank, $rankAry[$keys[1]]));
foreach ($incAry as $value) {
// 下のグループに加算
$this->lfUpRankChilds($objQuery, 'dtb_category', 'parent_category_id', 'category_id', $value['category_id'], $my_count);
// 合計減算値
$down_count += $this->lfCountChilds($objQuery, 'dtb_category', 'parent_category_id', 'category_id', $value['category_id']);
}
// 自分のグループから減算
$this->lfDownRankChilds($objQuery, 'dtb_category', 'parent_category_id', 'category_id', $keys[0], $down_count);
}
$objQuery->commit();
}
break;
// カテゴリツリークリック時
case 'tree':
break;
// CSVダウンロード
case 'csv':
// CSVを送信する
$objCSV = new SC_Helper_CSV_Ex();

$objCSV->sfDownloadCsv('5', '', array(), '', true);
SC_Response_Ex::actionExit();
break;
default:
break;
}

$parent_category_id = $objFormParam->getValue('parent_category_id');
// 空の場合は親カテゴリを0にする
if (empty($parent_category_id)) {
$parent_category_id = 0;
}
// 親カテゴリIDの保持
$this->arrForm['parent_category_id'] = $parent_category_id;
// カテゴリ一覧を取得
$this->arrList = $this->findCategoiesByParentCategoryId($parent_category_id);
// カテゴリツリーを取得
$this->arrTree = $objCategory->getTree();
$this->arrParentID = $objCategory->getTreeTrail($parent_category_id);
// ぱんくずの生成
$arrBread = $objCategory->getTreeTrail($this->arrForm['parent_category_id'], FALSE);
$this->tpl_bread_crumbs = SC_Utils_Ex::jsonEncode(array_reverse($arrBread));



switch ($mode) {
case 'complete':

// 一時ファイルを本番ディレクトリに移動する
$this->lfSaveUploadFiles($objUpFile, $objDownFile, $product_id);

// 画像のアップロード
case 'upload_image':
case 'delete_image':
// パラメーター初期化
$this->lfInitFormParam_UploadImage($objFormParam);
$this->lfInitFormParam($objFormParam, $_POST);
$arrForm = $objFormParam->getHashArray();

switch ($mode) {
case 'upload_image':
// ファイルを一時ディレクトリにアップロード
$this->arrErr[$arrForm['image_key']] = $objUpFile->makeTempFile($arrForm['image_key'], IMAGE_RENAME);
if ($this->arrErr[$arrForm['image_key']] == '') {
// 縮小画像作成
$this->lfSetScaleImage($objUpFile, $arrForm['image_key']);
}
break;
case 'delete_image':
// ファイル削除
$this->lfDeleteTempFile($objUpFile, $arrForm['image_key']);
break;
default:
break;
}

// 入力画面表示設定
$this->arrForm = $this->lfSetViewParam_InputPage($objUpFile, $objDownFile, $arrForm);
// ページonload時のJavaScript設定
$anchor_hash = $this->getAnchorHash($arrForm['image_key']);
$this->tpl_onload = $anchor_hash;
break;
}
}

/*追記メソッド*/
/**
* アップロードファイルパラメーター情報の初期化
* - 画像ファイル用
*
* @param SC_UploadFile_Ex $objUpFile SC_UploadFileインスタンス
* @return void
*/
public function lfInitFile(&$objUpFile)
{
//$this->objUpFile->addFile('メイン画像', 'main_image', array('gif','jpeg','jpg','png'), IMAGE_SIZE, false, CLASS_IMAGE_WIDTH, CLASS_IMAGE_HEIGHT);

$objUpFile->addFile('メイン画像', 'main_image', array('jpg', 'gif', 'png'), IMAGE_SIZE, false, SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT);
}
/**
* パラメーター情報の初期化
* - 画像ファイルアップロードモード
*
* @param SC_FormParam_Ex $objFormParam SC_FormParamインスタンス
* @return void
*/
public function lfInitFormParam_UploadImage(&$objFormParam)
{
$objFormParam->addParam('image_key', 'image_key', '', '', array());
}
public function lfInitFormParam(&$objFormParam, $arrPost)
{

}
/**
* 縮小した画像をセットする
*
* @param SC_UploadFile_Ex $objUpFile SC_UploadFileインスタンス
* @param string $image_key 画像ファイルキー
* @return void
*/
public function lfSetScaleImage(&$objUpFile, $image_key)
{
$subno = str_replace('sub_large_image', '', $image_key);
switch ($image_key) {
case 'main_large_image':
// 詳細メイン画像
$this->lfMakeScaleImage($objUpFile, $image_key, 'main_image');
case 'main_image':
// 一覧メイン画像
$this->lfMakeScaleImage($objUpFile, $image_key, 'main_image');
break;
case 'sub_large_image' . $subno:
// サブメイン画像
$this->lfMakeScaleImage($objUpFile, $_POST['image_key'], 'sub_image' . $subno);
break;
default:
break;
}
}

/**
* 画像ファイルのコピー
*
* @param object $objUpFile SC_UploadFileインスタンス
* @return void
*/
public function lfCopyProductImageFiles(&$objUpFile)
{
$arrKey = $objUpFile->keyname;
$arrSaveFile = $objUpFile->save_file;

foreach ($arrSaveFile as $key => $val) {
$this->lfMakeScaleImage($objUpFile, $arrKey[$key], $arrKey[$key], true);
}
}

/**
* アンカーハッシュ文字列を取得する
* アンカーキーをサニタイジングする
*
* @param string $anchor_key フォーム入力パラメーターで受け取ったアンカーキー
* @return <type>
*/
public function getAnchorHash($anchor_key)
{
if ($anchor_key != '') {
return "location.hash='#" . htmlspecialchars($anchor_key) . "'";
} else {
return '';
}
}


/**
* 表示用フォームパラメーター取得
* - 入力画面
*
* @param SC_UploadFile_Ex $objUpFile SC_UploadFileインスタンス
* @param SC_UploadFile_Ex $objDownFile SC_UploadFileインスタンス
* @param array $arrForm フォーム入力パラメーター配列
* @return array 表示用フォームパラメーター配列
*/
public function lfSetViewParam_InputPage(&$objUpFile, &$objDownFile, &$arrForm)
{
// カテゴリマスターデータ取得
$objDb = new SC_Helper_DB_Ex();
list($this->arrCatVal, $this->arrCatOut) = $objDb->sfGetLevelCatList(false);

if (isset($arrForm['category_id']) && !is_array($arrForm['category_id'])) {
$arrForm['category_id'] = SC_Utils_Ex::jsonDecode($arrForm['category_id']);
}
$this->tpl_json_category_id = !empty($arrForm['category_id']) ? SC_Utils_Ex::jsonEncode($arrForm['category_id']) : SC_Utils_Ex::jsonEncode(array());
if ($arrForm['status'] == '') {
$arrForm['status'] = DEFAULT_PRODUCT_DISP;
}
if ($arrForm['product_type_id'] == '') {
$arrForm['product_type_id'] = DEFAULT_PRODUCT_DOWN;
}
if (OPTION_PRODUCT_TAX_RULE) {
// 編集の場合は設定された税率、新規の場合はデフォルトの税率を取得
if ($arrForm['product_id'] == '') {
$arrRet = SC_Helper_TaxRule_Ex::getTaxRule();
} else {
$arrRet = SC_Helper_TaxRule_Ex::getTaxRule($arrForm['product_id'], $arrForm['product_class_id']);
}
$arrForm['tax_rate'] = $arrRet['tax_rate'];
}
// アップロードファイル情報取得(Hidden用)
$arrHidden = $objUpFile->getHiddenFileList();
$arrForm['arrHidden'] = array_merge((array) $arrHidden, (array) $objDownFile->getHiddenFileList());

// 画像ファイル表示用データ取得
$arrForm['arrFile'] = $objUpFile->getFormFileList(IMAGE_TEMP_URLPATH, IMAGE_SAVE_URLPATH);



return $arrForm;
}


【category.tpl】
<div style="float:left; width: 100px;">メイン画像:</div>
<span class="attention"><!--{$arrErr[$key]}--></span>
<!--{if $arrForm.arrFile[$key].filepath != ""}-->
<img src="<!--{$arrForm.arrFile[$key].filepath}-->" alt="<!--{$arrForm.name|h}-->" /> <a href="" onclick="eccube.setModeAndSubmit('delete_image', 'image_key', '<!--{$key}-->'); return false;">[画像の取り消し]</a><br />
<!--{/if}-->
<input type="file" name="main_image" size="40" style="<!--{$arrErr[$key]|sfGetErrorColor}-->" />
<a class="btn-normal" href="java script:;" name="btn" onclick="eccube.setModeAndSubmit('upload_image', 'image_key', '<!--{$key}-->'); return false;">アップロード</a>

-------------
フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
   v2.13 画像のアップロードにつきまして ma-ma 2017/5/10 12:42
     Re: v2.13 画像のアップロードにつきまして karin 2017/5/10 13:18
     Re: v2.13 画像のアップロードにつきまして 468 2017/5/10 14:27
       Re: v2.13 画像のアップロードにつきまして ma-ma 2017/5/11 12:39
         Re: v2.13 画像のアップロードにつきまして 468 2017/5/11 15:06
         » Re: v2.13 画像のアップロードにつきまして ma-ma 2017/5/12 12:32
             Re: v2.13 画像のアップロードにつきまして 468 2017/5/12 15:05
               Re: v2.13 画像のアップロードにつきまして ma-ma 2017/5/15 10:31
                 Re: v2.13 画像のアップロードにつきまして 468 2017/5/15 11:23
                   Re: v2.13 画像のアップロードにつきまして ma-ma 2017/5/15 13:34
                     Re: v2.13 画像のアップロードにつきまして 468 2017/5/15 14:12
                       Re: v2.13 画像のアップロードにつきまして ma-ma 2017/5/15 17:15
                         Re: v2.13 画像のアップロードにつきまして 468 2017/5/15 20:28
                           Re: v2.13 画像のアップロードにつきまして ma-ma 2017/5/16 22:10
                           Re: v2.13 画像のアップロードにつきまして ma-ma 2017/5/16 22:19
                             Re: v2.13 画像のアップロードにつきまして 468 2017/5/17 7:56
                               Re: v2.13 画像のアップロードにつきまして ma-ma 2017/5/17 14:51
                               Re: v2.13 画像のアップロードにつきまして ma-ma 2017/5/18 18:32
                                 Re: v2.13 画像のアップロードにつきまして 468 2017/5/19 5:32
                                   Re: v2.13 画像のアップロードにつきまして ma-ma 2017/5/22 17:13
                                   Re: v2.13 画像のアップロードにつきまして ma-ma 2017/5/23 11:04
                                   Re: v2.13 画像のアップロードにつきまして ma-ma 2017/5/23 12:41
                                     Re: v2.13 画像のアップロードにつきまして yuh 2017/5/23 12:54
                                       Re: v2.13 画像のアップロードにつきまして ma-ma 2017/5/23 13:58
                                         Re: v2.13 画像のアップロードにつきまして 468 2017/5/24 9:10
                                           Re: v2.13 画像のアップロードにつきまして ma-ma 2017/5/24 16:06
                                             Re: v2.13 画像のアップロードにつきまして 468 2017/5/24 18:40
                                               Re: v2.13 画像のアップロードにつきまして ma-ma 2017/5/24 19:36
                                                 Re: v2.13 画像のアップロードにつきまして 468 2017/5/24 19:49
                                                   Re: v2.13 画像のアップロードにつきまして ma-ma 2017/5/26 10:56
                                                   Re: v2.13 画像のアップロードにつきまして ma-ma 2017/6/2 16:29
                                                     Re: v2.13 画像のアップロードにつきまして 468 2017/6/2 17:00
                                                       Re: v2.13 画像のアップロードにつきまして ma-ma 2017/6/4 21:53
                                                         Re: v2.13 画像のアップロードにつきまして 468 2017/6/5 15:12
                                                           Re: v2.13 画像のアップロードにつきまして ma-ma 2017/6/6 14:40
                                                             Re: v2.13 画像のアップロードにつきまして 468 2017/6/8 8:27
                                                               Re: v2.13 画像のアップロードにつきまして ma-ma 2017/6/8 23:14
                                                                 Re: v2.13 画像のアップロードにつきまして 468 2017/6/9 13:15

 



ログイン


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

統計情報

総メンバー数は88,938名です
総投稿数は110,016件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
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.