Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@t0ucancue
Created October 14, 2014 14:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save t0ucancue/439669a15512b41f3f2c to your computer and use it in GitHub Desktop.
Save t0ucancue/439669a15512b41f3f2c to your computer and use it in GitHub Desktop.
<?php
$form = Loader::helper('form');
$dtt = Loader::helper('form/date_time');
defined('C5_EXECUTE') or die("Access Denied.");
//時間
$time=array(
'10時' => '10:00',
'10時30分' => '10:30',
'11時' => '11:00',
'11時30分' => '11:30',
'12時' => '12:00',
'12時30分' => '12:30',
'13時' => '13:00',
'13時30分' => '13:30',
'14時' => '14:00',
'14時30分' => '14:30',
'15時' => '15:00',
'15時30分' => '15:30',
'16時' => '16:00',
'16時30分' => '16:30',
'17時' => '17:00',
'17時30分' => '17:30',
'18時' => '18:00',
'18時30分' => '18:30',
'19時' => '19:00',
'19時30分' => '19:30',
'20時' => '20:00',
'20時30分' => '20:30',
'21時' => '21:00'
);
//都道府県
$todofuken=array(
'北海道' => '北海道',
'青森県' => '青森県',
'岩手県' => '岩手県',
'宮城県' => '宮城県',
'秋田県' => '秋田県',
'山形県' => '山形県',
'福島県' => '福島県',
'茨城県' => '茨城県',
'栃木県' => '栃木県',
'群馬県' => '群馬県',
'埼玉県' => '埼玉県',
'千葉県' => '千葉県',
'東京都' => '東京都',
'神奈川県' => '神奈川県',
'新潟県' => '新潟県',
'富山県' => '富山県',
'石川県' => '石川県',
'福井県' => '福井県',
'山梨県' => '山梨県',
'長野県' => '長野県',
'岐阜県' => '岐阜県',
'静岡県' => '静岡県',
'愛知県' => '愛知県',
'三重県' => '三重県',
'滋賀県' => '滋賀県',
'京都府' => '京都府',
'大阪府' => '大阪府',
'兵庫県' => '兵庫県',
'奈良県' => '奈良県',
'和歌山県' => '和歌山県',
'鳥取県' => '鳥取県',
'島根県' => '島根県',
'岡山県' => '岡山県',
'広島県' => '広島県',
'山口県' => '山口県',
'徳島県' => '徳島県',
'香川県' => '香川県',
'愛媛県' => '愛媛県',
'高知県' => '高知県',
'福岡県' => '福岡県',
'佐賀県' => '佐賀県',
'長崎県' => '長崎県',
'熊本県' => '熊本県',
'大分県' => '大分県',
'宮崎県' => '宮崎県',
'鹿児島県' => '鹿児島県',
'沖縄県' => '沖縄県',
'日本以外' => '日本以外'
);
// エラーメッセージの表示
if (isset($errorArray) && is_array($errorArray) && count($errorArray) > 0) {
?>
<div style="border:1px solid red">
<?php
foreach ($errorArray as $e){
?><p style="color:red"><?php echo $e?></p><?php
}
?>
</div>
<?php
}
// お礼メッセージの表示
if (isset($response)) {
echo $response;
}
?>
<form method="post" action="<?php echo $this->action('bento_order_submit')?>">
<p class="attention">金額はお一人様分をご記入下さい。</p>
<p>※サービス料15%・消費税8%は別となります。</p>
<table class="menu_order">
<tr>
<th>仕出し(会席料理)</th>
<td><span class="price">5,000円より</span><?php echo $form->text('s_kaisekip', '', array('style' => 'width: 6em'))?>円
<?php echo $form->text('s_kaiseki', '', array('style' => 'width: 2em'))?>人</td>
</tr>
<tr>
<th>仕出し(お祝い料理)</th>
<td><span class="price">5,000円より</span><?php echo $form->text('s_iwaip', '', array('style' => 'width: 6em'))?>円
<?php echo $form->text('s_iwai', '', array('style' => 'width: 2em'))?>人</td>
<tr>
<th>仕出し(ご法要料理)</th>
<td><span class="price">5,000円より</span><?php echo $form->text('s_hoyop', '', array('style' => 'width: 6em'))?>円
<?php echo $form->text('s_hoyo', '', array('style' => 'width: 2em'))?>人</td>
</tr>
</table>
<p>ご希望の方は人数を記入して下さい。お食事とは別料金となります。<br />
※価格はお一人様分(税別)です。</p>
<table class="common_order">
<tr>
<th>お名前</th>
<td><?php echo $form->text('p_name')?></td>
</tr>
<tr>
<th>お名前(ふりがな)</th>
<td><?php echo $form->text('p_kana')?></td>
</tr>
<tr>
<th>社名※法人の場合</th>
<td><?php echo $form->text('p_company')?></td>
</tr>
<tr>
<th>電話番号</th>
<td><?php echo $form->text('p_tel')?></td>
</tr>
<tr>
<th>Eメール</th>
<td><?php echo $form->text('p_mail')?></td>
</tr>
<tr>
<th>FAX番号</th>
<td><?php echo $form->text('p_fax')?></td>
</tr>
<tr>
<th>ご住所(都道府県)</th>
<td><?=$form->select('p_todofuken', $todofuken, '香川県')?></td>
</tr>
<tr>
<th>ご住所(市町村番地)</th>
<td><?php echo $form->text('p_address', '', array('style' => 'width: 80%'))?></td>
</tr>
<tr>
<th>配達希望日・引き取り日<br />
<p class="attention">※受け取りの3日前までにご予約ください。
定休日(第1・第3火曜日)の配達及び受け渡しはできませんのでご了承下さい。</p></th>
<td>日付: <?=$dtt->date('p_date', $dtt->translate('p_date'), true)?><span class="memo">←クリックするとカレンダーが表示されます</span><br />
時間: <?=$form->select('p_time', $time, '10時')?></td>
</tr>
<tr>
<th>受取の方法<br />
<span class="memo">※配達の場合は10名様以上とさせて頂きます。</span></th>
<td><?php echo $form->radio('p_uketori', '店頭受取'); ?>
<?php echo $form->label('p_uketorishop', '店頭受取'); ?>
<?php echo $form->radio('p_uketori', '配達希望'); ?>
<?php echo $form->label('p_uketorideli', '配達希望'); ?>
</td>
</tr>
<tr>
<th>ご質問・ご要望等</th>
<td><?php echo $form->textarea('p_others', '', array('style' => 'width: 100%; height: 8em;'))?></td>
</tr>
</table>
<div class="form-btn-area">
<p class="attention">※送信ボタンを押しますと直ちに送信されますので、内容をよくご確認のうえ押してください。</p>
<?php echo $form->submit('submit','送信'); ?>
</div>
</form>
<?php
defined('C5_EXECUTE') or die(_("Access Denied."));
$subject = 'お弁当ご予約メール';
$body = t(" %s 様
この度はご注文いただき、まことに有難う御座います。
予約内容を確認後、ご予約確定のご案内をさせていただきます。
予約フォームでの入力内容は以下の通りとなります。
▽仕出し
○会席料理:%s円 %s人
○お祝い料理:%s円 %s人
○ご法要コース:%s円 %s人
-------------------------------------------
■お名前:%s
■ふりがな:%s
■社名:%s
■電話番号:%s
■Eメール:%s
■FAX番号:%s
■都道府県:%s
■ご住所:
%s
■配達希望日・引き取り日:%s
■配達希望日・引き取り時間:%s
■受取の方法:%s
▼ご質問・ご要望等:
%s
-------------------------------------------
料亭 なまえ
○営業時間
AM11:00~PM 2:00
○定休日
火曜日
-------------------------------------------
", $p_name, $s_kaisekip, $s_kaiseki,$s_iwaip,$s_iwai,$s_hoyop,
$s_hoyo,$p_name,$p_kana,$p_company,$p_tel,$p_mail,
$p_fax,$p_todofuken,$p_address,$p_date,$p_time,$p_uketori,
$p_others);
?>
<?php
defined('C5_EXECUTE') or die("Access Denied.");
class BentoOrderExternalFormBlockController extends BlockController {
public function action_bento_order_submit() {
//お店のアドレス
$shopmail="hoge@example.com";
$sitename="てすと";
// validation/form ヘルパーを呼び出し
$val = Loader::helper('validation/form');
// postデータをバリデーションに登録
$val->setData($this->post());
// 必須項目ルールの追加
$val->addRequired('p_name', '名前を入力してください。');
$val->addRequired('p_mail', 'メールアドレスを入力してください。');
// 検討中
//$val->addInteger('s_kaisekip', '数字を入力してください。');
// メールアドレスの検証
$val->addRequiredEmail('p_mail', '有効なメールアドレスを入力してください。');
// テスト実行
if (!$val->test()) {
// テストに通らなかった場合はビューにエラーを渡す
$errorArray = $val->getError()->getList();
$this->set('errorArray', $errorArray);
} else {
// テストに通った場合の処理
$mh = Loader::helper('mail');
// FROMアドレスの設定
$mh->from($shopmail, $sitename);
// Toアドレスの設定
$mh->to($this->post('p_mail'));
// 管理者ユーザー情報を取得
$adminUserInfo = UserInfo::getByID(USER_SUPER_ID);
if (is_object($adminUserInfo)) {
// 管理者メールアドレスをBCCに設定
$mh->bcc($adminUserInfo->getUserEmail());
}
// メール変数を設定
$mh->addParameter('s_kaisekip', $this->post('s_kaisekip'));
$mh->addParameter('s_kaiseki', $this->post('s_kaiseki'));
$mh->addParameter('s_iwaip', $this->post('s_iwaip'));
$mh->addParameter('s_iwai', $this->post('s_iwai'));
$mh->addParameter('s_hoyop', $this->post('s_hoyop'));
$mh->addParameter('s_hoyo', $this->post('s_hoyo'));
$mh->addParameter('p_name', $this->post('p_name'));
$mh->addParameter('p_kana', $this->post('p_kana'));
$mh->addParameter('p_company', $this->post('p_company'));
$mh->addParameter('p_tel', $this->post('p_tel'));
$mh->addParameter('p_mail', $this->post('p_mail'));
$mh->addParameter('p_fax', $this->post('p_fax'));
$mh->addParameter('p_todofuken', $this->post('p_todofuken'));
$mh->addParameter('p_address', $this->post('p_address'));
$mh->addParameter('p_date', $this->post('p_date'));
$mh->addParameter('p_time', $this->post('p_time'));
$mh->addParameter('p_uketori', $this->post('p_uketori'));
$mh->addParameter('p_others', $this->post('p_others'));
// メールテンプレートを設定
$mh->load('bento_order_complete');
// メール送信
$mh->sendMail();
$this->set('response', 'ご注文ありがとうございました。
自動で控えのメールをお送りします。');
}
return true;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment