Difference between revisions of "Extension:LiquidThreads"

From eLinux.org
Jump to: navigation, search
(Removed links to local video file and set to commons.wikimedia.org location.)
 
Line 1: Line 1:
 +
{{notice|The current version of this extension (2.0) is '''no longer actively maintained'''. WMF provides no support to Wikimedia wikis using it and requests of install on new Wikimedia projects are [[bugzilla:19699|on hold]].<br />Development of [[LiquidThreads 3.0|Version 3.0]] is '''on hold''' at the moment.}}
 +
{{shortcut|LQT}}
 +
{{update}}
 +
{{expand}}
 
{{Extension
 
{{Extension
 
|name        = LiquidThreads
 
|name        = LiquidThreads
|status      = beta
+
|status      = experimental
 
|type1      = Page action
 
|type1      = Page action
 
|type2      = Special
 
|type2      = Special
 +
|type3      = api
 
|author      = David McCabe, Andrew Garrett
 
|author      = David McCabe, Andrew Garrett
 
|username    =
 
|username    =
|image      =
+
|image      = LiquidThreads sample screenshot.jpg <!-- image needs updating -->
|version    = 2.0
+
|version    = 2.2-alpha [https://git.wikimedia.org/commitdiff/mediawiki%2Fextensions%2FLiquidThreads/99a9c23dd885fa5786158cabd9496bdcaa92c222]
|update      =  
+
|update      = 2014-03-28
|mediawiki  = 1.16
+
|mediawiki  = 1.23+
 +
|php= 5.3.0+
 +
|needs-updatephp = yes
 
|download    = {{WikimediaDownload|LiquidThreads}}
 
|download    = {{WikimediaDownload|LiquidThreads}}
|readme      = [http://svn.wikimedia.org/viewvc/mediawiki/trunk/extensions/LiquidThreads/README?view=markup README]
+
|readme      = {{git file|project=mediawiki/extensions/LiquidThreads|branch=340289fe14a8940f27bb6b55efc801bd847230fe|file=README|text=README}}
 
|changelog  =
 
|changelog  =
 
|license    = GPL v2
 
|license    = GPL v2
|description = LiquidThreads is a new structured discussion system for MediaWiki, implemented as an extension.
+
|description = LiquidThreads extension implements a structured discussion system for MediaWiki.  
 
|parameters  = $egLqtNamespaceNumbers
 
|parameters  = $egLqtNamespaceNumbers
 
|rights      =  
 
|rights      =  
|example    = [http://liquidthreads.labs.wikimedia.org/wiki/Main_Page LiquidThreads beta testing at labs.mediawiki.org]
+
|example    =  
 
|hook1      = BeforeWatchlist
 
|hook1      = BeforeWatchlist
 
|hook2      = ChangesListInsertArticleLink
 
|hook2      = ChangesListInsertArticleLink
Line 26: Line 33:
 
|hook8      = SkinTemplateOutputPageBeforeExec
 
|hook8      = SkinTemplateOutputPageBeforeExec
 
|hook9      = SpecialMovepageAfterMove
 
|hook9      = SpecialMovepageAfterMove
 +
|hook10      = PageContentLanguage
 +
|bugzilla    = LiquidThreads
 
}}
 
}}
  
'''Liquid Threads''' is an extension that implements a new discussion page system. The original code was developed under sponsorship from the [[m:Summer of Code 2006|Google Summer of Code 2006]], [http://col.org the Commonwealth of Learning], and [http://wikia.com Wikia]. It is close to completion, and being worked on by [[User:Werdna|Andrew Garrett]] under contract with the Wikimedia Foundation. It may eventually be deployed on some or all Wikimedia sites.
+
'''LiquidThreads''' (LQT) is an extension for MediaWiki that implements a threaded discussion page system.
  
== Demonstrations at Wikimania ==
+
== History ==
{|
 
[http://commons.wikimedia.org/wiki/File:200908281403-Brion_Vibber-Codeathon_Round_Up.ogg Brion_Vibber-Codeathon_Round_Up.ogg]
 
|
 
[http://commons.wikimedia.org/wiki/File:200908271634-Angela_B_Starling-BOF_MediaWiki_Usability_discussion.ogg Angela_B_Starling-BOF_MediaWiki_Usability_discussion.ogg]
 
|}
 
  
==Installation==
+
The original code was developed by David McCabe under sponsorship from the [[Summer of Code 2006|Google Summer of Code 2006]], [http://col.org the Commonwealth of Learning], and [http://wikia.com Wikia]. However, David McCabe is no longer involved with this project.
#[[Download from SVN|Download the files from SVN]] and place them under <tt>[[Manual:$IP|$IP]]/extensions/LiquidThreads</tt>
+
 
#Add the required tables to the database: <tt>php maintenance/sql.php extensions/LiquidThreads/lqt.sql</tt>
+
The original LiquidThreads code was substantially improved and augmented by [[User:Werdna|Andrew Garrett]] at the Wikimedia Foundation since May 2009. The latest stable release of the LiquidThreads extension is LQT 2.0, described on this page. LQT 2.0 is the version currently being used on several Wikimedia wikis, and was used in the strategic planning process.
#Add <source lang="php" enclose="div">require_once("$IP/extensions/LiquidThreads/LiquidThreads.php");</source> into your wiki's [[Manual:LocalSettings.php|LocalSettings.php]]
+
 
#Installation can be verified through [[Special:Version]]
+
In January 2011, work on [[LiquidThreads 3.0]] was begun at the Wikimedia Foundation. LQT 3.0 was being developed, with Andrew Garrett as the lead developer, but is now suspended. Development of LQT3 can be tracked [https://git.wikimedia.org/log/mediawiki%2Fextensions%2FLiquidThreads.git/refs%2Fheads%2Flqt-updates in this branch]; the last commits to LQT3 (lqt-updates) branch were in September 2011. Development by the Foundation has been discontinued.
 +
 
 +
== User documentation ==
 +
To activate LiquidThreads on a specific page on a wiki where LiquidThreads is ''opt-in'', add
 +
<tt><nowiki>{{#useliquidthreads:1}}</nowiki></tt>
 +
to the page's source code. To deactivate LiquidThreads on a specific page on a wiki where LiquidThreads is ''opt-out'' add
 +
<tt><nowiki>{{#useliquidthreads:0}}</nowiki></tt>  
 +
to the page's source code.
 +
 
 +
* '''[[/FAQ|FAQ]]''' and
 +
* '''[[Help:Extension:LiquidThreads|Extension help]]''' page.
 +
Comprehensive user documentation will be developed when LiquidThreads has a finalised (or remotely stable) interface.
  
 
==Rationale==
 
==Rationale==
Wiki discussion pages have some advantages over web and Usenet forums. They allow use of the entire wiki syntax - from images to wiki links to transclusion. It is possible to refactor entire discussion pages.
+
Wiki discussion pages have some advantages over web and Usenet forums:
 
+
*They allow use of the entire wiki syntax, from images to links to [[transclusion]]s.  
Web forums offer a number of advantages over the MediaWiki talk page model:
+
*It is possible to refactor entire discussion pages.
 +
But web forums offer many more advantages over the MediaWiki talk page model:
 
*Threads can be displayed in different views: flat, nested, sorted by date, subject, etc.
 
*Threads can be displayed in different views: flat, nested, sorted by date, subject, etc.
 
*The user only needs to click a "Reply" button or link in order to respond to a comment. Manual indentation is not required. Quotations from the source comment can be inserted automatically.
 
*The user only needs to click a "Reply" button or link in order to respond to a comment. Manual indentation is not required. Quotations from the source comment can be inserted automatically.
*Comments are automatically signed and dated. Avatars are possible.
+
*Comments are automatically signed and dated.  
 +
*Avatars are [[/Avatar storage|possible]] (but not yet created).
 
*The user can watch individual threads or be notified about responses in threads.
 
*The user can watch individual threads or be notified about responses in threads.
 
*Comments and threads can be displayed individually, without the surrounding page.
 
*Comments and threads can be displayed individually, without the surrounding page.
Line 55: Line 72:
 
*Search for author, subject, date, etc. is possible
 
*Search for author, subject, date, etc. is possible
 
*Individual threads can have categories.
 
*Individual threads can have categories.
*It is relatively easy to manage related discussions in a subject-specific forum, whereas MediaWiki talk pages always follow the "one discussion page per content page" model.
+
*It is relatively easy to manage related discussions in a subject-specific forum, whereas MediaWiki talk pages always follow the "one discussion page per subject page" model.
 +
LiquidThreads aims to unite the advantages of both forum types, and to add some unique discussion features to boot.
 +
 
 +
==Installation==
  
LiquidThreads aims to unite the advantages of both forum types, and to add some unique discussion features to boot.
+
'''Prerequisites:''' LiquidThreads currently requires the [[Extension:WikiEditor|WikiEditor]] extension to be already installed. See [[bugzilla:38654|bug 38654]].
 +
To be able to properly search threads, [[Extension:Lucene-search]] must also be installed from Wikimedia's operations/debs/lucene-search-2.git repository.
  
==Addressing==
+
{{ExtensionInstall
Each thread has a unique and permanent wiki title, so they can be linked to: e.g., <nowiki>[[Thread:Talk:Main_Page/Thread 1]]</nowiki>.
+
|db-update=1
 +
}}
  
== API ==
+
===Installing without command prompt access===
 +
Some individuals may not have command prompt access. However, if you have access through phpMyAdmin, substitute these steps for step #4 above:
  
LiquidThreads adds a 'threads' list module to retrieve thread details.
+
#Download [http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/LiquidThreads/lqt.sql lqt.sql].
 +
#In phpMyAdmin, click the database you're using for mediawiki along the left side
 +
#On the next screen, click the "SQL" tab at the top.
 +
#At "Location of the text file", choose one of the files, select compression "None", and click the bottom "Go" button.
 +
#:If your phpMyAdmin screen has only a text field and no text file chooser, click the "SQL" button in the left-side column, under the phpMyAdmin logo, and click the "import files" tab in the new window that opens.
 +
#:If you encounter the error message <code>#1071 - Specified key was too long; max key length is 1000 bytes </code>, abbreviate line 35 of lqt.sql to <code>CREATE INDEX thread_article_title ON /*$wgDBprefix*/thread (thread_article_namespace, thread_article_title);</code> (in other words, remove <code>, thread_sortkey</code>). Remove the new tables and import the file again.
 +
#:If your database uses table prefixes, you have to add them manually. You can do so after the new tables have been created.
  
 +
== API ==
 +
[[/API|API documentation]]
  
<span style="font-size:132%; font-weight:bold">Parameters</span>
+
==Notes==
*<code>thstartid</code>: The thread id to start enumerating from
+
<references/>
*<code>thendid</code>: The thread id to stop enumerating at
+
{{info|1=This extension does not work if your LocalSettings.php contains the following two parameter settings: <code>$wgEnableAPI = false;</code> and <code>$wgEnableWriteAPI = false;</code>}}
*<code>thdir</code>: The direction in which to enumerate (older, newer)
 
*<code>thshowdeleted</code>: ???
 
*<code>thlimit</code>: The maximum number of threads to list
 
*<code>thprop</code>: Which properties to get
 
*<code>thpage</code>: Limit results to threads on a particular page(s)
 
*<code>thauthor</code>: Limit results to threads by a particular author(s)
 
*<code>throot</code>: Limit results to threads with the given root(s)
 
*<code>thsummary</code>: Limit results to threads corresponding to the given summary page(s)
 
*<code>thid</code>: Get threads with the given ID(s)
 
*<code>thrender</code>: ???
 
*<code>threnderlevel</code>: ???
 
*<code>threnderthreadpos</code>: ???
 
*<code>threnderthreadcount</code>: ???
 
*<code>threndermaxthreadcount</code>: ???
 
*<code>threndermaxdepth</code>: ???
 
*<code>threnderstartrepliesat</code>: ???
 
  
<span style="font-size:132%; font-weight:bold">Example</span>
+
== Example ==
{{ApiEx
+
* [[LiquidThreads Test Page|Test Page]] for playing around with the Liquid Threads interface.
| desc=Get details of all threads on "Talk:Main Page"
 
| p1=action=query
 
| p2=list=threads
 
| p3=thpage=Talk:Main_Page
 
| result=
 
<source lang="xml">
 
<api>
 
  <query>
 
    <threads>
 
      <thread id="1" subject="test" pagens="1" pagetitle="Talk:Main Page" parent="">
 
        <author id="0" name="127.0.0.1" />
 
      </thread>
 
      <thread id="2" subject="foo" pagens="1" pagetitle="Talk:Main Page" parent="">
 
        <author id="0" name="127.0.0.1" />
 
      </thread>
 
      <thread id="3" subject="foo" pagens="1" pagetitle="Talk:Main Page" parent="2">
 
        <author id="0" name="127.0.0.1" />
 
      </thread>
 
    </threads>
 
  </query>
 
</api>
 
</source>}}
 
  
 
==See also==
 
==See also==
*[[v:THREADNAV]] - an alternative project on Wikiversity on structured and threaded discussions, which uses wiki-syntax for structures and the [[Manual:NavFrame|NavFrames]] JavaScript for display
+
* [[Flow]]
*[[Extension:AWC's Forum]] - allows the display of a standalone forum within MediaWiki.
+
* [[v:THREADNAV]] - Wikiversity development on structured and threaded discussions using wiki-syntax for structures and [[Manual:NavFrame|NavFrames]] JavaScript for display. Last activity was 2007.
 +
* [[Extension:AWC's Forum]] - allows the display of a standalone forum within MediaWiki.
 +
* [[Extension:Reflect]] - implements a novel augmentation of threaded comments.
 +
* [[User:Inquisitor_Ehrenstein/LQTavatar]] – Forum style LQT templates for including avatars and full forum style signatures.
 +
* [[Extension:DiscussionThreading]] - A more light-weight solution that will still allow editing the discussion page like a wiki page (still works with MW 1.22x)
  
 
==External links==
 
==External links==
====Comments/feedback====
+
* [[Extension:LiquidThreads/Sites using this extension|Sites using this extension]]
I assume this section is where I can write my feedback?
+
* [[bugzilla:19699|Bugzilla ticket for LiquidThreads deployment]]
 
+
* [[w:Wikipedia:LiquidThreads|English Wikipedia]] LiquidThreads article
# Old talk pages are not migrated into the new system.
+
* [[commons:Category:LiquidThreads|Wikimedia Commons]] LiquidThreads pictures
That sucks, but it's not an easy problem to solve.
 
# Does 'you have new messages' still work?
 
Yes.
 
 
 
#if enotif is installed, can user be notified by email whenever a new topic or comment is added on a discussion page of a page included in his watch list  and/or answers a comment of his ?
 
 
 
===Search of WikiEducator Google Group discussions===
 
* <s>[http://groups.google.com/group/wikieducator/search?group=wikieducator&q=liquid&qt_g=Search+this+group "liquid"]</s>
 
* <s>[http://groups.google.com/group/wikieducator/search?group=wikieducator&q=LQT&qt_g=Search+this+group "LQT"]</s>
 
  
===User comments===
+
{{OnWikimedia}}
* [http://www.wikieducator.org/User:Jtneill/WikiEducator/Questions_and_comments/LQT LQT] (James Neill, WikiEducator)
 
  
===Sites that use LiquidThreads===
+
{{Languages}}
* [http://www.wecowi.de Web Community Wiki]
 
* [http://www.wikimini.org Wikimini (encyclopedia written by children)]
 
* [http://cns.ath.cx/ CNS]
 
*[http://strategy.wikimedia.org/wiki/Village_pump strategy.wikimedia.org] (in places)
 
*[[translatewiki:|translatewiki.net]]
 
* [http://www.wikipathways.org WikiPathways]
 
  
 
[[Category:Discussion and forum extensions]]
 
[[Category:Discussion and forum extensions]]
 +
[[Category:Summer of Code 2006]]

Latest revision as of 08:25, 12 May 2014

Template:Notice Template:Shortcut

Needs Update
This page has not been updated in a long time - needs attention from some expert on the subject

Template:Expand

MediaWiki extensions manual
Crystal Clear action run.png
LiquidThreads

Release status: experimental

220px
Implementation Page action, Special page, API
Description LiquidThreads extension implements a structured discussion system for MediaWiki.
Author(s) David McCabe, Andrew Garrett
Latest version 2.2-alpha [1] (2014-03-28)
MediaWiki 1.23+
PHP 5.3.0+
Database changes yes
License GPL v2
Download
Template:Git file
Parameters

$egLqtNamespaceNumbers

Hooks used
BeforeWatchlist

ChangesListInsertArticleLink
MediaWikiPerformAction
PageHistoryBeforeList
SkinTemplateTabAction
SkinTemplateTabs
SkinTemplateOutputPageBeforeExec
SpecialMovepageAfterMove
PageContentLanguage

Check usage and version matrix; code metrics
Bugs: list open list all report

LiquidThreads (LQT) is an extension for MediaWiki that implements a threaded discussion page system.

History

The original code was developed by David McCabe under sponsorship from the Google Summer of Code 2006, the Commonwealth of Learning, and Wikia. However, David McCabe is no longer involved with this project.

The original LiquidThreads code was substantially improved and augmented by Andrew Garrett at the Wikimedia Foundation since May 2009. The latest stable release of the LiquidThreads extension is LQT 2.0, described on this page. LQT 2.0 is the version currently being used on several Wikimedia wikis, and was used in the strategic planning process.

In January 2011, work on LiquidThreads 3.0 was begun at the Wikimedia Foundation. LQT 3.0 was being developed, with Andrew Garrett as the lead developer, but is now suspended. Development of LQT3 can be tracked in this branch; the last commits to LQT3 (lqt-updates) branch were in September 2011. Development by the Foundation has been discontinued.

User documentation

To activate LiquidThreads on a specific page on a wiki where LiquidThreads is opt-in, add

{{#useliquidthreads:1}} 

to the page's source code. To deactivate LiquidThreads on a specific page on a wiki where LiquidThreads is opt-out add

{{#useliquidthreads:0}} 

to the page's source code.

Comprehensive user documentation will be developed when LiquidThreads has a finalised (or remotely stable) interface.

Rationale

Wiki discussion pages have some advantages over web and Usenet forums:

  • They allow use of the entire wiki syntax, from images to links to transclusions.
  • It is possible to refactor entire discussion pages.

But web forums offer many more advantages over the MediaWiki talk page model:

  • Threads can be displayed in different views: flat, nested, sorted by date, subject, etc.
  • The user only needs to click a "Reply" button or link in order to respond to a comment. Manual indentation is not required. Quotations from the source comment can be inserted automatically.
  • Comments are automatically signed and dated.
  • Avatars are possible (but not yet created).
  • The user can watch individual threads or be notified about responses in threads.
  • Comments and threads can be displayed individually, without the surrounding page.
  • Old comments are archived automatically and invisibly, with permanent links easily available.
  • Search for author, subject, date, etc. is possible
  • Individual threads can have categories.
  • It is relatively easy to manage related discussions in a subject-specific forum, whereas MediaWiki talk pages always follow the "one discussion page per subject page" model.

LiquidThreads aims to unite the advantages of both forum types, and to add some unique discussion features to boot.

Installation

Prerequisites: LiquidThreads currently requires the WikiEditor extension to be already installed. See bug 38654. To be able to properly search threads, Extension:Lucene-search must also be installed from Wikimedia's operations/debs/lucene-search-2.git repository.

Template:ExtensionInstall

Installing without command prompt access

Some individuals may not have command prompt access. However, if you have access through phpMyAdmin, substitute these steps for step #4 above:

  1. Download lqt.sql.
  2. In phpMyAdmin, click the database you're using for mediawiki along the left side
  3. On the next screen, click the "SQL" tab at the top.
  4. At "Location of the text file", choose one of the files, select compression "None", and click the bottom "Go" button.
    If your phpMyAdmin screen has only a text field and no text file chooser, click the "SQL" button in the left-side column, under the phpMyAdmin logo, and click the "import files" tab in the new window that opens.
    If you encounter the error message #1071 - Specified key was too long; max key length is 1000 bytes , abbreviate line 35 of lqt.sql to CREATE INDEX thread_article_title ON /*$wgDBprefix*/thread (thread_article_namespace, thread_article_title); (in other words, remove , thread_sortkey). Remove the new tables and import the file again.
    If your database uses table prefixes, you have to add them manually. You can do so after the new tables have been created.

API

API documentation

Notes

Template:Info

Example

  • Test Page for playing around with the Liquid Threads interface.

See also

External links


Language: [[::Extension:LiquidThreads|English]]