Как использовать Liferay «рамки комментариев»? - PullRequest
1 голос
/ 10 мая 2011

Я пытаюсь использовать встроенную функцию комментариев в приложении с портлетами 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 Ответ

5 голосов
/ 08 июня 2011

Это будет долго, но вот игра за игрой.

  1. По вашему мнению, вы собираетесь захватить объект MBMessageDisplay.
    MBMessageDisplay messageDisplay =
       MBMessageLocalServiceUtil.getDiscussionMessageDisplay(
          themeDisplay.getUserId(), themeDisplay.getScopeGroupId(),
          MyModelEntry.class.getName(), myModelEntry.getTasksEntryId(),
          WorkflowConstants.STATUS_APPROVED);
  1. MBMessageDisplay будет содержать важные данные, такие как threadId и parentMessageId, поэтому не забудьте также опубликовать эти данные.

  2. В «Контроллере», где вы делаете вызов, упомянутый в вашем сообщении, получите ServiceContext из запроса следующим образом:

    ServiceContext serviceContext = ServiceContextFactory.getInstance(
       MyModelEntry.class.getName(), actionRequest);
    
  3. Итак, теперь у вас есть все необходимые параметры.

    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.
    

Надеюсь, это поможет!

...