# 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).

# facebook

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, and comment. These fields can be parametrized with:
    • required: Specify if the input is required to send the form. By default is false.
    • name: Modify the default input.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:

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"
    } ]
  }