Пришло время для описания еще одного сложного поля Seblod Email. Как можно догадаться по названию, это поле предназначено для всяческой работы с email-сообщениями. В этой статье я расскажу, как с помощью поля Email организовать форму обратной связи для сайта. Можно, конечно, использовать для формы обратной связи одно из десятков дополнительных расширений или стандартные возможности Joomla, но если у вас на сайте установлен SEBLOD, с его помощью вы сможете сделать форму сколь угодно мощную и удобную именно вам.
Содержание
- Поле SEBLOD Email. Настройки
- Создание формы обратной связи
- Шаг 1. Создаем пакет для формы обратной связи (необязательно)
- Шаг 2. Создаем тип контента для формы обратной связи
- Шаг 3. Создаем поля для формы обратной связи
- Шаг 4. Наполняем тип контента обратной связи созданными полями
- Шаг 5. Дополнительные настройки формы обратной связи
- Шаг 6. Создание пункта меню, ведущего на форму обратной связи
- Важное замечание!
Поле SEBLOD Email. Настройки
Прежде, чем создавать форму обратной связи, неплохо бы разобраться с настройками поля Email. С этого и начнем.
Получилось так, что в Рунете уже есть статья с детальным описанием настроек этого поля. Причем эта статья хорошо написана и красиво оформлена. Она мне очень понравилась. Думаю, что понравится и вам. Чтобы не делать одну и ту же работу, просто даю ссылку на статью.
>>>Описание настроек поля Email(сохраненная PDF -копия)<<<
После ознакомления с настройками возвращайтесь, будем делать форму обратной связи.
Создание формы обратной связи
Для начала следует определиться с несколькими вещами:
- Какие поля будет содержать форма обратной связи?
- Будут ли запросы из формы обратной связи сохранятся в базу данных?
Начнем с полей. Наша форма будет достаточно простой, а потому в ней будут поля:
- Ваше имя
- Ваш email
- Ваше сообщение
- Защита от спама
- Кнопка отправки сообщения
Здесь все просто.
Теперь разберемся с сохранением данных. Здесь существует 2 варианта:
- Всё, что делает форма – отправляет письмо администратору.
- Форма отправляет письмо администратору и сохраняет его в базу данных, что дает возможность обратиться к базе писем в дальнейшем.
Оба варианта интересны и актуальны, но в этой статье мы разберем только первый. Ко второму варианту я расскажу в следующих статьях.
Эта форма будет простейшей. Создаем ее по шагам.
Шаг 1. Создаем пакет для формы обратной связи (необязательно)
Пакет создается для того, чтобы в дальнейшем нашу форму можно было использовать и на других сайтах. Благодаря пакетам мы сможем экспортировать форму и установить ее в любое место, где есть SEBLOD. Если вы не собираетесь использовать форму в других проектах, то этот шаг можно пропустить.
Для того, чтобы создать пакет, переходим в Construction –> Appfolders –> New. В открывшейся форме заполняем все поля, как показано на рисунке:
После сохранения в списке пакетов можно будет увидеть и наш:
Шаг 2. Создаем тип контента для формы обратной связи
После того, как пакет создан, переходим к созданию типа контента, или, проще говоря, нашей формы. Для этого переходим в Construction–> Forms & ContentTypes и жмем кнопку «Создать»:
После заполнения названия и пакета обязательно сохраняем форму.
Шаг 3. Создаем поля для формы обратной связи
После того, как форма создана, начинаем создавать для нее поля, которые будут заполнять пользователи. Поскольку данные не будут сохранятся в базу, для всех полей мы выбираем хранилище «-None-».
Определимся с тем, каких типов будут поля:
- Ваше имя – текстовое поле
- Ваш email – поле Email
- Ваше сообщение – область текста (Textarea)
- Защита от спама – CaptchaMath
- Кнопка отправки сообщения – ButtonSubmit
Теперь создаем поля и добавляем их в форму. На рисунках ниже показаны настройки полей:
Поле «ваше имя»
Поле «ваше сообщение»
Поле «защита от спама»
Поле «кнопка отправки сообщения»
Поле «ваш email»
Кроме основных настроек поля Email, нам также нужно сформировать тело сообщения. Это делается в настройках поля Email, по ссылке Editor. Ниже представлен текст сообщения со вставленными в него переменными:
Шаг 4. Наполняем тип контента обратной связи созданными полями
Поскольку форма обратной связи нужна только на лицевой стороне сайта(фронтенде), то заполнять полями мы будем лишь вкладку типа контента «Site». Остальные вкладки заполнять не требуется. Переносим все созданные в предыдущем шаге поля в конструктор, распределяя по позициям. Я помещу все поля в одну позицию, так они будут показаны друг под другом:
Здесь нужно сделать еще одну важную настройку. Поскольку все поля у нас обязательны для заполнения, то сделаем их таковыми. Для этого здесь же переходим во вкладку «3» и ставим во всех Required, кроме Submit, «Да». Заодно здесь же установим и проверку правильности email. Для этого укажем email в столбце Validation напротив соответствующего поля. Наведем еще немного красоты и укажем текст подсказок, которые будут появляться, если поле не заполнено.
После этого шага форма обратной связи почти готова.
Шаг 5. Дополнительные настройки формы обратной связи
Остается сделать несколько настроек на вкладке Configuration. Все они описаны на рисунке:
Шаг 6. Создание пункта меню, ведущего на форму обратной связи
Чтобы наша форма была видна на сайте, создадим пункт меню, ведущий на нее. Для этого в менеджере меню создаем новый пункт типа Seblod– Form и справа выбираем наш тип контента:
После сохранения на сайте появится созданный пункт меню.
Ну вот и всё, форма обратной связи полностью готова. Остается только проверить ее работоспособность.
Форма на сайте:
Письмо, которое приходит администратору:
Важное замечание!
В описанном примере я использовал поле email и как форму ввода адреса и как плагин отправки сообщения. При таком подходе сообщение отправляется не только администратору, но и отправителю на email-адрес, который он ввел в форме.
Если требуется отправить сообщение только администратору, то для получения email пользователя нужно использовать отдельное текстовое поле, а поле email сделать скрытым.
На этом всё. С помощью SEBLOD вы можете создать сколь угодно сложную форму обратной связи, но помните, не надо стрелять из пушки по воробьям. Если вам нужна только простая форма обратной связи и ничего больше, то гораздо логичнее использовать встроенный компонент контактов Joomla, а не SEBLOD.
По ссылке ниже вы можете скачать пакет описанной в статье формы обратной связи. Он устанавливается через менеджер расширений Joomla и требует наличия установленного SEBLOD’а.
>>>Форма обратной связи wedal_feedback_simple<<<
------------------------------
Если нет желания разрабатывать сайт самостоятельно, то стоит обратить внимание на web-студии. Например созданием сайтов недорого в Ростове-на-Дону занимается ROSTOV design (http://www.rostov-design.ru/).
Небольшое замечание, если позволишь - на скриншоте поля e-mail этого не видно, но Storage у него также должен быть None (если мы лишь отправляем письмо, а не сохраняем как материал), иначе будет создано поле в БД, которое нам не нужно.
А вот как с помощью SEBLODа реализовать хотя бы простую доску объявлений с отдельными кабинетами для пользователей в которой они бы смогли редактировать свои объявления или каталог с несколькими фильтрами?
Спасибо за автору за его труд.
Жду с нетерпением следующую статью.
Тоже очень нуждаюсь. Читал у вас на форуме про разные кабинеты и ничего не получилось (((
Заранее благодарю за совет.
Спасибо Wedal за его труд!!!
Обнаружил что не сохраняется элемент никакого даже самого простого контента: нет ни отправки контента при нажатии кнопки submit, ни при сохранении материала из админки. Аналогичная ситуация даже при размещении статьи через готовую форму от seblod.
Кто-нибудь сталкивался с такой проблемой?
Спасибо за отличные статьи про Seblod! На данный момент нуждаюсь в форме регистрации для разных типов пользователей, поэтому хотел спросить.
Можно ли с помощью Seblod сделать регистрацию двух типов пользователей таким образом, чтобы при нажатии кнопки "Зарегистрироваться" появлялась страница с двумя Radio button и только после выбора одного загружались остальные соответствующие поля?
Если такое возможно, то как это сделать? Думаю это может стать хорошей статьей для будущего поколения.
Добавил переопределение констант (только вручную, через админку кириллицу не проглатывает"), все равно не помогает. что делать?
Создана форма с "radio_button", со значениями 1, 2, 3, 4, 5
При отправке почты в теле письма ни как не могу вывести выбранное значение.
Пример письма:
Здравствуйте, #user_name#, Вы выбрали #radio_button#...
Поле #radio_button# в письме пустое.
Подскажите пожалуйста как реализовать?
Заранее благодарю.
Убедитесь, что имя поля действительно "radio_button".
Прошу прощения за чайный вопрос. А где можно отрегулировать ширину конкретно выводимого поля на сайте? Например, капчи?
Экспериментирую вот здесь. http://soft.devols.ru/forma-obratnoj-svyazi
Поле капчи.
либо:
Добавить это нужно в CSS-файл вашего шаблона Joomla. Не используйте для сайта шаблон Protostar в исходном виде. Он является частью Joomla и при обновлении Joomla будет переписан. Потеряете все изменения.
Но при нажатии на ОТПРАВИТЬ (пробовал и IMPUT и BUTTON) перекидывает в пустую страницу с УРЛ : САЙТ/component/cck/ и надпись СООБЩЕНИЕ ОТПРАВЛЕНО не выводится. В папке userdata/templ/email сообщений нет. Хотя тестовые сообщения через Joomlu идут.
Помогите!
Если совсем белая пустая страница после отправки, то вероятно есть какая-то ошибка PHP. Включите отображение ошибок в общих настройках Joomla и увидите ее. Возможно, это натолкнет на мысль о причинах.
Про то что настройки остались те же вы простите неправы. Та же кнопка отправить теперь имеет множество вариантов действий. По умолчанию ставится save что с учетом того что в данной форме ничего не сохраняется в joomle происходит ошибка с выбросом на Locationnone страницу соответственно. А там еще есть "метод" и "экспорт". Ставлю метод и получаю просто сообщение ошибка. При этом при заполнение в админике получаю ошибку 0 Class 'Helper_Admin' not found.
В общем количество настроек увеличилось, что добавляет путаницы.
Так что отложил данную заею в долгий ящик, на крайний случай использую сторонее дополнение.