Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [!FormLister?
- &formid=`editform`
- &exitTo=`3`
- &controller=`Profile`
- &prepareProcess=`userPhoto`
- &errorTpl=`@CODE:<div class="error">[+message+]</div>`
- &messagesTpl=`@CODE: <div class="form-messages">[+messages+]</div>`
- &keepDefaults=`photo`
- &allowedFields=`email,fullname,phone,photo,mobilephone`
- &rules=`{
- "email":{
- "required":"Введите email",
- "email":"Неверный email",
- "custom":{
- "function":"\\FormLister\\Profile::uniqueEmail",
- "message":"Этот email нельзя использовать"
- }
- },
- "fullname":{
- "required":"Обязательно введите имя"
- },
- "phone":{
- "required":"Без телефона вы не сможете подать объявление",
- "phone":"Введите номер правильно"
- },
- "mobilephone":{
- "optional":"Телефон 2",
- "phone":"Введите номер правильно"
- },
- "password":{
- "required":"Обязательно введите пароль",
- "minLength":{
- "params":6,
- "message":"В пароле должно быть больше 6 символов"
- }
- },
- "repeatPassword":{
- "required":"Повторите пароль",
- "equals":{
- "message":"Пароли не совпадают"
- }
- }
- }`
- &attachments=`userpic`
- &fileRules=`
- "userpic":{
- "optional":"Не удалось загрузить файл",
- "maxSize" : {
- "params": 5120,
- "message": "Размер файла не должен превышать 5 мб"
- },
- "allowed": {
- "params": [ ["jpg","jpeg","png","bmp"] ],
- "message" : "Разрешены только картинки"
- }
- }`
- &formTpl=`@CODE:
- [+form.messages+]
- <form method="post" class="form" enctype="multipart/form-data" action="[+action+]">
- <input type="hidden" name="formid" value="editform">
- <div class="line">
- <div class="field">
- [+email.error+]
- <input type="text" placeholder="Почта" class="input input_emal" name="email" value="[+email+]">
- </div>
- </div>
- <div class="line">
- <div class="field">
- [+fullname.error+]
- <input type="text" placeholder="ФИО" class="input input_username" name="fullname" value="[+fullname+]">
- </div>
- </div>
- <div class="line">
- <div class="field">
- [+phone.error+]
- <input type="text" placeholder="Телефон" class="input input_phone" name="phone" value="[+phone+]">
- </div>
- </div>
- <div class="line">
- <div class="field">
- [+mobilephone.error+]
- <input type="text" placeholder="Телефон" class="input input_phone" name="mobilephone" value="[+mobilephone+]">
- </div>
- </div>
- <div class="line">
- <div class="field photofield">
- [+userpic.error+]
- <label for="file">
- <u>загрузить фото</u>
- <img id="ava" src="[+photo+]">
- </label>
- <input type="file" name="userpic" id="file">
- </div>
- </div>
- <div class="line exp">
- <span class="required">*</span> данные, обязательные для заполнения
- </div>
- <div class="line">
- <div class="field">
- [+password.error+]
- <input type="password" name="password" placeholder="Новый пароль" class="input input_password" >
- </div>
- </div>
- <div class="line">
- <div class="field">
- [+repeatPassword.error+]
- <input type="password" name="repeatPassword" placeholder="Повторите пароль" class="input input_password" >
- </div>
- </div>
- <div class="submit">
- <button type="submit" class="submit_btn">сохранить</button>
- </div>
- </form>
- `
- !]
- И userPhoto
- <?php
- //получаем массив с загруженными файлами
- $files = $FormLister->getFormData('files');
- //проверяем, есть ли там нужный файл и загружен ли он успешно
- if (isset($files['userpic']) && $files['userpic']['error'] === 0) {
- //задаем папку для хранения пользовательских фото
- $dir = 'assets/images/userphoto/';
- //получаем имя загруженного файла, без расширения
- $filename = $FormLister->fs->takeFileName($files['userpic']['name']);
- //расширение отдельно
- $ext = $FormLister->fs->takeFileExt($files['userpic']['name']);
- //делаем транслитерацию имени файла, добавляем к нему расширение
- $filename = $modx->stripAlias($filename).'.'.$ext;
- //получаем предполагаемый путь к файлу, при необходимости переименовываем, чтобы не затереть файл с таким же именем
- $filename = $FormLister->fs->getInexistantFilename($dir.$filename,true);
- //пытаемся переместить файл в нужное место
- if ($FormLister->fs->makeDir($dir) && move_uploaded_file($files['userpic']['tmp_name'],$filename)) {
- //если получилось, то сохраняем в поле photo относительный путь к файлу
- $FormLister->setField('photo',$FormLister->fs->relativePath($filename));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment