register.php 9.7 KB

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