Guest User

Untitled

a guest
Oct 5th, 2021
29
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.82 KB | None | 0 0
  1. [!FormLister?
  2. &formid=`editform`
  3. &exitTo=`3`
  4. &controller=`Profile`
  5. &prepareProcess=`userPhoto`
  6. &errorTpl=`@CODE:<div class="error">[+message+]</div>`
  7. &messagesTpl=`@CODE: <div class="form-messages">[+messages+]</div>`
  8. &keepDefaults=`photo`
  9. &allowedFields=`email,fullname,phone,photo,mobilephone`
  10. &rules=`{
  11. "email":{
  12. "required":"Введите email",
  13. "email":"Неверный email",
  14. "custom":{
  15. "function":"\\FormLister\\Profile::uniqueEmail",
  16. "message":"Этот email нельзя использовать"
  17. }
  18. },
  19. "fullname":{
  20. "required":"Обязательно введите имя"
  21. },
  22. "phone":{
  23. "required":"Без телефона вы не сможете подать объявление",
  24. "phone":"Введите номер правильно"
  25. },
  26. "mobilephone":{
  27. "optional":"Телефон 2",
  28. "phone":"Введите номер правильно"
  29. },
  30. "password":{
  31. "required":"Обязательно введите пароль",
  32. "minLength":{
  33. "params":6,
  34. "message":"В пароле должно быть больше 6 символов"
  35. }
  36. },
  37. "repeatPassword":{
  38. "required":"Повторите пароль",
  39. "equals":{
  40. "message":"Пароли не совпадают"
  41. }
  42. }
  43. }`
  44. &attachments=`userpic`
  45. &fileRules=`
  46. "userpic":{
  47. "optional":"Не удалось загрузить файл",
  48. "maxSize" : {
  49. "params": 5120,
  50. "message": "Размер файла не должен превышать 5 мб"
  51. },
  52. "allowed": {
  53. "params": [ ["jpg","jpeg","png","bmp"] ],
  54. "message" : "Разрешены только картинки"
  55. }
  56. }`
  57. &formTpl=`@CODE:
  58. [+form.messages+]
  59. <form method="post" class="form" enctype="multipart/form-data" action="[+action+]">
  60. <input type="hidden" name="formid" value="editform">
  61. <div class="line">
  62. <div class="field">
  63. [+email.error+]
  64. <input type="text" placeholder="Почта" class="input input_emal" name="email" value="[+email+]">
  65. </div>
  66. </div>
  67. <div class="line">
  68. <div class="field">
  69. [+fullname.error+]
  70. <input type="text" placeholder="ФИО" class="input input_username" name="fullname" value="[+fullname+]">
  71. </div>
  72. </div>
  73.  
  74. <div class="line">
  75. <div class="field">
  76. [+phone.error+]
  77. <input type="text" placeholder="Телефон" class="input input_phone" name="phone" value="[+phone+]">
  78. </div>
  79. </div>
  80. <div class="line">
  81. <div class="field">
  82. [+mobilephone.error+]
  83. <input type="text" placeholder="Телефон" class="input input_phone" name="mobilephone" value="[+mobilephone+]">
  84. </div>
  85. </div>
  86.  
  87. <div class="line">
  88. <div class="field photofield">
  89. [+userpic.error+]
  90. <label for="file">
  91. <u>загрузить фото</u>
  92. <img id="ava" src="[+photo+]">
  93. </label>
  94. <input type="file" name="userpic" id="file">
  95. </div>
  96. </div>
  97.  
  98. <div class="line exp">
  99. <span class="required">*</span> данные, обязательные для заполнения
  100. </div>
  101. <div class="line">
  102. <div class="field">
  103. [+password.error+]
  104. <input type="password" name="password" placeholder="Новый пароль" class="input input_password" >
  105. </div>
  106. </div>
  107. <div class="line">
  108. <div class="field">
  109. [+repeatPassword.error+]
  110. <input type="password" name="repeatPassword" placeholder="Повторите пароль" class="input input_password" >
  111. </div>
  112. </div>
  113. <div class="submit">
  114. <button type="submit" class="submit_btn">сохранить</button>
  115. </div>
  116. </form>
  117. `
  118. !]
  119.  
  120.  
  121.  
  122. И userPhoto
  123.  
  124. <?php
  125. //получаем массив с загруженными файлами
  126. $files = $FormLister->getFormData('files');
  127. //проверяем, есть ли там нужный файл и загружен ли он успешно
  128. if (isset($files['userpic']) && $files['userpic']['error'] === 0) {
  129. //задаем папку для хранения пользовательских фото
  130. $dir = 'assets/images/userphoto/';
  131. //получаем имя загруженного файла, без расширения
  132. $filename = $FormLister->fs->takeFileName($files['userpic']['name']);
  133. //расширение отдельно
  134. $ext = $FormLister->fs->takeFileExt($files['userpic']['name']);
  135. //делаем транслитерацию имени файла, добавляем к нему расширение
  136. $filename = $modx->stripAlias($filename).'.'.$ext;
  137. //получаем предполагаемый путь к файлу, при необходимости переименовываем, чтобы не затереть файл с таким же именем
  138. $filename = $FormLister->fs->getInexistantFilename($dir.$filename,true);
  139. //пытаемся переместить файл в нужное место
  140. if ($FormLister->fs->makeDir($dir) && move_uploaded_file($files['userpic']['tmp_name'],$filename)) {
  141. //если получилось, то сохраняем в поле photo относительный путь к файлу
  142. $FormLister->setField('photo',$FormLister->fs->relativePath($filename));
  143. }
  144. }
  145.  
Advertisement
Add Comment
Please, Sign In to add comment