FANDOM


DiscussionsRailModule adds a rail module for Discussions to the rail, listing a feed of discussions posts for the wiki. The script offers the same configuration options as the activity feed tag.

If you import the script, you can use the feed design on any article by placing the <discussions/> tag in the same wrapper:

<div class="discussions-rail-theme">
<discussions/>
</div>

Installation

See also: Help:Including additional CSS and JS, Help:Advanced CSS and JS
  • For site-wide use, an administrator can add the line below to the wiki's MediaWiki:ImportJS page. Note that JavaScript must be enabled on the wiki.
dev:DiscussionsRailModule/code.js
  • For personal use, add the code snippet below to your global.js page (for use on all wikis) or your common.js page on your wiki (for use on a single wiki). Note that personal JS must be enabled for your account.
importArticles({
    type: 'script',
    articles: [
        'u:dev:DiscussionsRailModule/code.js',
    ]
});
importArticles — Best Practices for installing JavaScript on FANDOM
The importArticles statement is designed to combine multiple HTTP requests into a single data transfer, allowing multiple scripts to load and execute faster. If you've been installing several different scripts, your JavaScript file has probably accumulated unnecessary import statements. Click "Expand" to learn how to efficiently batch import scripts to speed up performance and make your code look cleaner. One other approach is by using the MediaWiki:ImportJS.
If your JavaScript file has several lines of code that say importScript, importScriptPage, or importArticles, you may be able to combine them! By batch importing a collection of scripts with a single import, your JavaScript code will load faster and look cleaner. Consider the example below. On the left is an example of what your JavaScript file might currently look like. On the right is how you could improve that code.
Multiple imports — messy and slow One import — clean and efficient
importScriptPage('AjaxRC/code.js','dev');
 
importScript('MediaWiki:localScript.js');
 
importArticle({
  type: 'script',
  article: 'u:dev:FloatingToc/code.js'
});
 
importScriptPage('page1.js', 'wikiname');
 
importScriptPage('page2.js', 'wikiname');
importArticles({
    type: 'script',
    articles: [
        'u:dev:AjaxRC/code.js',
        'MediaWiki:localScript.js',
        'u:dev:FloatingToc/code.js',
        'u:wikiname:page1.js',
        'u:wikiname:page2.js'
    ]
});
Note: In this example, pay close attention to the placement of commas and other punctuation. For people who aren't familiar with programming (and even those who are!), a common mistake when writing code is to accidentally delete, forget, or misplace critical symbols like commas or quotation marks. This can cause a syntax error that breaks the code. Carefully follow the convention shown here when using importArticles.
But there's much more to importArticles than just this! For more examples and advanced usage, see the help page at Help:Including additional JavaScript and CSS.

Configuration

Embedding-only use

The script can be configured to deactivate the rail module and style the embedded module in articles, by using the window.discussionsModuleEmbed object in your wiki's MediaWiki:Wikia.js:

window.discussionsModuleEmbed = true;

Positioning

The Discussions rail module is positioned below the Wiki Activity or Forum Activity modules when they're available, or appended to the bottom of the rail.

It is possible to adjust the module to any desired position by using the discussionsModule.added hook in your wiki's MediaWiki:Wikia.js.

For example, this code will position the module above the Insights module.

mw.hook('discussionsModule.added').add(function($module) {
        // Module addition
        if ($('.insights-module').exists()) {
            $module.insertBefore('.insights-module');
        } else {
            $module.appendTo('#WikiaRail');
        }
    });

Post-processing

The module's contents can be changed after loading using the discussionsModule.loaded hook.

Styling

The header text is adjustable with the following CSS (replacing <TITLE> with your text):

.discussions-rail-theme .embeddable-discussions-module .embeddable-discussions-heading:after {
	content: '<TITLE>';
}

Content filtering

The feed content for the rail module is configured through the optional window.discussionsModuleConfig object, placed in MediaWiki:Wikia.js:

window.discussionsModuleConfig = {
	'columns' : '1 or 2',
	'size' : 'number 3-6',
	'mostrecent' : 'true/false',
	'catid' : [
		'first category id',
		'second category id',
		'etc'
	]
}
Option Description Default
columns

Number of columns for the post list.
Maximum of 2 columns.

1
size

Number of posts in the post list.
Post minimum is 3, maximum is 6.

4
mostrecent

Controls feed sorting by latest or trending posts.
Accepts true or false.

false
catid Specific categories to return posts from. None.

The help page for the Discussions activity feed has further guidance on how the configuration options work.

To-do

  • Embed-only option that deactivates the rail module.
  • Rewrite for better performance and code readability.
  • Translation for default header text "Discussions Activity".
  • Color adjustment for default Discussions avatar.
  • Generating the rail module HTML with JS?

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.