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:

Step 1: Create a new class that extends ForumEventListener. Example: class ABCActivityPublisher

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

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

To use AnswerEventLifeCycle class, do the following steps:

Step 1: Create a new class that extends AnswerEventListener. Example: ABCActivityPublisher

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

Step 3: Add a new configuration in 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/ To 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 To get all new posts with the number based on the maxcount value. $portalName/ $restcontextname/ ks/forum/getmessage/ String maxcount integer
filterIps To ban IPs with no access to Forum. $portalName/ $restcontextname/ ks/forum/filter/ String str String in the IP format.
filterIpBanForum To 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 To do 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 To process the request by the user when he/she wants to view RSS. $portalName/ $restcontextname/ ks/forum/rss/ String resourceid

category id

forum id

topic id

userrss To process the request by users when they wants 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 To call 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 To 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 To 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 To return data of the Polls system $portalName/ $restcontextname/ private/ks/poll/ viewpoll/ String pollId id of poll
votePoll To 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 the run time 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 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 The question details
answers List<String> The list of the answers for the question

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