バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 問い合わせフォームに画像添付機能を追加

フロント機能

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
mikami
投稿日時: 2015/9/24 16:20
対応状況: −−−
半人前
登録日: 2015/9/24
居住地:
投稿: 16
問い合わせフォームに画像添付機能を追加
現在、問い合わせフォームに画像添付機能を追加しようとしております。

http://al-lucky.hatenablog.com/entry/2014/09/17/133220

上記ページを参考にしておりますが、表示をした場合にエラーが出てしまい、解決策が分からずにいます。

引用:
フォームをカスタマイズ

デフォルトのフォームではファイルをアップロード出来ないので、以下のようにカスタマイズします。

商品登録フォームを参考にしています。
「アップロード」をクリックすると一旦フォームがmode=upload_imageでサブミットされ、画像がアップロードされます。
同時に$arrFileに値がアサインされ、hiddenインプットのvalueにセットされます。
具体的にはファイルのサーバ上での絶対パス(real_filepath)とドキュメントルートからのURL(filepath)をセットしています。
今回はメールでの送信のみを想定している為、パスは一時保存用のものです。


また、こちらの商品登録フォームから行う場合、不要なものが多いと思い、デフォルトのテンプレートの問い合わせから作成をしております。


エラーメッセージは次の通りになります。
Parse error: syntax error, unexpected '$objPage' (T_VARIABLE), expecting function (T_FUNCTION) in C:\xampp\htdocs\ec-cube\eccube-2.13.3\html\user_data\attach_mail.php on line 208

ソースは次の通りになります。

<?php
require_once '../require.php';
require_once CLASS_EX_REALDIR . 'page_extends/LC_Page_Ex.php';

/**
 * ユーザーカスタマイズ用のページクラス
 *
 * 管理画面から自動生成される
 *
 * @package Page
 */
class LC_Page_User extends LC_Page_Ex
{
    /**
     * Page を初期化する.
     *
     * @return void
     */
    function init()
    {
        parent::init();
    }

    /**
     * Page のプロセス.
     *
     * @return void
     */
    function process()
    {
        parent::process();
        $this->action();
        $this->sendResponse();
    }

    /**
     * Page のアクション.
     *
     * @return void
     */
    function action()
    {
        $objFormParam = new SC_FormParam_Ex();

        $this->arrData = isset($_SESSION['customer']) ? $_SESSION['customer'] : '';

        // アップロードファイル情報の初期化
        $objUpFile = new SC_UploadFile_Ex(IMAGE_TEMP_REALDIR, IMAGE_SAVE_REALDIR);
        $this->lfInitFile($objUpFile);
        $objUpFile->setHiddenFileList($_POST);

        $mode = $this->getMode();
        switch ($mode) {
            case 'confirm':
                // エラーチェック
                $this->lfInitParam($objFormParam);
                $objFormParam->setParam($_POST);
                $objFormParam->convParam();
                $objFormParam->toLower('email');
                $objFormParam->toLower('email02');
                $this->arrErr = $this->lfCheckError($objFormParam);
                // 入力値の取得
                $this->arrForm = $objFormParam->getFormParamList();

                if (SC_Utils_Ex::isBlank($this->arrErr)) {
                    // エラー無しで完了画面
                    $this->tpl_mainpage = 'user_data/attach_mail_confirm.tpl';
                    $this->tpl_title = '添付ファイルメール(確認ページ)';
                }

                break;

            case 'return':
                $this->lfInitParam($objFormParam);
                $objFormParam->setParam($_POST);
                $this->arrForm = $objFormParam->getFormParamList();

                break;

            case 'complete':
                $this->lfInitParam($objFormParam);
                $objFormParam->setParam($_POST);
                $this->arrErr = $objFormParam->checkError();
                $this->arrForm = $objFormParam->getFormParamList();
                if (SC_Utils_Ex::isBlank($this->arrErr)) {
                    $this->lfSendMail($this);

                    // 完了ページへ移動する
                    SC_Response_Ex::sendRedirect('complete.php');
                    SC_Response_Ex::actionExit();
                } else {
                    SC_Utils_Ex::sfDispSiteError(CUSTOMER_ERROR);
                    SC_Response_Ex::actionExit();
                }
                break;

            // 画像のアップロード
            case 'upload_image':
            case 'delete_image':
                // パラメーター初期化
                $this->lfInitParam($objFormParam);
                $objFormParam->setParam($_POST);
                $this->arrErr = $objFormParam->checkError();
                $this->arrForm = $objFormParam->getFormParamList();

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

                // 入力画面表示設定
                // アップロードファイル情報取得(Hidden用)
                $this->arrHidden = $objUpFile->getHiddenFileList();
                // 画像ファイル表示用データ取得
                $this->arrFile = $objUpFile->getFormFileList(IMAGE_TEMP_URLPATH, IMAGE_SAVE_URLPATH);
                break;

            default:

                break;
    }
}

 public function lfInitParam(&$objFormParam)
    {
        $objFormParam->addParam('テキスト入力', 'some_input', STEXT_LEN, 'KVa', array('EXIST_CHECK','SPTAB_CHECK','MAX_LENGTH_CHECK'));
        

        $objFormParam->addParam('sample_image', 'sample_image', '', '', array());
        $objFormParam->addParam('image_key', 'image_key', '', '', array());
        $objFormParam->addParam('sample_image_realpath', 'sample_image_realpath', '', '', array());
        $objFormParam->addParam('sample_image_urlpath', 'sample_image_urlpath', '', '', array());
    }

 public function lfInitFile(&$objUpFile)
    {
        $objUpFile->addFile('画像', 'sample_image', array('jpg', 'gif', 'png'), IMAGE_SIZE, false, SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT);
    }

public function lfDeleteTempFile(&$objUpFile, $image_key)
    {
        $arrTempFile = $objUpFile->temp_file;
        $arrKeyName = $objUpFile->keyname;

        foreach ($arrKeyName as $key => $keyname) {
            if ($keyname != $image_key) continue;

            if (!empty($arrTempFile[$key])) {
                $temp_file = $arrTempFile[$key];
                $arrTempFile[$key] = '';

                if (!in_array($temp_file, $arrTempFile)) {
                    $objUpFile->deleteFile($image_key);
                } else {
                    $objUpFile->temp_file[$key] = '';
                    $objUpFile->save_file[$key] = '';
                }
            } else {
                $objUpFile->temp_file[$key] = '';
                $objUpFile->save_file[$key] = '';
            }
        }
    }

 public function lfCheckError(&$objFormParam)
    {
        // 入力データを渡す。
        $arrForm =  $objFormParam->getHashArray();
        $objErr = new SC_CheckError_Ex($arrForm);
        $objErr->arrErr = $objFormParam->checkError();
        $objErr->doFunc(array('メールアドレス', 'メールアドレス(確認)', 'email', 'email02') ,array('EQUAL_CHECK'));

        return $objErr->arrErr;
    }

public function lfSendMail(&$objPage)
    {
        $CONF = SC_Helper_DB_Ex::sfGetBasisData();
        $objPage->tpl_shopname = $CONF['shop_name'];
        $objPage->tpl_infoemail = $CONF['email02'];
        $attachment = $objPage->arrForm['sample_image_realpath']['value'];
        $helperMail = new SC_Helper_Mail_Ex();
        $helperMail->setPage($this);
        $helperMail->sfSendTemplateMail(
            $objPage->arrForm['email']['value'],            // to
            $objPage->arrForm['name01']['value'] .' 様',    // to_name
            6,                                              // template_id
            $objPage,                                       // objPage
            $CONF['email03'],                               // from_address
            $CONF['shop_name'],                             // from_name
            $CONF['email02'],                               // reply_to
            $CONF['email02'],                               // bcc
            $attachment                                     // attachment
        );
    }

$objPage = new LC_Page_User();エラー箇所
$objPage->init();
$objPage->process();


------------------------------------------------------------------------------------------
[EC-CUBE] 2.13.3
[レンタルサーバ] WADAX
[OS] CentOS 6
[PHP] 5.3系
[データベース] MySQL 5.1系
[WEBサーバ] 2.2系
[カスタマイズの有無]] 既存のテンプレートからの作成のため、カスタマイズはしておりません。
[現象] 投稿フォームにエラーが出る
------------------------------------------------------------------------------------------
フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
 » 問い合わせフォームに画像添付機能を追加 mikami 2015/9/24 16:20
     Re: 問い合わせフォームに画像添付機能を追加 yuh 2015/9/24 18:02
       Re: 問い合わせフォームに画像添付機能を追加 mikami 2015/9/25 10:12
         Re: 問い合わせフォームに画像添付機能を追加 yuh 2015/9/25 10:27
           Re: 問い合わせフォームに画像添付機能を追加 mikami 2015/9/25 11:09
             Re: 問い合わせフォームに画像添付機能を追加 yuh 2015/9/25 11:20
               Re: 問い合わせフォームに画像添付機能を追加 mikami 2015/9/25 11:36
                 Re: 問い合わせフォームに画像添付機能を追加 mikami 2015/9/29 10:42
                   Re: 問い合わせフォームに画像添付機能を追加 mikami 2015/9/29 11:21
                     Re: 問い合わせフォームに画像添付機能を追加 flealog 2015/10/1 18:43
                       Re: 問い合わせフォームに画像添付機能を追加 mikami 2015/10/2 9:13

 



ログイン


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

統計情報

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

投稿数ランキング

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.