Extension:DPLforum

The DPLforum extension is adapted from 2>Special:MyLanguage/Extension:DynamicPageList (Wikimedia)|DynamicPageList and displays forum-style layouts.

New features in version 3.0 include author listings, compact display, and full multipage support.

Version 3.1 introduces prefix matching, for better interoperability with .

DPLforum also introduces a new namespace, Forum (and its talkspace); by default, the numeric index for this namespace is 110.

Parameters
DPLforum expects parameters in the form of a linebreak-separated list of assignments, as shown here.

Content parameters

 * category={page} - Adds a category to the set of categories. Only pages that belong to each of these categories will be displayed.
 * notcategory={page} - Adds a category to the set of exclusions. Pages that are Not in these categories will be displayed.
 * namespace={text} - Specifies the namespace in which to search. Only one namespace may be specified.
 * prefix={text} - Specifies a prefix to match in the title. Only pages whose titles begin with the specified prefix will be displayed. ( New in version 3.1 )
 * start={number} - Excludes the first {number} results from the listing.
 * count={number} - Lists no more than {number}</> results. Currently limited up to 50 results, but the results aren't limited to 50 if this parameter is not specified.
 * title={page} - If specified, this object becomes a forum-style link to the given page. Other parameters still apply.

Structural parameters

 * mode - Specifies the mode of output.
 * mode=table - Default. Displays each entry in a <tvar|1></> block.  <tvar|1></> tags are not included, so that each table may be given custom properties.
 * mode=list - Displays each entry in a <tvar|1></> block. As above, tags such as <tvar|1></> or <tvar|2></> are omitted.
 * mode=none - Only separates entries with a <tvar|1><br ></br></> tag.
 * mode=count - Returns only the number of entries that match the given parameters. ( New in version 3.2 )
 * compact - Allows for individual <tvar|1></> tags to be combined together where appropriate.
 * compact=author - Combines the <tvar|1> </> and <tvar|2> </> cells.
 * compact=editor - Combines the <tvar|1> </> and <tvar|2> </> cells.
 * compact=all - Combines both.
 * addcreationdate=true - Displays each entry's date of creation.
 * addauthor=true - Displays the original author of each entry.
 * addlasteditor=true - Displays the last editor of each entry.
 * addlastedit=false - Hides each entry's last edit time; shown by default.

Output parameters

 * ordermethod - Specifies the order in which entries are listed.
 * ordermethod=lastedit - Default. Sorts entries by the last time they were edited.
 * ordermethod=created - Sorts entries by the time of their creation.
 * ordermethod=pageid - Sorts entries by their ID numbers; usually equivalent to <tvar|1> </>.
 * historylink - Provides a link to each entry's history.
 * historylink=embed - Transforms the Edit field into a history link.
 * historylink=append - Appends the history link onto the Edit field.
 * omit={text} - Omits the given text from the beginning of each entry's title.
 * order=ascending - Reverses the sort order.
 * newdays={number} - Marks all links to entries modified less than <tvar|1> </> days ago with <tvar|2> </>; defaults to 7.
 * timestamp=false - Removes timestamp values from the page links. Timestamps ensure that newly-edited entries don't appear as "visited" links.
 * cache=true - Saves the results of this object to the parser cache. This is false by default unless <tvar|1> </> is set to true.

Multipage support with <tvar|1> </>
The #forumlink parser function creates links to the present page which offset the forum listings by a certain amount.

This allows each forum to contain any number of additional "pages".

The syntax is as follows:


 * count - represents the number of topics per page.
 * page - specifies the page number, either as an absolute value or a relative offset.
 * text - sets the link text. If this is left blank, the page number is used instead.

Relative offsets and page conditions
When specifying the page, if the number is preceded by + or -, then it is assumed to be a relative offset from the present position.

Relative links which would link to pages less than 1 are not displayed.

You may also optionally specify a condition after the page number, which the page must meet in order to be displayed.

For example, to specify a link to the next page when that page is less than 10, use:

A link to the previous page (assuming <tt>count=50</tt>):

In conjunction with ParserFunctions, a link to the next page, that won't be displayed when you reach the last page, would be (assuming <tt>count=50</tt>, only one category specified in <tt>category</tt> and <tt>notcategory</tt> is not used):

Conditions may use the <, <=, >, and >= operators.

MediaWiki messages
DPLforum specifies six messages in the MediaWiki: namespace.


 * MediaWiki:Dplforum-by - The word "by", followed by $1 (which is the name of a user)
 * MediaWiki:Dplforum-desc - Show on Special:Version as the extension's description
 * MediaWiki:Dplforum-never - The word "Never".
 * MediaWiki:Dplforum-edited - "Last edited". Separates the title and edit when not in table mode.
 * MediaWiki:Dplforum-toofew - Error message displayed when no categories are given.
 * MediaWiki:Dplforum-toomany - Error message displayed when too many categories are given. This threshold is controlled by DPLForum::maxCategories.

Customization
Templates can be used to give a traditional forum appearance with user posts.


 * Example – User:Inquisitor Ehrenstein/LQTavatar

Example of usage
I too had to go the long route to figure out how to implement this extension (visiting the various example sites, viewing source, sniffing out the templates, then copying them and reconfiguring as needed). The lack of examples will perhaps put newer MediaWiki users off of using it which is a shame because this is a great extension! I tried to add this examples section to the Extension page but I don't have enough edits to be considered an auto-confirmed user to edit the protected page. Here it is, I hope someone finds this helpful! Perhaps the extension maker will consider moving this to the extension page. ;) ;) ;)

Create Templates
To wrap your head around how this extension works, consider the different page areas that a forum usually has (header navigation/bread crumbs, forum index, page body, notices, search input, new topic buttons etc.). To create a standard forum appearance you need to create some templates to match these different parts:
 * Template:Forumheader
 * Template:Forumpage
 * Template:Forumheader/preload
 * Template:Forumnotice (optional: text you wish to appear on all the index and subtopic pages to warn users about conduct/rules etc.)

Template:Forumheader
The forum header template can provide breadcrumb navigation for wayfinding and to help users easily return the forum index. In the Forumheader template, place something like the following: Forums:

Template:Forumnotice
The Forumnotice template can provide a notice at the top of the Index and forum pages to remind users of forum rules, reminders, how-to's etc. In the Forumnotice template, place something like the following: Please note (your text here).


 * Do not post ... (your text here)
 * Individual topic threads can be put on your watchlist.
 * Enable email notifications in your preferences.
 * View [ recent changes for all topics in all forums]. Choose [ 14], [ 30], or [ 60] days for older changes.
 * You may have to [ purge] this page to see changes below.

Template:Forumsearch
This template can be used with the InputBox extension to create a search form on the Forumpage template (to display on all forum pages). In the Forumsearch template, place something like the following:

Template:Forumpage
The Forumpage template can apply the same layout to all forum subtopic pages, including Forumheader, Forumnotice and the input forms used to easily search and create new topics. In the Forumheader template, place something like the following:

Template:Forumheader/preload
The Forumheader/preload template can be used to create text that appears at the top of the edit mode page of a newly created topic to help new/novice MediaWiki users. In the Forumheader/preload template, place something like the following:

Create Pages
After the templates are created you may now put them to use in pages in the Forum namespace. Create the following pages (Index should be named the same as below but following pages may be adapted).
 * Forum:Index
 * Forum:General Discussion
 * Any other forum sections you would like.

Forum:Index Page
This page serves as the forum landing page and index. Create the page and place something like the following:

Welcome to the (your site) forums!

Forum:General Discussion (Sub-topic) Page
This page serves as the landing page for the General discussion section and lists all threads under this section. Create the page and place something like the following:

Note: Include this type of code on any page created in the forum namespace to style it as a subtopic page.

Adding Styles
The forum features can then be styled by adding styles in Common.css (and adjusting as needed to suit your theme). The corresponding classes specified above are targeted and styled the below example: /* DPL Forum */ /* Forumheader style */ .forum-header { border: 1px solid #aaa; background-color: #cedff2; margin: 0 0 1em; padding: 0 0.5em; } /* Forum table outside border */ table.forum-table { border: 1px solid lightgrey; } /* Forum table cell padding and borders for all table body cells */ table.forum-table > tbody > tr > td { border-top: 1px solid lightgrey; padding: 8px; } /* Forum table background color (show on odd rows) */ table.forum-table > tbody > tr { background-color:#fff; } /* Forum table background color (shows on even rows) */ table.forum-table > tbody > tr:nth-child(even) { background-color:#f5faff; } /* Forum table header row background, style and padding */ table.forum-table > tbody > tr > th { background-color:#cedff2; font-weight:bold; padding: 8px; }

/*-- InputBox --*/ .inputbox-sidebar { width: 300px; border: 1px solid lightgrey; clear: right; float: right; margin: 3px; padding:10px; margin-left: 2em; }

Wikis using this extension
See [<tvar|url>https://wikiapiary.com/wiki/Extension:DPLforum</> Extension:DPLforum - WikiApiary].

It lists wikis using this extension.

The alphabetical links go directly to the main forum index.

See Special:Version for each site to see what version of MediaWiki and DPLforum is being used.

Special:SpecialPages is usually linked from the sidebar of most wikis (in the toolbox).

You can go to Special:SpecialPages to find the link to "Version" which is Special:Version.

Some links to forum template categories are also listed below.


 * All The Tropes. Special:Version.
 * AppPedia (archived). Special:Version.
 * DDO wiki. Special:Version.
 * Memory Alpha, the Star Trek Wiki. Special:Version.
 * ShoutWiki. Special:Version. Forum templates.
 * The Sims Wiki. Special:Version.
 * Tolkien Gateway. Special:Version.
 * Uncyclopedia. Special:Version.
 * Wikia Community Central (archived). Special:Version.
 * Wookieepedia, the Star Wars Wiki. Special:Version.
 * Yugipedia. Special:Version.