Куда идем?

Пришло время для описания еще одного сложного поля Seblod Email. Как можно догадаться по названию, это поле предназначено для всяческой работы с email-сообщениями. В этой статье я расскажу, как с помощью поля Email организовать форму обратной связи для сайта. Можно, конечно, использовать для формы обратной связи одно из десятков дополнительных расширений или стандартные возможности Joomla, но если у вас на сайте установлен SEBLOD, с его помощью вы сможете сделать форму сколь угодно мощную и удобную именно вам.

Поле SEBLOD Email. Настройки

Прежде, чем создавать форму обратной связи, неплохо бы разобраться с настройками поля Email. С этого и начнем.

Получилось так, что в Рунете уже есть статья с детальным описанием настроек этого поля. Причем эта статья хорошо написана и красиво оформлена. Она мне очень понравилась. Думаю, что понравится и вам. Чтобы не делать одну и ту же работу, просто даю ссылку на статью.

>>>Описание настроек поля Email(сохраненная PDF -копия)<<<

После ознакомления с настройками возвращайтесь, будем делать форму обратной связи.

Создание формы обратной связи

Для начала следует определиться с несколькими вещами:

  1. Какие поля будет содержать форма обратной связи?
  2. Будут ли запросы из формы обратной связи сохранятся в базу данных?

Начнем с полей. Наша форма будет достаточно простой, а потому в ней будут поля:

  • Ваше имя
  • Ваш email
  • Ваше сообщение
  • Защита от спама
  • Кнопка отправки сообщения

Здесь все просто.

Теперь разберемся с сохранением данных. Здесь существует 2 варианта:

  1. Всё, что делает форма – отправляет письмо администратору.
  2. Форма отправляет письмо администратору и сохраняет его в базу данных, что дает возможность обратиться к базе писем в дальнейшем.

Оба варианта интересны и актуальны, но в этой статье мы разберем только первый. Ко второму варианту я расскажу в следующих статьях.

Эта форма будет простейшей. Создаем ее по шагам.

Шаг 1. Создаем пакет для формы обратной связи (необязательно)

Пакет создается для того, чтобы в дальнейшем нашу форму можно было использовать и на других сайтах. Благодаря пакетам мы сможем экспортировать форму и установить ее в любое место, где есть SEBLOD. Если вы не собираетесь использовать форму в других проектах, то этот шаг можно пропустить.

Для того, чтобы создать пакет, переходим в Construction –> Appfolders –> New. В открывшейся форме заполняем все поля, как показано на рисунке:

seblod: форма обратной связи

После сохранения в списке пакетов можно будет увидеть и наш:

seblod: форма обратной связи

Шаг 2. Создаем тип контента для формы обратной связи

После того, как пакет создан, переходим к созданию типа контента, или, проще говоря, нашей формы. Для этого переходим в Construction–> Forms & ContentTypes и жмем кнопку «Создать»:

seblod: форма обратной связи

После заполнения названия и пакета обязательно сохраняем форму.

Шаг 3. Создаем поля для формы обратной связи

После того, как форма создана, начинаем создавать для нее поля, которые будут заполнять пользователи. Поскольку данные не будут сохранятся в базу, для всех полей мы выбираем хранилище «-None-».

Определимся с тем, каких типов будут поля:

  • Ваше имя – текстовое поле
  • Ваш email – поле Email
  • Ваше сообщение – область текста (Textarea)
  • Защита от спама – CaptchaMath
  • Кнопка отправки сообщения – ButtonSubmit

Теперь создаем поля и добавляем их в форму. На рисунках ниже показаны настройки полей:

Поле «ваше имя»

seblod: форма обратной связи

Поле «ваше сообщение»

seblod: форма обратной связи

Поле «защита от спама»

seblod: форма обратной связи

Поле «кнопка отправки сообщения»

seblod: форма обратной связи

Поле «ваш email»

seblod: форма обратной связи

Кроме основных настроек поля Email, нам также нужно сформировать тело сообщения. Это делается в настройках поля Email, по ссылке Editor. Ниже представлен текст сообщения со вставленными в него переменными:

seblod: форма обратной связи

Шаг 4. Наполняем тип контента обратной связи созданными полями

Поскольку форма обратной связи нужна только на лицевой стороне сайта(фронтенде), то заполнять полями мы будем лишь вкладку типа контента «Site». Остальные вкладки заполнять не требуется. Переносим все созданные в предыдущем шаге поля в конструктор, распределяя по позициям. Я помещу все поля в одну позицию, так они будут показаны друг под другом:

seblod: форма обратной связи

Здесь нужно сделать еще одну важную настройку. Поскольку все поля у нас обязательны для заполнения, то сделаем их таковыми. Для этого здесь же переходим во вкладку «3» и ставим во всех Required, кроме Submit, «Да». Заодно здесь же установим и проверку правильности email. Для этого укажем email в столбце Validation напротив соответствующего поля. Наведем еще немного красоты и укажем текст подсказок, которые будут появляться, если поле не заполнено.

seblod: форма обратной связи

После этого шага форма обратной связи почти готова.

 

Шаг 5. Дополнительные настройки формы обратной связи

Остается сделать несколько настроек на вкладке Configuration. Все они описаны на рисунке:

seblod: форма обратной связи

 

Шаг 6. Создание пункта меню, ведущего на форму обратной связи

Чтобы наша форма была видна на сайте, создадим пункт меню, ведущий на нее. Для этого в менеджере меню создаем новый пункт типа Seblod– Form и справа выбираем наш тип контента:

seblod: форма обратной связи

После сохранения на сайте появится созданный пункт меню.

Ну вот и всё, форма обратной связи полностью готова. Остается только проверить ее работоспособность.

Форма на сайте:

seblod: форма обратной связи

Письмо, которое приходит администратору:

seblod: форма обратной связи

Важное замечание!

В описанном примере я использовал поле email и как форму ввода адреса и как плагин отправки сообщения. При таком подходе сообщение отправляется не только администратору, но и отправителю на email-адрес, который он ввел в форме.

Если требуется отправить сообщение только администратору, то для получения email пользователя нужно использовать отдельное текстовое поле, а поле email сделать скрытым.

На этом всё. С помощью SEBLOD вы можете создать сколь угодно сложную форму обратной связи, но помните, не надо стрелять из пушки по воробьям. Если вам нужна только простая форма обратной связи и ничего больше, то гораздо логичнее использовать встроенный компонент контактов Joomla, а не SEBLOD.

По ссылке ниже вы можете скачать пакет описанной в статье формы обратной связи. Он устанавливается через менеджер расширений Joomla и требует наличия установленного SEBLOD’а.

>>>Форма обратной связи wedal_feedback_simple<<<

------------------------------

Если нет желания разрабатывать сайт самостоятельно, то стоит обратить внимание на web-студии. Например созданием сайтов недорого в Ростове-на-Дону занимается ROSTOV design (http://www.rostov-design.ru/).

Об авторе
Wedal
(Виталий). Веб-разработчик полного цикла (Full Stack). Создатель и автор сайта Wedal.ru.
Основной профиль – создание сайтов и расширений на CMS Joomla.
Добавить комментарий

Комментарии  
0
Wedal, спасибо за лестные отзывы о моей статье
1
Dgikar, хорошая статья. Заслуживает. :-)
0
Wedal, спасибо за интересный и полезный многим материал, и за ссылку на статью :-). Как всегда очень подробно и написано понятным языком.
Небольшое замечание, если позволишь - на скриншоте поля e-mail этого не видно, но Storage у него также должен быть None (если мы лишь отправляем письмо, а не сохраняем как материал), иначе будет создано поле в БД, которое нам не нужно.
2
Форма обратной связи это хорошо, фотогалерея тоже. Но для реализации всего этого есть десятки прекрасных расширений для Joomla.
А вот как с помощью SEBLODа реализовать хотя бы простую доску объявлений с отдельными кабинетами для пользователей в которой они бы смогли редактировать свои объявления или каталог с несколькими фильтрами?
Спасибо за автору за его труд.
Жду с нетерпением следующую статью.
0

Цитирую Егор:

Форма обратной связи это хорошо, фотогалерея тоже. Но для реализации всего этого есть десятки прекрасных расширений для Joomla.
А вот как с помощью SEBLODа реализовать хотя бы простую доску объявлений с отдельными кабинетами для пользователей в которой они бы смогли редактировать свои объявления или каталог с несколькими фильтрами?
Спасибо за автору за его труд.
Жду с нетерпением следующую статью.


Тоже очень нуждаюсь. Читал у вас на форуме про разные кабинеты и ничего не получилось (((
Заранее благодарю за совет.
Спасибо Wedal за его труд!!!
0
Егор, zloy_pozitiv, идем от простого к сложному. Дойдем, рано или поздно, и до этого.
0
Спасибо за очередной урок. Благодаря Вашим урокам смогу войти в курс по SEBLOD. Хотелось бы услышать подробную информацию по выборкам и различным условиям выборки SEBLOD LIST. :-)
0
Сайт стоит на локалке, Joomla 2.5.6, seblod версии 2.3
Обнаружил что не сохраняется элемент никакого даже самого простого контента: нет ни отправки контента при нажатии кнопки submit, ни при сохранении материала из админки. Аналогичная ситуация даже при размещении статьи через готовую форму от seblod.
Кто-нибудь сталкивался с такой проблемой?
0
День добрый, wedal!

Спасибо за отличные статьи про Seblod! На данный момент нуждаюсь в форме регистрации для разных типов пользователей, поэтому хотел спросить.
Можно ли с помощью Seblod сделать регистрацию двух типов пользователей таким образом, чтобы при нажатии кнопки "Зарегистрироваться" появлялась страница с двумя Radio button и только после выбора одного загружались остальные соответствующие поля?
Если такое возможно, то как это сделать? Думаю это может стать хорошей статьей для будущего поколения.
0
sebrotaller, теоретически - можно. Практически - не пробовал. Дойдем и до этого.
0
Копирайты на картинках слишком маленькие и незаметные. Надо было сделать побольше и поплотнее, так чтобы по всей площади изображения шли. А то украдут и продавать будут по тыще евро за штуку.
0
sp, сделал бы побольше, да врожденная скромность не позволяет.
0
Когда указываю поле обязательным для заполнения и указываю подсказку "Это поле обязательно", то в форме при наведении выходит корявая подсказка "CCK_COM_Это_поле_обязательно"
Добавил переопределение констант (только вручную, через админку кириллицу не проглатывает"), все равно не помогает. что делать?
0
ДА кстати Поле Защита от спама почему то не добавляется, в чем проблема так и не понял, вроде все как здесь указано сделал.
0
Спасибо за классную статью. У меня вопрос, никак не могу понять как сделать. Есть анкета на сайте которая заполняется и приходит в админку неопубликованная - это я сделал. Подскажите, как сделать чтоб при нажатии отправить еще приходило сообщение на e-mail, что анкета добавлена? Заранее спасибо
0
skyz, просто добавьте в форму поле email, по аналогии, как рассказывается в статье и сделайте его скрытым.
0
Здравствуйте, подскажите пожалуйста, сообщения сохраняются в материалах(дата вместо заголовка, остальное пусто), что может быть не правильно? Как исправить?
0
Nikita, посмотрите внимательно первый пункт, первый рисунок.
0
Сложной оказалась задача по отправлению данных из полей GROUP и особенно GROUPX. Если подставляю в сообщение [fields], то все вставляется в сообщение email, но к сожалению эти данные нет возможности форматировать. Может кто решал подобную проблему?
0
alves76, совсем понял, в чем проблема. Если вы подставляете значение поля GROUPX в письмо, то не можете его отформатировать? Почему? Что именно мешает? Не те данные? Пишите подробнее.
0
Проблема в том, что я не могу найти решение для вставления данных из GROUPX в email message. Переменные типа #название_поля_group_или_groupx# не работают. Другие поля работают как и должны. ...пример с [field] я привел для того, чтобы описать, что, все же, есть возможность захватывать данные из groupx, но в этом случае нет возможности работать с отдельными полями, так как форма рендерится целиком. Мне же нужно вставлять данные из полей в собственный шаблон письма.
0
alves76, GROUPX - специфичное поле. Универсального рендера для него не создать просто потому, что всем нужно выводить данные по-разному. Здесь я вижу только вариант создания собственного шаблона. С ходу не могу сообразить, получится ли прикрутить его к письму, но скорее всего да. Отличие от того, что вы делаете в редакторе, будет только в том что переменные вставляются через PHP, зато в этом случае вы можете самостоятельно распарсить данные GROUPX как душе угодно, конечно при условии, что знакомы с PHP. Посмотрите статью http://wedal.ru/rasshireniya-joomla/seblod-konstruktor-kontenta-cck-dlya-joomla-chast-11-znakomstvo-s-shablonami-seblod.html . Там описано про шаблоны.
0
Интересно что [fields] выдает все поля. И fieldx и groupx....
0
Добрый день. Позвольте задать вопрос.

Создана форма с "radio_button", со значениями 1, 2, 3, 4, 5
При отправке почты в теле письма ни как не могу вывести выбранное значение.

Пример письма:
Здравствуйте, #user_name#, Вы выбрали #radio_button#...

Поле #radio_button# в письме пустое.

Подскажите пожалуйста как реализовать?
Заранее благодарю.
0
lanworks, попробуйте так:

Код:

$cck->getValue('radio_button');


Убедитесь, что имя поля действительно "radio_button".
0
Уважаемый Виталий, в Sebloid 3x нет разрешения заполнить форму незарегистрированным пользователям (шаг 5, нижняя часть скриншота). Настройки заканчивается Validation. Искал в других местах - не нашел. Т.е. форма появляется на сайте после регистрации, для незарегистрированных появляется ошибка и форма входа. Понимаю, что так не должно быть, поскольку к каким то формам должен быть доступ только зарегистрированным, к каким то - всем, и общим доступом проблему не решить. Где искать, подскажите?
0
Exelenz, смотрите рисунок:
0
Сделал все по инструкции. Но есть 2 проблемы: 1.Не показывается каптча, 2. Письма не приходят на почту.(после отправки появляется сообщение, что ваше письмо отправлено, но ничего не приходит.)
0
В поле Send E-mail не указал always
0
Здравствуйте!
Прошу прощения за чайный вопрос. А где можно отрегулировать ширину конкретно выводимого поля на сайте? Например, капчи?
0
Devol, либо в настройках самого поля (опция size), либо, что правильнее, в CSS (например: width: 100px;).
0
Wedal, я исходил из Вашего скриншота готовой формы, где поле капчи math явно по размеру отличается от остальных. Оно меньше и это логично из-за добавленных впереди чисел. Я использовал версию 3.8.2., она по умолчанию все поля выводит абсолютно одинаковыми по ширине, вроде бы удобно, но вот как раз из-за этих "чисел" в капче, width которых видимо не учитывается, это поле вылезает вправо как раз на их ширину. Маленький, но бардак, не грамотно. Настройка (индивидуальная) этого поля size ровным счетом ничего не меняет (или работает в совокупности с чем то, не нашел), а в CSS, как я понимаю, смогу изменить ширину вообще всех полей, что тоже ничего не даст. Вот я и подумал, глядя на Вашу картинку, что ширина конкретного поля где-то безболезненно изменяется, у Вас то оно явно меньше остальных.
0
Devol, через CSS вы можете обратиться к отдельному полю. В SEBLOD все поля имеют уникальные классы и/или идентификаторы. Вопрос лишь в том, понимаете ли вы CSS. Можете показать мне сайт и указать поле. Я напишу вам, как обратиться к полю через CSS.
0
Вы правы, с CSS я не на ты. ))
Экспериментирую вот здесь. http://soft.devols.ru/forma-obratnoj-svyazi
Поле капчи.
0
Devol,

Код:


#seblod_form #fos_kaptcha{
width: 100px;
}


либо:

Код:


#seblod_form #fos_kaptcha{
display: block;
clear: both;
}


Добавить это нужно в CSS-файл вашего шаблона Joomla. Не используйте для сайта шаблон Protostar в исходном виде. Он является частью Joomla и при обновлении Joomla будет переписан. Потеряете все изменения.
0
Wedal, благодарю! Все работает. Могу потихоньку продвигаться дальше. Большое спасибо!
0
Добрый день! Появляется надпись "зарегистрируйтесь". После регистрации доступна форма. Значения пользовательские в email и ИМЯ подставляются автоматом.
Но при нажатии на ОТПРАВИТЬ (пробовал и IMPUT и BUTTON) перекидывает в пустую страницу с УРЛ : САЙТ/component/cck/ и надпись СООБЩЕНИЕ ОТПРАВЛЕНО не выводится. В папке userdata/templ/email сообщений нет. Хотя тестовые сообщения через Joomlu идут.
Помогите!
0
Алексей, даже не знаю, что вам подсказать. Попробуйте для начала проверить вариант с настройками, описанными в статье (или готовый пакет формы, который можно скачать выше), а затем, если это будет работать, приводите к вашему варианту, проверяя работоспособность на каждом шаге. Так найдете ошибку.
Если совсем белая пустая страница после отправки, то вероятно есть какая-то ошибка PHP. Включите отображение ошибок в общих настройках Joomla и увидите ее. Возможно, это натолкнет на мысль о причинах.
0
Увы. Либо статья уже не актуальна совершенно, либо в seblode опять баг. Так или иначе отправка не происходит. Постоянно пишет - ошибка, и ничего не делает. Да и сами настройки выглядят уже иначе, чем в статье или приложенном pdf.
0
Liger, настройки немного изменились, но принцип - нет. Для начала проверьте отправляет ли вообще Joomla письма. В общих настройках Joomla, в блоке настроек почты есть кнопка "Отправить тестовое сообщение". Попробуйте отправить с ее помощью сообщение и убедитесь, что получили его. Если этого не произошло, то дело даже не в SEBLOD.
0
Отправляет правда только с SMTP. НАстройки сохранен и система тестовые сообщения доставляет.
Про то что настройки остались те же вы простите неправы. Та же кнопка отправить теперь имеет множество вариантов действий. По умолчанию ставится save что с учетом того что в данной форме ничего не сохраняется в joomle происходит ошибка с выбросом на Locationnone страницу соответственно. А там еще есть "метод" и "экспорт". Ставлю метод и получаю просто сообщение ошибка. При этом при заполнение в админике получаю ошибку 0 Class 'Helper_Admin' not found.
В общем количество настроек увеличилось, что добавляет путаницы.
Так что отложил данную заею в долгий ящик, на крайний случай использую сторонее дополнение.