# Commenting systems catalog
TODO: Legacy implementations
Legacy commenting systems that exist in MarfeelXP but not in schemas:
- BbtComments
- Livefyre
It is recommended for all providers to have a name
property. This property should be a string containing only alphanumerical characters, it is used by Marfeel's SDK at runtime in order to load the provider's implementation logic.
# bublaa
Attribute | Type | description |
---|---|---|
uri* | string | . |
bublaaId* | string | data-forum attribute. |
WARNING
There is no current tenant at Marfeel using this provider.
The provider's website is not working (403).
# disqus
The disqus extension requires the shortName
attribute.
The shortname is a unique identifier assigned to a Disqus site. It can be chosen by the site owner.
Example:
{
"disqus" : [{
"name" : "disqus",
"shortName" : "awesomeBlogName"
}]
}
Go to Disqus helpdesk (opens new window).
The facebook extension requires a uri
attribute.
It is the URI of the facebook page associated with the website.
Example:
{
"facebook" : [ {
"name" : "facebook",
"uri" : "https://www.facebook.com/awesomeBlog"
} ]
}
Go to Facebook comments docs (opens new window).
# spotIM
The spotIM extension has many parameters, but only spotID
and recirculation
are mandatory.
Attribute | Type | description |
---|---|---|
spotId* | string | Unique identifier for each website |
recirculation* | string | "true" to enable display "Popular in the community" UGC (opens new window) |
community_promo | string | "true" to enable the community promo widget (opens new window). |
related_position | string | "outside" if the related widgets should be out of the comments collapsable box. |
launcher | string | Custom js launcher. Defaults to launcher.spot.im/spot/${SPOT_ID} |
Example:
{
"spotIM" : [ {
"name" : "spotIM",
"spotId" : "1234567",
"recirculation" : "true",
"community_promo": "false",
"related_position": "outside",
"launcher": "https://launcher.spot.im/spot/1234565"
} ]
}
Go to spotIM integration docs (opens new window).
WARNING
The community promo widget is not used by any Marfeel tenant at the moment.
# vuukle
The vuukle is automatically configured.
Example:
{
"vuukle" : [ { "name" : "vuukle" } ]
}
Go to Vuukle helpdesk (opens new window).
# wordpress
The wordpress extension has 2 parameters:
postCommentUrl
: WordPress endpoint to access comments. E.g.<https://domain.com/wp-comments-post.php>
formSettings
: Allows you to customize the default<input>
tags of the "post comments" form. Allowed keys:author
,email
,website
, andcomment
. These fields can be parametrized with:required
: Specify if the input is required to send the form. By default is false.name
: Modify the defaultinput.name
of the field. Use when the tenant has configured a custom form.
Example
{
"wordpress" : [ {
"name" : "wordpress",
"postCommentUrl" : "https://awesomeblog.com/wp-comments-post.php",
"formSettings": {
"author": { "required": true },
"comment": { "name": "commentBox" },
"website": { "required": true, "name": "authorWebsite" }
}
} ]
}
Custom Wordpress Comments Form
When the tenant has more content and/or input fields that need to be included in the <form\>
, there are two extension points that can be used:
wordpressForm__topExtras.jsp
(opens new window) allows adding content at the beggining of the form.wordpressForm__bottomExtras.jsp
(opens new window) allows adding content at the end of the form.
Implementation example:
This is how tenant.com/themes/default/commentingSystems/wordpress/mrf-wordpressForm__bottom.jsp
would look like:
<div class="mrf-wordpressForm__bottom">
<div class="mrf-privacy__text">
Custom text content
<a href="https://example.es/cookies/" target="_blank">Cookie policy</a>
</div>
<div class="mrf-privacy__checkbox">
<label for="rgpd">
<input name="rgpd" type="checkbox" value="yes" required />
<div class="mrf-privacy__checkbox-text">Consent</div>
</label>
</div>
</div>
Examples of real case usages:
Go to comments in Wordpress support (opens new window).
# custom
Custom providers must be declared with a name and a file name, following the extension creation recommendations. Example:
{
"custom" : [ {
"name" : "customProvider",
"file" : "customProvider"
} ]
}