Каким образом добавить в private_message имеющееся поле.

20 мая 2020 в 12:56
Аватар пользователя rukoved rukoved 0 26

В private_message есть возможность добавить новое поле для отправки сообщения из формы, но нет возможности добавить имеющееся поле материала из которого можно пройти по ссылке для отправки личного сообщения.

Возник вопрос!
Как можно добавить поле с названием материала из которого происходит переход по ссылке в личные сообщения? Есть ли какие-то готовые решения?

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

Задача: Добавить поле с названием материала (объявления) в ветку сообщений пользователя с автором материала при переходе по ссылке на личное сообщение автору объявления.

Любая подсказка куда смотреть?

Комментарии

Здравствуйте!
Модуль поставила, создала поле в личных сообщениях
, сделала его в виде ссылки на сущность, представление ссылки создала новое для этого
. В Итоге получилось вот, что
:
из представления страницы с объявлением при переходе по ссылке личное сообщение в поле название ничего не передается, поле стало редактируемым, что не совсем верно в нем есть возможность выбрать название объявление методом выбора из представленных вариантов, что тоже не совсем корректно, так-как нужно, чтобы по умолчанию отображалось название того объявления из которого перешел пользователь по ссылке и чтобы его не возможно было редактировать.

Что я делаю не так?

22 мая 2020 в 18:43

Поле в форме надо сделать скрытым в настройках, а в ссылке передать аргумент для заполнения по ключу поля используемого на странице формы см. примеры в README.md модуля и ещё больше примеров в USAGE.md

23 мая 2020 в 12:01

sas@drupal.org wrote: USAGE.md

- это где?
в README.md нет об этом ни слова. Все настройки прошерстила.
Я имею ввиду вот этот модуль private_message
Поля там не выводятся во вьюсе, только сущностями через глобальное представление в виде блока вставляю. И форма там в виде сущности, поле можно добавить новое, отключить но не скрыть, либо я что-то не знаю.

23 мая 2020 в 17:02

Спецом для Вас настроил приватный мессадж на тесте, работает как и положено
название поля field_article
ссыль на создание
http://d8p73.sas/private_message/create/?edit[field_article][widget][0][target_id]=2

23 мая 2020 в 19:24

Здравия sas@drupal.org!
Я окончательно запуталась...

Если не трудно, уточните пожалуйста:
1. Какой тип указать полю при добавлении в материал приватных сообщений - Перезапись основного поля? Тогда какой тип связи указать для этого поля ссылки? Если выбрать представление на основе ссылок сущности то его надо предварительно создать..

У меня стоит модуль токен для значения по умолчанию но там можно ввести только токен, а не ссылку с запросом.

Если создать простое текстовое поле то можно поставть значение по умолчанию.
Ставлю туда https://xxxxx.ru/private_message/create/?edit[field_article][widget][0][...
Отключаю поле в материале приватных сообщений, но что дальше, я не понимаю? Как показать это поле на странице прив. сообщений, т.е. как правильно его вывести во вьюс и переопределить? Это значит нужно создать еще 1 поле для переопределения?
Что означает следующая переменная [target_id]=2 ?
Что значит - "используйте токены для умолчательной инициалиции." ?

24 мая 2020 в 10:43

rukoved wrote: 1. Какой тип указать полю при добавлении в материал приватных сообщений - Перезапись основного поля?

Entity reference

rukoved wrote: Отключаю поле в материале приватных сообщений, но что дальше, я не понимаю?

Не надо для private_message

rukoved wrote: как правильно его вывести во вьюс и переопределить? Это значит нужно создать еще 1 поле для переопределения?

В поле на создание приватного сообщения надо добавить гет
как сказано в README для ссылки на материал
как написано в USAGE.md
Pre-populate an entity reference field:
`http://www.example.com/node/add/page?edit[field_entity_reference][widget...`

rukoved wrote: Что означает следующая переменная [target_id]=2 ?

Это идер материала который надоВы хотите чтобы попал в поле ссылки на материал

rukoved wrote: Что значит - "используйте токены для умолчательной инициалиции." ?

Не надо для private_message

25 мая 2020 в 7:47

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

Вы на 8-й версии друпал это испытывали? Ранее на 7-й версии я как-то делала подобное с полями и у меня не возникало вопросов, проблемы появились с 8-й версией, модуль Entity revision работает немного иначе.

Дело в том, что еntity reference - такого типа поля нет в друпал 8, есть Entity revision.

Для того, чтобы добавить поле в приватные сообщения:
1-й вариант. Я выбираю тип поля Entity revision, далее Другое и там нет перезаписываемого поля, есть поле для перезаписываемого токена, в него ссылку с запросом не поставить. Есть возможность выбрать ссылку на сущность из представления, это значит поле с запросом надо создать в новом представлении, но у меня это не сработало.

2-й вариант. Я вибираю тип - Ссылка и далее Перезапись основного поля, но там нет поля для перезаписи - есть предложение применить тип ссылки и выбрать ее опять из представления...

3-й вариант. я вибираю тип - Ссылка и далее Content, там нет поля для перезаписи - есть предложение применить тип ссылки и выбрать ее из представления и поле добавить аргументы.

Далее..
У меня ссылка на личное сообщение находится в представлении страницы, которое выводится на странице (объявление) выведена она строкой запроса - /private-message/create?recipient={{ uid }}&t={{ title }} - заголовок я сейчас получаю в строке браузера, но у меня не получается его запросить в поле с названием, т.е. загрузка следующей страницы (форма с приват-м. сообщением) должна получить заголовок (объявления) с предыдущей страницы.

26 мая 2020 в 13:41
rukoved wrote: Вы на 8-й версии друпал это испытывали?

Да

rukoved wrote: Дело в том, что еntity reference - такого типа поля нет в друпал 8, есть Entity revision.

Конечно есть и то и другое

Выбираете типа entity reference например на материал, и его значение при использовании приватного сообщения заполняется из гета урла

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

В урл формы приватного сообщения передавайте то что надо, как написано в модуле prepopulate

26 мая 2020 в 14:05

То, что было представлено на примере ранее, работает только если выбрать значение в поле самостоятельно, путем выбора руками, но автоматически при переходе на страницу сообщений оно не заполняется.

Есть ли какой-то иной способ предварительно заполнить поле значением из предыдущего материала?

26 мая 2020 в 21:41

Путем мучительных поисков обнаружила причину проблемы.

При таком варианте загрузка данных в поле происходит как положено, но без возможности автоматически определить автора объявления.
https://ххххх.ru/ru/private-message/create?edit[field_t][widget][0][target_id]={{ nid }}

Так-как я произвожу загрузку страницы с личным сообщением непосредственно автору объявления, я должна указывать ссылку на запрос автора в виде:
https://ххххх.ru/ru/private-message/create?recipient={{ uid }}/?edit[field_t][widget][0][target_id]={{ nid }} - где получается некорректный двойной запрос, который не срабатывает.

Мне не ясно каким образом можно это исправить? Я думаю ответ совсем рядом, но от меня он еще ускользает)))

26 мая 2020 в 22:39

Вопрос решила! Yahoo
Правильная ссылка выглядит вот так.
https://ххххх.ru/ru/private-message/create?recipient={{ uid }}&edit[field_t][widget][0][target_id]={{ nid }}

Благодарю за поддержку sas@drupal.org, не знаю имени!

26 мая 2020 в 23:10

А для 9 друпала нет ли случаем модуля для обмена сообщениями?
private_message не ставится ни в какую..........

2 апреля 2021 в 17:16

Потестила то, что есть, делюсь результатами - выяснилось, что созданное поле с названием объявления создается, заполняется но не сохраняется, т.е. оно есть при создании объявления, но при переходе в чат и отправке других объявлений происходит такой сбой:
1. Само поле с названием объявления отображается до тех пор пока не почистится кеш или пользователь не пожелает создать новое сообщение, далее оно исчезает.
В самом чате появляется название при переходе но странно - т.е. само название и под ним снова новое поле, чтобы его создать для следующего сообщения автору того-же объявления, получается, что при создании сообщения само название не сохраняется в базу и в чате его снова нужно при каждом новом сообщении заводить руками из списка выбора из этого поля.
2. У приват мес есть блоки (история сообщений) по которым можно перейти на страницу с сообщениями в разные ветки, так вот при переходе между сообщениями пользователей, соответственно поле с названием так-же исчезает.

Проверила что сохраняется в базе и вижу, что само поле с названием объявления появляется но названия нет.
Приложу скрины.

27 мая 2020 в 13:06

Да и забыла еще один важный момент указать - получается так, что к одному автору сообщения по разным объявлениям летят в одну ветку. Вообщем данный модуль хорош для упрощенного общения меж пользователями, под другие цели его придется модифицировать.

27 мая 2020 в 13:59

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

28 мая 2020 в 21:05