Extension:DPLforum

From MediaWiki.org

Jump to: navigation, search

           

Manual on MediaWiki Extensions
List of MediaWiki Extensions
Crystal Clear action run.png
DPLforum

Release status: stable

Implementation  Tag, Parser function
Description DynamicPageList-based forum software
Author(s)  Ross McClure
Last Version  3.2 (2007-08-19)
MediaWiki  1.7 and above
License GPL v2 or later
Download Download snapshot

Subversion [Help]
Browse source code

Example  undefined.net

check usage (experimental)

DPLforum is a heavily-adapted derivation of DynamicPageList 1.12, geared toward displaying 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 CreateBox.

Contents

[edit] Parameters

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

<table><forum>
 category=CategoryName
 parameter1=value
 parameter2=value
 </forum></table>

[edit] 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. Only pages that belong to none of 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 {count} 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.

[edit] Structural parameters

  • mode: Specifies the mode of output.
    • mode=table: Default. Displays each entry in a <tr> block. <table> tags are not included, so that each table may be given custom properties.
    • mode=list: Displays each entry in a <li> block. As above, tags such as <ol> or <ul> are omitted.
    • mode=none: Only separates entries with a <br /> tag.
    • mode=count: Returns only the number of entries that match the given parameters. (New in version 3.2)
  • compact: Allows for individual <td> tags to be combined together where appropriate.
    • compact=author: Combines the Title and Author cells.
    • compact=editor: Combines the Edit and Editor 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.

[edit] 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 created.
  • 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 {number} days ago with class='forum_new'; 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 DPLForum::requireCache is set to true.

[edit] Multipage support with #forumlink

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:

{{#forumlink:count|page|text}}
  • 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.

[edit] 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:

{{#forumlink:30|+1<10|Next page}}

A link to the previous page (assuming count=50):

{{#forumlink:50|-1>0|Previous page}}

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

{{#forumlink:50|+1<{{#expr: ceil ({{PAGESINCATEGORY:{{PAGENAME}}|R}}/50) +1 }}|Next page}}

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

[edit] MediaWiki messages

DPLforum specifies five messages in the MediaWiki: namespace.

  • MediaWiki:Forum_by - The word "by".
  • MediaWiki:Forum_never - The word "Never".
  • MediaWiki:Forum_edited - "Last edited". Separates the title and edit when not in table mode.
  • MediaWiki:Forum_toofew - Error message displayed when no categories are given.
  • MediaWiki:Forum_toomany - Error message displayed when too many categories are given. This threshold is controlled by DPLForum::maxCategories.

[edit] Code

DPLforum 3.2 has been tested on MediaWiki 1.9, and should run on versions 1.7 and above.

For the archive see /code.

For legacy versions of DPLforum, see /old.