#api #comments #liferay #liferay-6
#API #Комментарии #liferay #liferay-6
Вопрос:
Я пытаюсь использовать встроенные функции комментариев в приложении-портлете JSF 2.0 / ICEfaces (приложение уже работает нормально). К сожалению, пока, похоже, нет подробной документации о комментариях, поэтому я надеюсь, что кто-нибудь сможет дать мне несколько указаний, как создавать и извлекать комментарии, которые должны быть связаны с одним целым числом.
Чтобы было более понятно… Я хотел бы (повторно) использовать функциональность портлета «Комментарии к странице» в моем пользовательском портлете, но только базовую службу, а не часть пользовательского интерфейса.
Я уже выяснил, что MBMessageServiceUtil.addDiscussionMessage(…) используется этим портлетом через класс EditDiscussionAction. К сожалению, я понятия не имею, что я должен предоставить в качестве значений параметров. Кто-нибудь может пролить некоторый свет на это? Javadoc какой-то … короткий 😉
public static MBMessage addDiscussionMessage(long groupId,
String className,
long classPK,
String permissionClassName,
long permissionClassPK,
long threadId,
long parentMessageId,
String subject,
String body,
ServiceContext serviceContext)
Приветствую,
tamm0r
Ответ №1:
Это будет долго, но вот примерный ход.
- По вашему мнению, вы собираетесь использовать объект MBMessageDisplay.
MBMessageDisplay messageDisplay =
MBMessageLocalServiceUtil.getDiscussionMessageDisplay(
themeDisplay.getUserId(), themeDisplay.getScopeGroupId(),
MyModelEntry.class.getName(), myModelEntry.getTasksEntryId(),
WorkflowConstants.STATUS_APPROVED);
-
MBMessageDisplay будет содержать важные данные, такие как ThreadId и parentMessageId, поэтому обязательно опубликуйте и эти данные.
-
В «Контроллере», где вы выполняете вызов, упомянутый в вашем сообщении, извлеките ServiceContext из запроса следующим образом:
ServiceContext serviceContext = ServiceContextFactory.getInstance( MyModelEntry.class.getName(), actionRequest);
-
Итак, теперь у вас есть все необходимые параметры.
long groupId - Group (Organization or Community usually) you're writing the comment in. String className - MyModelEntry.class.getName() long classPK - MyModelEntry's Primary Key or ID String permissionClassName - Model where the permission checker should look, typically the same as className long permissionClassPK - Its Primary Key or Id long threadId - From MBMessageDisplay. long parentMessageId - From MBMessageDisplay. String subject - the subject String body - the body ServiceContext serviceContext - from Request in step 3.
Надеюсь, это поможет!