There are some extension points in eXo Knowledge, so that you can control how these components work by implementing or extending default implementations, then reconfigure these new components in the configuration.xml file.

To use ForumEventLifeCycle class, do the following steps:

1. Create a new class that extends ForumEventListener.

For example: class ABCActivityPublisher

2. Override fuctions in this created class. In each function, you can write anythings to meet your needs.

3. Add a new configuration to the configuration.xml file with the type that is the class created in the Step 1.

To use the AnswerEventLifeCycle class, do the following steps:

1. Create a new class that extends AnswerEventListener.

For example: ABCActivityPublisher

2. Override fuctions in this created class. In each function, you can write anything to meet your needs.

3. Add a new configuration to the configuration.xml file with the type that is the class created in the Step 1.

Applications of eXo Knowledge, such as Forum, Answers and Polls, use REST services to communicate with the server. This section describes REST Services of internal APIs.

The Forum application of eXo Knowledge uses the ForumWebservice to provide all APIs to work with Forum, such as filtering IPs, viewing RSS, and more.

Service name Service URL Description Location
ForumWebservice $portalName/ $restcontextname/ ks/forum/ Call extended services of the Forum application.

* Maven groupId: org.exoplatform.ks

* ArtifactId: exo.ks.web.webservice

Use the following APIs to build all the functions of the Forum application:

Name Description Service URL endpoint Parameters Expected values
getMessage Get all new posts with the number based on the maxcount value. $portalName/ $restcontextname/ ks/forum/getmessage/ String maxcount integer
filterIps Ban IPs with no access to Forum. $portalName/ $restcontextname/ ks/forum/filter/ String str String in the IP format.
filterIpBanForum Ban IPs with no access to a specific Forum. $portalName/ $restcontextname/ ks/forum/ filterIpBanforum/

String forumId

String str

string in the IP format, string in the Forum format
filterTagNameForum Do the quick search for tags that returns the list of tags. $portalName/ $restcontextname/ ks/forum/ filterTagNameForum/

String str

String userAndTopicId

Tag name

id of user and topic

viewrss Process the request by users when they want to view RSS. $portalName/ $restcontextname/ ks/forum/rss/ String resourceid

category id

forum id

topic id

userrss Process the request by users when they want to view their own collected RSS. $portalName /$restcontextname/ ks/forum/rss/user/ String resourceid username id

The Answers application of eXo Knowledge uses the FAQWebservice to view RSS.

Service name Service URL Description Location
FAQWebservice $portalName/ $restcontextname/ ks/faq Call the extended services of the Answers application.

* Maven groupId: org.exoplatform.ks

* ArtifactId: exo.ks.eXoApplication. faq.service

Use the following APIs to build all the functions of Answers application:

Name Description Service URL endpoint Parameters Expected values
viewrss View RSS $portalName/ $restcontextname/ ks/faq/rss/ String resourceid category id, question id

The Polls application of eXo Knowledge uses the PollWebservice to create and interact with the Polls gadget.

Service name Service URL Description Location
PollWebservice $portalName/ $restcontextname/ private/ks/poll Call extended services of the Polls application.

* Maven groupId: org.exoplatform.ks

* ArtifactId: exo.ks.eXoApplication. poll.service

Use the following APIs to build all functions of the Answers application:

Name Description Service URL endpoint Parameters Expected values
viewPoll Return data of the Polls system $portalName/ $restcontextname/ private/ks/poll/ viewpoll/ String pollId id of poll
votePoll Update data for the Polls with the returned id $portalName/ $restcontextname/ private/ks/poll /votepoll/

String pollId

String indexVote

id of poll

integer

Configuration plug-in is used to automatically set up a default template for the FAQ portlet. When the FAQ service starts, it will get values which are returned from the TemplatePlugin component to initialize the template for the FAQ portlet.

The template configuration plug-in is configured in the templates-configuration.xml file.

In details:

At runtime of the FAQ Service, FAQService component is called, then templates-configuration.xml file is executed. The component-plugin named addTemplatePlugin will be referred to org.exoplatform.faq.service.TemplatePlugin- to execute some objects and create default data for the Forum application.

The properties of template configuration plug-in are defined in the init-params tag as follows:

Name Description Value
viewerTemplate Path of file template. war:/ks-extension/ks/faq/templates/ FAQViewerPortlet.gtmpl
Function name Param Return Description
getCategoryInfo Empty CategoryInfo object Get the object CategoryInfo
arrangeList (List< String > list): List of path A new list is arranged Arrange a list of path.
render (String): The content of answers or comments A new string is converted by function render Render the content of answers or comments.
Param Type Description
id String The jcr node name of the category node.
path String The jcr node path of the category node.
name String The name of the category.
pathName List<String> The path to the category includes a list of category names.
questionInfos List<QuestionInfo> The list of QuestionInfo object.
subCateInfos List<SubCategoryInfo> The list of SubCategoryInfo object.
Param Type Description
id String The jcr node name of the question node.
question String The content of the question.
details String Details of the question.
answers List<String> The list of answers for the question.

The params of this class are the same as those of the CategoryInfo class. See here for more information.