register.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. <?php
  2. /**
  3. * FecShop file.
  4. *
  5. * @link http://www.fecshop.com/
  6. * @copyright Copyright (c) 2016 FecShop Software LLC
  7. * @license http://www.fecshop.com/license/
  8. */
  9. ?>
  10. <div class="main container one-column">
  11. <?= Yii::$service->page->widget->render('breadcrumbs',$this); ?>
  12. <?= Yii::$service->page->widget->render('flashmessage'); ?>
  13. <div class="account-register">
  14. <div class="page-title">
  15. <h1><?= Yii::$service->page->translate->__('Create an Account'); ?></h1>
  16. </div>
  17. <form action="<?= Yii::$service->url->getUrl('customer/account/register'); ?>" method="post" id="form-validate">
  18. <div class="fieldset">
  19. <h2 class="legend"><?= Yii::$service->page->translate->__('Personal Information'); ?></h2>
  20. <ul class="form-list">
  21. <li class="fields">
  22. <div class="customer-name">
  23. <div class="field name-firstname">
  24. <label for="firstname" class="required"><em>*</em><?= Yii::$service->page->translate->__('First Name'); ?></label>
  25. <div class="input-box">
  26. <input id="firstname" name="editForm[firstname]" value="<?= $firstname ?>" title="First Name" maxlength="255" class="input-text required-entry" type="text">
  27. </div>
  28. </div>
  29. <div class="field name-lastname">
  30. <label for="lastname" class="required"><em>*</em><?= Yii::$service->page->translate->__('Last Name'); ?></label>
  31. <div class="input-box">
  32. <input id="lastname" name="editForm[lastname]" value="<?= $lastname ?>" title="Last Name" maxlength="255" class="input-text required-entry" type="text">
  33. </div>
  34. </div>
  35. </div>
  36. </li>
  37. <li>
  38. <label for="email_address" class="required"><em>*</em><?= Yii::$service->page->translate->__('Email Address'); ?></label>
  39. <div class="input-box">
  40. <input name="editForm[email]" id="email_address" value="<?= $email ?>" title="Email Address" class="input-text validate-email required-entry" type="text">
  41. </div>
  42. </li>
  43. <li class="control">
  44. <div class="input-box">
  45. <input name="editForm[is_subscribed]" title="Sign Up for Newsletter" value="1" id="is_subscribed" class="checkbox" type="checkbox" checked="checked">
  46. </div>
  47. <label for="is_subscribed"><?= Yii::$service->page->translate->__('Sign Up for Newsletter'); ?></label>
  48. </li>
  49. </ul>
  50. </div>
  51. <div class="fieldset">
  52. <h2 class="legend"><?= Yii::$service->page->translate->__('Login Information'); ?></h2>
  53. <ul class="form-list">
  54. <li class="fields">
  55. <div class="field">
  56. <label for="password" class="required"><em>*</em><?= Yii::$service->page->translate->__('Password'); ?></label>
  57. <div class="input-box">
  58. <input name="editForm[password]" id="password" title="Password" class="input-text required-entry validate-password" type="password">
  59. </div>
  60. </div>
  61. <div class="field">
  62. <label for="confirmation" class="required"><em>*</em><?= Yii::$service->page->translate->__('Confirm Password'); ?></label>
  63. <div class="input-box">
  64. <input name="editForm[confirmation]" title="Confirm Password" id="confirmation" class="input-text required-entry validate-cpassword" type="password">
  65. </div>
  66. </div>
  67. <?php if($registerPageCaptcha): ?>
  68. <div class="field">
  69. <label for="captcha" class="required"><em>*</em><?= Yii::$service->page->translate->__('Captcha'); ?></label>
  70. <div class="input-box register-captcha">
  71. <input type="text" name="editForm[captcha]" value="" size=10 class="login-captcha-input">
  72. <img class="login-captcha-img" title="click refresh" src="<?= Yii::$service->url->getUrl('site/helper/captcha'); ?>?<?php echo md5(time() . mt_rand(1,10000));?>" align="absbottom" onclick="this.src='<?= Yii::$service->url->getUrl('site/helper/captcha'); ?>?'+Math.random();"></img>
  73. <i class="refresh-icon"></i>
  74. </div>
  75. <script>
  76. <?php $this->beginBlock('register_captcha_onclick_refulsh') ?>
  77. $(document).ready(function(){
  78. $(".refresh-icon").click(function(){
  79. $(this).parent().find("img").click();
  80. });
  81. });
  82. <?php $this->endBlock(); ?>
  83. </script>
  84. <?php $this->registerJs($this->blocks['register_captcha_onclick_refulsh'],\yii\web\View::POS_END);//将编写的js代码注册到页面底部 ?>
  85. </div>
  86. <?php endif; ?>
  87. </li>
  88. </ul>
  89. </div>
  90. <?= \fec\helpers\CRequest::getCsrfInputHtml(); ?>
  91. <div class="buttons-set">
  92. <button type="button" id="js_registBtn" class="redBtn"><em><span><i></i><?= Yii::$service->page->translate->__('Submit'); ?></span></em></button>
  93. <p class="back-link"><a href="<?= Yii::$service->url->getUrl('customer/account/login'); ?>" class="back-link"><small>« </small><?= Yii::$service->page->translate->__('Back'); ?></a></p>
  94. </div>
  95. <div class="clear"></div>
  96. </form>
  97. </div>
  98. </div>
  99. <?php
  100. $requiredValidate = Yii::$service->page->translate->__('This is a required field.');
  101. $emailFormatValidate = Yii::$service->page->translate->__('Please enter a valid email address. For example johndoe@domain.com.');
  102. $firstNameLenghtValidate = Yii::$service->page->translate->__('first name length must between');
  103. $lastNameLenghtValidate = Yii::$service->page->translate->__('last name length must between');
  104. $passwordLenghtValidate = Yii::$service->page->translate->__('Please enter 6 or more characters. Leading or trailing spaces will be ignored.');
  105. $passwordMatchValidate = Yii::$service->page->translate->__('Please make sure your passwords match. ');
  106. //$minNameLength = 2;
  107. //$maxNameLength = 20;
  108. //$minPassLength = 6;
  109. //$maxPassLength = 30;
  110. ?>
  111. <script>
  112. <?php $this->beginBlock('customer_account_register') ?>
  113. $(document).ready(function(){
  114. $("#js_registBtn").click(function(){
  115. validate = 1;
  116. $(".validation-advice").remove();
  117. $(".validation-failed").removeClass("validation-failed");
  118. var myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
  119. // empty check
  120. $(".account-register .required-entry").each(function(){
  121. val = $(this).val();
  122. if(!val){
  123. $(this).addClass("validation-failed");
  124. $(this).parent().append('<div class="validation-advice" id="advice-required-entry-firstname" style=""><?= $requiredValidate; ?></div>');
  125. validate = 0;
  126. }
  127. });
  128. // email check
  129. $(".account-register .validate-email").each(function(){
  130. email = $(this).val();
  131. if(email){
  132. if(!$(this).hasClass("validation-failed")){
  133. if(!myreg.test(email)){
  134. $(this).parent().append('<div class="validation-advice" id="advice-validate-email-email_address" style=""><?= $emailFormatValidate; ?></div>');
  135. $(this).addClass("validation-failed");
  136. validate = 0;
  137. }
  138. }
  139. }else{
  140. validate = 0;
  141. }
  142. });
  143. //first name lenght check;
  144. firstname = $("#firstname").val();
  145. lastname = $("#lastname").val();
  146. password = $("#password").val();
  147. confirmation= $("#confirmation").val();
  148. minNameLength = <?= $minNameLength ? $minNameLength : 4 ?>;
  149. maxNameLength = <?= $maxNameLength ? $maxNameLength : 30 ?>;
  150. minPassLength = <?= $minPassLength ? $minPassLength : 4 ?>;
  151. maxPassLength = <?= $maxPassLength ? $maxPassLength : 30 ?>;
  152. firstNameLength = firstname.length;
  153. lastNameLength = lastname.length;
  154. passwordLength = password.length;
  155. //firstname length validate
  156. if(firstNameLength < minNameLength || firstNameLength > maxNameLength){
  157. if(!$("#firstname").hasClass("validation-failed")){
  158. //alert(111);
  159. $("#firstname").parent().append('<div class="validation-advice" id="min_lenght" style=""><?= $firstNameLenghtValidate; ?> '+minNameLength+' , '+maxNameLength+'</div>');
  160. $("#firstname").addClass("validation-failed");
  161. validate = 0;
  162. }
  163. }
  164. //lastname length validate
  165. if(lastNameLength < minNameLength || lastNameLength > maxNameLength){
  166. if(!$("#lastname").hasClass("validation-failed")){
  167. //alert(111);
  168. $("#lastname").parent().append('<div class="validation-advice" id="min_lenght" style=""><?= $lastNameLenghtValidate; ?> '+minNameLength+' , '+maxNameLength+'</div>');
  169. $("#lastname").addClass("validation-failed");
  170. validate = 0;
  171. }
  172. }
  173. //password length validate
  174. if(passwordLength < minPassLength || passwordLength > maxPassLength){
  175. if(!$("#password").hasClass("validation-failed")){
  176. //alert(111);
  177. $("#password").parent().append('<div class="validation-advice" id="min_lenght" style=""><?= $passwordLenghtValidate; ?> </div>');
  178. $("#password").addClass("validation-failed");
  179. validate = 0;
  180. }
  181. }
  182. //password validate
  183. if(confirmation != password){
  184. if(!$("#confirmation").hasClass("validation-failed")){
  185. //alert(111);
  186. $("#confirmation").parent().append('<div class="validation-advice" id="min_lenght" style=""><?= $passwordMatchValidate; ?></div>');
  187. $("#confirmation").addClass("validation-failed");
  188. validate = 0;
  189. }
  190. }
  191. if(validate){
  192. // alert("validate success");
  193. $(this).addClass("dataUp");
  194. $("#form-validate").submit();
  195. }
  196. });
  197. $(".email_register_resend").click(function(){
  198. emailRegisterResendUrl = "<?= Yii::$service->url->getUrl('customer/account/resendregisteremail') ?>";
  199. $.ajax({
  200. async:true,
  201. timeout: 6000,
  202. dataType: 'json',
  203. type:'get',
  204. data: {
  205. "email": "<?= $email ?>"
  206. },
  207. url:emailRegisterResendUrl,
  208. success:function(data, textStatus){
  209. //
  210. if (data.resendStatus == 'success') {
  211. //$(".resend_text").html('resend register email success');
  212. alert("<?= Yii::$service->page->translate->__('resend register email success') ?>")
  213. } else {
  214. //$(".resend_text").html('resend register email fail');
  215. alert("<?= Yii::$service->page->translate->__('resend register email fail') ?>")
  216. }
  217. },
  218. error:function (XMLHttpRequest, textStatus, errorThrown){}
  219. });
  220. });
  221. });
  222. <?php $this->endBlock(); ?>
  223. </script>
  224. <?php $this->registerJs($this->blocks['customer_account_register'],\yii\web\View::POS_END);//将编写的js代码注册到页面底部 ?>