Как при отправке Webform создать ноду, записав в ее поля значения из полей формы

Аватар пользователя leha373 leha373 3 апреля в 20:59

Возникла задача, сделать отзывы на сайте.
сделал вебформу "Добавить отзыв"
с полями: Ваше Имя(ключ формы: vashe_imya)
Сообщение(ключ формы: soobshchenie)
Сделал тип материала: Отзывы
с полями:Имя(МАШИННОЕ ИМЯ: field_otzyvname)
Текст отзыва(МАШИННОЕ ИМЯ: body)
Все бы хорошо,но отзывы приходится добавлять вручную
скопировав результат с вебформы в тип материала отзыв
как можно сделать так ,чтобы поля копировались автоматом???
как то можно с помощью правил, но уже всю голову сломал
поставил модуль webform rules не знаю как настроить, чего выбирать
Если есть возможность,подскажите пошагово с самого начала?!
Спасибо!!!

0 Thanks

Лучший ответ

Аватар пользователя Evgeny S Evgeny S 5 апреля в 17:32

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

Отправленные значения из вебформы заполняются с префиксом "data:...", например, если в вебформе поле называется "vash_vopros", то токен для заполнения будет "[data:vash_vopros-value]".

Комментарии

Аватар пользователя ivnish ivnish 3 апреля в 21:18

webform совсем не для этого. Он для опросов или форм обратной связи. Доя отзывов лучше использовать комментарии

Аватар пользователя leha373 leha373 3 апреля в 21:21

Да он тоже норм работает!только разобраться бы с правилами.
в будущем пригодится

Аватар пользователя Orion76 Orion76 4 апреля в 9:28
leha373 wrote:

Да он тоже норм работает!только разобраться бы с правилами.
в будущем пригодится

Не пригодиться..

Для этого уже всё придумали.. комментарии..

Вэбформ - это только "инструмент", чтобы запросить у пользователя информацию строго определенной "структуры".

Всё остальное - костыли от лукавого..

ЗЫ.. Надо запостить на орг фичреквест: удалить модуль Вэбформ и подтереть по интернетам все упоминания о нем..
И в хвост и в гриву же..
Осталось только админку на вэбформах сделать и друпал можно выкидывать..

Аватар пользователя adano adano 4 апреля в 10:24

Странно, уже второй человек упомянул комментарии под отзывы, а хайпа нет.

Полгода назад, какая-то группа слюной брызгала (то ли в чате, то ли тут), что "комментарии - только для комментариев"... Или "переобулись"?

Аватар пользователя Orion76 Orion76 4 апреля в 11:17

Хз, что в том "случае" называлось термином "комментарий".

Если связанная с материалом "подсущность",
связью "один-ко-многим",
с выводом формы добавления "подсущности" и выводом "отображения" списка "подсущностей" (плоского или иерархического) на странице отображения материала ,
то (имхо) они были не правы.

Если что-то другое, чтобы сделать правильный вывод - нужны конкретные подробности.

Но в данном случае, если нет каких либо нюансов, "отзывы" являются "синонимом" "комментариев" во всех смыслах.
И в смысле "назначения" и в смысле "реализации".

Аватар пользователя adano adano 4 апреля в 14:48

"отзывы" являются "синонимом" "комментариев"

Правильно. Кого волнует, что бывают кейсы "комментарии и отзывы на одной странице/товаре"...
Че они там понимают в своих интернет-магазинах...

Аватар пользователя Orion76 Orion76 4 апреля в 17:27

А почему Вы ограничились только двумя типами пользовательского контента, связанного с материалом-товаром?
Что мешает, при необходимости, иметь их большее количество?

Но тоды ой..
да.. без вэбформ точно не справиться..

Аватар пользователя leha373 leha373 4 апреля в 11:36

я хочу реализовать так:отправляешь веб форму обработчик перехватывает данные запихивает их в тип материала отзыв,потом вывожу отзывы с помощью views и могу еще написать ответ!

красиво!!

Аватар пользователя voviko voviko 4 апреля в 12:58
leha373 wrote:

я хочу реализовать так:отправляешь веб форму обработчик перехватывает данные запихивает их в тип материала отзыв,потом вывожу отзывы с помощью views и могу еще написать ответ!


красиво!!

А создать отдельный тип материала без прослойки из webform? С комментариями к отзыву...

Аватар пользователя leha373 leha373 4 апреля в 11:38

как создать материал при отправке формы через rules я понял!
а с полями не понятно???!!!

Аватар пользователя gun_dose gun_dose 4 апреля в 11:53

Поля у вебформ хранятся в сериализованном формате. Не факт, что webform rules умеют их доставать.

PS: всё же на комментах вашу задачу было бы в разы проще реализовать.

Аватар пользователя ivnish ivnish 4 апреля в 12:24

Я недавно делал отзывы комментариями. Всё просто и понятно. И не надо даже никакие rules)

Но некоторые упрямо пытаются впихнуть webform туда, где он не нужен

Аватар пользователя leha373 leha373 4 апреля в 12:01

а если в действиях в rules написать php например:

if ( $ _SERVER [ ' REQUEST_METHOD ' ] ==  ' POST ' ) {
        $ name  =  $ _POST [ ' vashe_imya ' ];
        $ message  =  $ _POST [ ' soobshchenie ' ];
}

и так перехватить значения ,а потом вставить в материал?

Аватар пользователя fairrandir fairrandir 4 апреля в 12:12

А может гораздо проще свою формочку накатать, в своём модуле, чем в рулсы php-код пихать?
Натуральным образом четыре функции: сама форма, обработка отправки, да пара хуков, чтобы в блок её пульнуть.

Аватар пользователя leha373 leha373 4 апреля в 12:23

А почему не проще в рулс четыре строчки накатать и аминь? и воспользоваться стандартными средствами друпал Views и т.д

Аватар пользователя leha373 leha373 4 апреля в 12:29

конечно можно и свою форму сделать:

<form action="submit.php" method="post">

<p>Имя: <input name="vashe_imya" type="text"></p>

<p>Сообщение: <br /><textarea name="soobshchenie" cols="30" rows="5"></textarea></p>

<p><input type='submit' value='Отправить'></p>

</form>

submit.php

<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
        $name = $_POST['vashe_imya'];
        $message = $_POST['soobshchenie'];

перехвочу данные,а потом как вставить в поля материала отзыв?

Аватар пользователя gun_dose gun_dose 4 апреля в 12:45

блин я уже много сделал не охота переделывать

Цитаты великих людей))))

Я вам советую - отвлекитесь на 15 минут, сделайте это через комменты - там вообще не надо ничего кодить.

Аватар пользователя Semantics Semantics 4 апреля в 12:54

да даже форму создания ноды вывести в блок и на любимом рулзе прицепить уведомление на мыло и то будет правильнее

Аватар пользователя adano adano 4 апреля в 13:12

Истина. Как минимум надо будет менять слово "комментарий" на "отзыв".

P.S. Предвижу коммент "Переводы и вообще не надо ничего кодить" )))

Аватар пользователя Semantics Semantics 4 апреля в 15:10

Врядли кто-то на это пойдёт.
Так как есть вероятность, что кому-то из советчиков потом этот сайт придётся поддерживать.

Аватар пользователя leha373 leha373 4 апреля в 15:17

ну хотя бы как из поля одного типа материала передать значение в поле другого типа материала?

Аватар пользователя Evgeny S Evgeny S 5 апреля в 17:32

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

Отправленные значения из вебформы заполняются с префиксом "data:...", например, если в вебформе поле называется "vash_vopros", то токен для заполнения будет "[data:vash_vopros-value]".

Аватар пользователя leha373 leha373 5 апреля в 19:23
Evgeny S wrote:

Делал подобный рулз на сайте - скрин, из действий по заполнению полей в новой ноде, первое - "создать новую сущность".
Действие "установить значение" потребуется для заполнения других полей в создаваемой ноде.
Отправленные значения из вебформы заполняются с префиксом "data:...", например, если в вебформе поле называется "vash_vopros", то токен для заполнения будет "[data:vash_vopros-value]".

Вечерком попробую.мне не понятно чего в селекторах писать.можно буду задавать вопросы?Спасибо

Аватар пользователя Evgeny S Evgeny S 5 апреля в 20:13

Обязательно, чтобы работать только с той вебформой, которая на отзывы ваши отвечает.