■ユーザーズフォーラム リニューアルのお知らせ
新規投稿は新ユーザーズフォーラムにお願いします。

メールフォームの入力確認画面から「キャンセル」したい

umeboshi > メールフォームの入力確認画面から「キャンセル」したい @ 2011/6/6 16:38
BaserCMS 1.6.11.4 を利用しています。PHP初心者です。
メールフォームの入力確認画面には「送信する」ボタンしか設けられていませんが、隣りに「キャンセル」ボタンを設けることはできますか?
入力した内容が保持された状態で、ひとつ前の入力画面に戻るというような動きです。
ブラウザの「戻る」ボタンでも入力内容を保持してくれているみたいですが、使っていてどうにも不安なもので…。
ご教示いただけると幸いです。よろしくお願いします。
ryuring > Re: メールフォームの入力確認画面から「キャンセル」したい @ 2011/6/7 22:31
こんばんは。

テンプレートを編集する事で対応できると思います。

この辺が参考になります↓

■ メールフォームのテンプレート変更
http://basercms.net/manuals/designers/6.html

■ コアテンプレートのカスタマイズ
http://basercms.net/manuals/designers/9.html

Twitter:@ryuring
baserCMS総合サービスサイト ビーコミ

umeboshi > Re: メールフォームの入力確認画面から「キャンセル」したい @ 2011/6/8 11:38
夜遅くに返信ありがとうございます。
コアの方をあちこち探して、見つけました!
\baser\plugins\mail\views\elements\mail_form.ctp
ですね。
これをテーマ内にコピペして、自分の出来る範囲で、以下ののように実現しました。
\app\webroot\themed\○○○\elements\mail_form.ctp
以下本文
<?php /* フォーム開始タグ */ ?>
<?php if(!$freezed): ?>
<?php echo $mailform->create('Message', array('url' => '/' . $mailContent['MailContent']['name'] . '/confirm')) ?>
<?php else: ?>
<?php echo $mailform->create('Message', array('url' => '/' . $mailContent['MailContent']['name'] . '/submit')) ?>
<?php endif; ?>
<?php /* フォーム本体 */ ?>

<table cellpadding="0" cellspacing="0" class="row-table-01">
	<?php $baser->element('mail_input', array('blockStart' => 1)) ?>
</table>

<?php if(!$freezed && $mailContent['MailContent']['auth_captcha']): ?>
<div class="auth-captcha clearfix">
	<?php $baser->img('/' . $mailContent['MailContent']['name'] . '/captcha', array('alt' => '認証画像', 'class' => 'auth-captcha-image')) ?>
	<?php echo $mailform->text('Message.auth_captcha') ?><br />
	&nbsp;画像の文字を入力してください<br clear="all" />
	<?php echo $mailform->error('Message.auth_captcha', '入力された文字が間違っています。入力をやり直してください。') ?>
</div>
<?php endif ?>

<?php /* 送信ボタン */ ?>
<div class="submit">
<?php if($this->action=='index'): ?>
	<input name="resetdata" value="取り消し" type="reset" class="btn-gray button" />
<?php endif; ?>
<?php if($freezed): ?>
	<?php echo $mailform->button('キャンセル', array('class' => 'btn-red button', 'id' => 'MessageCancel', ' onclick' => 'java script:history.back();'))  ?>
	<?php echo $mailform->submit('送信', array('div' => false, 'class' => 'btn-red button', 'id' => 'MessageSubmit'))  ?>
<?php elseif($this->action != 'submit'): ?>
	<?php echo $mailform->submit('入力内容を確認する', array('div' => false, 'class' => 'btn-orange button', 'id' => 'MessageConfirm'))  ?>
<?php endif; ?>
</div>

<?php echo $mailform->end() ?>

取り急ぎonclick属性のjava script:history.back();で「キャンセル」ボタンを設置してみました。
ただこれですと内部的な処理ではないため、javascriptの利用できない環境下では無効になってしまう事が懸念材料です…。
内部処理として組み込むことってできるのでしょうか?
難しいようでしたら、今回は断念しようかと考えています。
ryuring > Re: メールフォームの入力確認画面から「キャンセル」したい @ 2011/6/8 13:51
こんにちは。

テンプレート見つかってよかったです。

「キャンセル」ボタンをとの事ですが、機能的には「戻る」ボタンになるのかなと思います。
せっかくの受付窓口にわざわざ「キャンセル」を配置する必要性があるのかな?と思いました。
ブラウザアプリなので、ブラウザ閉じたり、メニューの他のボタンを押すなどでキャンセルして画面の切り替えはできます。
それでも「キャンセル」と明記する必要性があるのであれば理由を教えて頂けますでしょうか?

実装時期は未定となりますが取り急ぎ今後の課題としてチケットを切っておきました。
http://project.e-catchup.jp/issues/1397

Twitter:@ryuring
baserCMS総合サービスサイト ビーコミ

umeboshi > Re: メールフォームの入力確認画面から「キャンセル」したい @ 2011/6/8 15:13
チケット発行ありがとうございます。

「キャンセル」という文言については実はそこまで深く考えていませんでした。
言われてみれば、この動きからすると確かに「キャンセル」というより「戻る」という文言の方が適切かもしれません。
「やり直す」という意味合いで考えていましたが、よくよく考えると違和感がありますね。
文言って大事ですね。勉強になります!
ryuring > Re: メールフォームの入力確認画面から「キャンセル」したい @ 2011/6/8 15:26

Twitter:@ryuring
baserCMS総合サービスサイト ビーコミ

ログイン
ユーザー名:
パスワード:


  新規登録 / パスワード紛失

検索

facebook
フォーラムで悩みが解決した場合など、よかったら「いいね!」をポチっとクリックしてください!質問の回答者や開発者の励みになります

フォーラムガイド


関連リンク

オンライン状況
9 人のユーザが現在オンラインです。 (8 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 9