В private_message есть возможность добавить новое поле для отправки сообщения из формы, но нет возможности добавить имеющееся поле материала из которого можно пройти по ссылке для отправки личного сообщения.
Возник вопрос!
Как можно добавить поле с названием материала из которого происходит переход по ссылке в личные сообщения? Есть ли какие-то готовые решения?
Отправку сообщения делаю непосредственно из представления материала. Ссылку во вьюс вывожу через блок как сущность, по другому нет возможности это сделать.
Задача: Добавить поле с названием материала (объявления) в ветку сообщений пользователя с автором материала при переходе по ссылке на личное сообщение автору объявления.
Любая подсказка куда смотреть?
Комментарии
# добавить поле entity_reference в private_message
# использовать модуль https://www.drupal.org/project/prepopulate для передачи значения в поле
Здравствуйте!
Модуль поставила, создала поле в личных сообщениях
, сделала его в виде ссылки на сущность, представление ссылки создала новое для этого
. В Итоге получилось вот, что
:
из представления страницы с объявлением при переходе по ссылке личное сообщение в поле название ничего не передается, поле стало редактируемым, что не совсем верно в нем есть возможность выбрать название объявление методом выбора из представленных вариантов, что тоже не совсем корректно, так-как нужно, чтобы по умолчанию отображалось название того объявления из которого перешел пользователь по ссылке и чтобы его не возможно было редактировать.
Что я делаю не так?
Поле в форме надо сделать скрытым в настройках, а в ссылке передать аргумент для заполнения по ключу поля используемого на странице формы см. примеры в README.md модуля и ещё больше примеров в USAGE.md
- это где?
в README.md нет об этом ни слова. Все настройки прошерстила.
Я имею ввиду вот этот модуль private_message
Поля там не выводятся во вьюсе, только сущностями через глобальное представление в виде блока вставляю. И форма там в виде сущности, поле можно добавить новое, отключить но не скрыть, либо я что-то не знаю.
Спецом для Вас настроил приватный мессадж на тесте, работает как и положено
название поля field_article
ссыль на создание
http://d8p73.sas/private_message/create/?edit[field_article][widget][0][target_id]=2
Для https://www.drupal.org/docs/8/modules/private-message переместите поле в "отключеные" и используйте токены для умолчательной инициалиции.
Здравия sas@drupal.org!
Я окончательно запуталась...
Если не трудно, уточните пожалуйста:
1. Какой тип указать полю при добавлении в материал приватных сообщений - Перезапись основного поля? Тогда какой тип связи указать для этого поля ссылки? Если выбрать представление на основе ссылок сущности то его надо предварительно создать..
У меня стоит модуль токен для значения по умолчанию но там можно ввести только токен, а не ссылку с запросом.
Если создать простое текстовое поле то можно поставть значение по умолчанию.
Ставлю туда https://xxxxx.ru/private_message/create/?edit[field_article][widget][0][...
Отключаю поле в материале приватных сообщений, но что дальше, я не понимаю? Как показать это поле на странице прив. сообщений, т.е. как правильно его вывести во вьюс и переопределить? Это значит нужно создать еще 1 поле для переопределения?
Что означает следующая переменная [target_id]=2 ?
Что значит - "используйте токены для умолчательной инициалиции." ?
Entity reference
Не надо для private_message
В поле на создание приватного сообщения надо добавить гет
как сказано в README для ссылки на материал
как написано в USAGE.md
Pre-populate an entity reference field:
`http://www.example.com/node/add/page?edit[field_entity_reference][widget...`
Это идер материала который надоВы хотите чтобы попал в поле ссылки на материал
Не надо для private_message
у меня возникло подозрение, что у нас разные исходные данные, либо я ищу у себя то чего нет в моей сборке, я имею ввиду модуля может у меня нет какого-то...
Вы на 8-й версии друпал это испытывали? Ранее на 7-й версии я как-то делала подобное с полями и у меня не возникало вопросов, проблемы появились с 8-й версией, модуль Entity revision работает немного иначе.
Дело в том, что еntity reference - такого типа поля нет в друпал 8, есть Entity revision.
Для того, чтобы добавить поле в приватные сообщения:
1-й вариант. Я выбираю тип поля Entity revision, далее Другое и там нет перезаписываемого поля, есть поле для перезаписываемого токена, в него ссылку с запросом не поставить. Есть возможность выбрать ссылку на сущность из представления, это значит поле с запросом надо создать в новом представлении, но у меня это не сработало.
2-й вариант. Я вибираю тип - Ссылка и далее Перезапись основного поля, но там нет поля для перезаписи - есть предложение применить тип ссылки и выбрать ее опять из представления...
3-й вариант. я вибираю тип - Ссылка и далее Content, там нет поля для перезаписи - есть предложение применить тип ссылки и выбрать ее из представления и поле добавить аргументы.
Далее..
У меня ссылка на личное сообщение находится в представлении страницы, которое выводится на странице (объявление) выведена она строкой запроса - /private-message/create?recipient={{ uid }}&t={{ title }} - заголовок я сейчас получаю в строке браузера, но у меня не получается его запросить в поле с названием, т.е. загрузка следующей страницы (форма с приват-м. сообщением) должна получить заголовок (объявления) с предыдущей страницы.
Да
Конечно есть и то и другое
Выбираете типа entity reference например на материал, и его значение при использовании приватного сообщения заполняется из гета урла
В урл формы приватного сообщения передавайте то что надо, как написано в модуле prepopulate
То, что было представлено на примере ранее, работает только если выбрать значение в поле самостоятельно, путем выбора руками, но автоматически при переходе на страницу сообщений оно не заполняется.
Есть ли какой-то иной способ предварительно заполнить поле значением из предыдущего материала?
Либо это и есть 2-поле, которое нужно добавить в материал объявлений?)))
К сожалению это не работает.
Путем мучительных поисков обнаружила причину проблемы.
При таком варианте загрузка данных в поле происходит как положено, но без возможности автоматически определить автора объявления.
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 }}
- где получается некорректный двойной запрос, который не срабатывает.Мне не ясно каким образом можно это исправить? Я думаю ответ совсем рядом, но от меня он еще ускользает)))
Вопрос решила!
Правильная ссылка выглядит вот так.
https://ххххх.ru/ru/private-message/create?recipient={{ uid }}&edit[field_t][widget][0][target_id]={{ nid }}
Благодарю за поддержку sas@drupal.org, не знаю имени!
Я Алексей. Вот молодца.
А для 9 друпала нет ли случаем модуля для обмена сообщениями?
private_message не ставится ни в какую..........
Да, гет перменные идут через & амперсенд.
Рада знакомству! Наталия.
Взаимно
Потестила то, что есть, делюсь результатами - выяснилось, что созданное поле с названием объявления создается, заполняется но не сохраняется, т.е. оно есть при создании объявления, но при переходе в чат и отправке других объявлений происходит такой сбой:
1. Само поле с названием объявления отображается до тех пор пока не почистится кеш или пользователь не пожелает создать новое сообщение, далее оно исчезает.
В самом чате появляется название при переходе но странно - т.е. само название и под ним снова новое поле, чтобы его создать для следующего сообщения автору того-же объявления, получается, что при создании сообщения само название не сохраняется в базу и в чате его снова нужно при каждом новом сообщении заводить руками из списка выбора из этого поля.
2. У приват мес есть блоки (история сообщений) по которым можно перейти на страницу с сообщениями в разные ветки, так вот при переходе между сообщениями пользователей, соответственно поле с названием так-же исчезает.
Проверила что сохраняется в базе и вижу, что само поле с названием объявления появляется но названия нет.
Приложу скрины.
Да и забыла еще один важный момент указать - получается так, что к одному автору сообщения по разным объявлениям летят в одну ветку. Вообщем данный модуль хорош для упрощенного общения меж пользователями, под другие цели его придется модифицировать.
Посмотри на этот модуль https://www.drupal.org/project/ptalk
Добрый вечер, я пробовала ставить такой модуль, но отключила, ошибки пошли и в итоге пришлось откатить базу данных, чтобы сайт вернуть. Подозреваю несовместимость с модулем сообщений - Message UI, удалить который не получается, так-как при попытке его удалить сайт падает.
dev версию ставили?
ага, там только такая была, вот по ссылке брала https://www.drupal.org/project/message_ui