none
Отображение дискуссии на форме элемента RRS feed

  • Вопрос

  • Коллеги, есть интересная задача:
    Есть сайт в O365 созданный по шаблону "Сайт сообщества", с форумом который. На сайте создан список. И набор дискуссий.
    Нужно на форме элемента списка, отображать определенную развернутую дискуссию, с возможностью постить ответы.
    В наборе стандартных веб-частей не нашел подходящей.
    Как создаются дискуссии, не суть важно, это может быть РП или вручную. Элемент списка связывается с дискуссией, через поле подстановки. Т.е. на форме уже есть данные о дискуссии: ссылка на нее, в которой есть ID.
    Дискуссии нужны для обсуждения элементов. Отказаться от них и использовать столбец типа многострочный текст, с возможностью "внесение изменений" не предлагать. Гугление на эту тему не дало результатов.
    Есть идеи?
    15 апреля 2015 г. 10:51

Ответы

  • В обратную сторону получилось!

    В дискуссии делаем поле подстановки на элемент списка.

    И на форме дискуссии вставляем связанный список, дальше остается только изменить верстку и навести красоту CSRом.

    • Помечено в качестве ответа IL De 16 апреля 2015 г. 9:24
    16 апреля 2015 г. 9:23
  • Не ручаюсь за истинность моей версии, но скорее всего вы столкнётесь с кучей проблем, пытаясь прикрутить discussion в таком виде, в котором они представлены по умолчанию.

    Для теста, скопируйте в SP Designer разметку веб-части со страницы Тема.aspx.
    Вставьте её к себе на любую страницу. Можете даже параметры передавать (там не id - там source url папки).
    Первое сообщение в дискуссии это папка (могу ошибаться, но кажется так). 
    И увидите, что вас перекинет с вашей страницы на страницу Тема.aspx.
    Будут подгружены скрипты с зашитым названием страниц. 
    Для отображения выбчасти используется xslt + jslink (увидите в разметке).
    И ещё fiddler вам в помощь + ie developer tools. 

    Попробуйте в обратную сторону решить задачу: отображайте на странице обсуждения элемент списка. Я думаю, что так будет проще. Можно кнопку на ribbon добавить - "Перейти к обсуждению".

    [custom.development]

    • Помечено в качестве ответа IL De 16 апреля 2015 г. 9:24
    16 апреля 2015 г. 8:51

Все ответы

  • 1 основной список , второй как раз ветка с дискуссиями, у которого будет столбец содержащий id элемента основного списка.
    и потом, как ты хотел, в дисп форм элемента списка добавить веб часть представления дискусии впомогательного, который будет получать фильтр по id основного элемента

    http://howididit-sharepoint.blogspot.ru/2012/12/master-detail-in-sharepoint-12.html


    15 апреля 2015 г. 14:04
  • 1 основной список , второй как раз ветка с дискуссиями, у которого будет столбец содержащий id элемента основного списка.
    и потом, как ты хотел, в дисп форм элемента списка добавить веб часть представления дискусии впомогательного, который будет получать фильтр по id основного элемента

    http://howididit-sharepoint.blogspot.ru/2012/12/master-detail-in-sharepoint-12.html


    Там не всё так просто. Дискуссии очень специфически работают.
    Например при открытии дискуссии в списке дискуссий, будет произведён переход на страницу библиотеки Site Pages. В русской локализации это будет страница Site Pages/Тема.aspx.
    И что интересно, так это то, что название этой страницы "захардкодено" в js файле: https://cdn.sharepointonline.com/14923/_layouts/15/16.0.3912.1224/1049/initstrings.js
    Изменить его не получится.

    Я думаю, что в данном случае игра не стоит свеч. Даже при клике на lookup значении поля, будет открыта форма свойств элемента дискуссии. А не сама дискуссия.
    Если я правильно понимаю, то сама дискуссия (т.е. первый пост в ней) является папкой.
    Я бы попробовал сделать calculated поле, которое бы выдавало верный адрес, для перехода на дискуссию.

    И как вариант можно в эту ссылку вставлять id элемента. 
    Затем уже добавить, например content editor web part,  на страницу тема, 
    и там отображать свойства элемента из которого пришли на дискуссию.


    [custom.development]



    15 апреля 2015 г. 15:25
  • Alexander_Surbashev -  это понятно, так не получится. Это вариант для обычных списков, для дискуссии он не подходит.

    AlexanderShelopukho - прав.

    Копаю в сторону CQWP, стандартного шаблона отображения дискуссий в нем нет. Придется создавать свой XSL!? и вторая проблема передать в CQWP параметр - id нужной ветки.


    • Изменено IL De 16 апреля 2015 г. 8:43
    16 апреля 2015 г. 8:42
  • Не ручаюсь за истинность моей версии, но скорее всего вы столкнётесь с кучей проблем, пытаясь прикрутить discussion в таком виде, в котором они представлены по умолчанию.

    Для теста, скопируйте в SP Designer разметку веб-части со страницы Тема.aspx.
    Вставьте её к себе на любую страницу. Можете даже параметры передавать (там не id - там source url папки).
    Первое сообщение в дискуссии это папка (могу ошибаться, но кажется так). 
    И увидите, что вас перекинет с вашей страницы на страницу Тема.aspx.
    Будут подгружены скрипты с зашитым названием страниц. 
    Для отображения выбчасти используется xslt + jslink (увидите в разметке).
    И ещё fiddler вам в помощь + ie developer tools. 

    Попробуйте в обратную сторону решить задачу: отображайте на странице обсуждения элемент списка. Я думаю, что так будет проще. Можно кнопку на ribbon добавить - "Перейти к обсуждению".

    [custom.development]

    • Помечено в качестве ответа IL De 16 апреля 2015 г. 9:24
    16 апреля 2015 г. 8:51
  • AlexanderShelopukho -  спасибо.

    Да, похоже все это выливается в головную боль.

    Про обратную связь уже думал, попробую.

    Но видимо будет проще сделать все, своей разметкой и CSOM, как то так: Working with Discussions List via SharePoint Client Object Model

    16 апреля 2015 г. 9:07
  • В обратную сторону получилось!

    В дискуссии делаем поле подстановки на элемент списка.

    И на форме дискуссии вставляем связанный список, дальше остается только изменить верстку и навести красоту CSRом.

    • Помечено в качестве ответа IL De 16 апреля 2015 г. 9:24
    16 апреля 2015 г. 9:23
  • В обратную сторону получилось!

    У можно скрин результата? (очень интересно)
    16 апреля 2015 г. 10:16
    Модератор
  • Вот пару лет назад делали.
    Как то все коряво вышло, если честно, но в общем то работало:

    16 апреля 2015 г. 14:48
  • спасибо
    16 апреля 2015 г. 20:45
    Модератор
  • Общение на тему данного топика было продолжено в facebook.
    В итоге получилось, если коротко, то:
    Копируем разметку веб-части со страницы Flat.aspx (либо Тема.aspx),
    затем кидаем её на форму DisplayFrom.aspx. 
    Там нужно внести некоторые изменения (выбрать для правильного выбора представления).
    Если что обсуждение здесь: https://www.facebook.com/groups/sharepointrussian/permalink/754449204670211/


    [custom.development]

    17 апреля 2015 г. 7:57
  • спасибо, Александр
    17 апреля 2015 г. 10:36
    Модератор
  • Спасибо Илья.
    17 апреля 2015 г. 12:05
    Модератор