Сначала опишу краткую суть. Ниже будет подробное описание задачи.
Кратко, суть. ---------------------------------------- Есть список публикаций. Под ними нужно сделать форму добавления заявки на новую публикацию. Форма нужна не на веб-формах, а на инфоблоке. Заявка будет падать в отдельный инфоблок, но с сохранением связи с инфоблоком публикаций. Валидация всех полей формы нужна как на JS так и на стороне PHP. После отправки формы отправляются соответствующие письма на email.
Подробное описание. ---------------------------------------- Существует блок с информацией «Публикации», необходимо создать инфоблок «добавленная информация» Свойства блока «добавленная информация»
Тема сообщение (название) (обязательное) Тело сообщения (Детальное описание) ip, (доп.свойство) связь с блоком «публикации», привязка к пользователю, (в случае если пользователь авторизован, подставляется id пользователя), информацию добавил – обязательное (в случае если пользователь авторизован, подставляется логин пользователя и полу скрывается (HIDDEN)), файлы, множественное, статусы: на рассмотрение модератора отказано принято
Создать 4 информационных сообщения (email), 3 сообщения на 3 статуса + одно администратору о новой добавленной информации... Осуществлять проверку на пустые поля, количество символов, в случае без авторизации, показывается капча и поле «информацию добавил». Если добавлены файлы, должна быть изменяемая возможность проверки формата, размера, веса файла. Капча показывается для не авторизованных пользователей.
Схема работы для не авторизованных пользователей:
При заходе на публикацию пользователь, видит кнопку «добавить информацию», при клике открывается форма, тема сообщения, тело сообщения, информацию добавил, файлы, капча, если пользователь, не ввёл информацию в обязательные поля выдаются сообщения об ошибках, не сверху форму, а под элементами формы, для примера, можно использовать любые понятные фразы, если пользователь загрузить файл или файлы, все они должны проверяться, по типу, весу размеру, в случае ошибок выдаваться сообщения, если все поля формы внесены верно, необходимо проверять их и на уровне php… (нужно это чтоб не было возможности слать информацию сразу на файлы), для авторизованных пользователей, поле капчи не показывается, в поле «информацию добавил» подставляется логин и оно скрывается, , после успешного добавления информации высылаются 2 сообщения одно пользователю, о том, что он оставил информацию на сайте и одно администратору, после изменения статуса, высылаются уведомления пользователю о смене статуса.
По возможности сделать в пользовательском разделе персонально, для тех кто заполнял информацию, раздел добавленной информации, в случае когда у элемента стоит статус на проверке модератором, пользователь, может изменить сообщение, статусы отказано и одобрено, не редактируются...
Поле должно работать без перезагрузок страницы (ajax) Пример работы формы можно посмотреть формы Авито (подача объявления) Работы с файлами можно посмотреть тут github.com/RubaXa/jquery....