Extension:Semantic Title

What?
The SemanticTitle extension sets visible page title to a value of semantic property.

For example, if page `Bug:32758' has semantic property `Title' with value `SMW handles timezones incorrectly', and SemanticTitle is properly installed and configured, visible page title will be `SMW handles timezones incorrectly', with subtitle `Bug:32758'.

Similarly, link to the page will be `SMW handles timezones incorrectly' with tooltip `Bug:32758'.

returns `SMW handles timezones incorrectly' as plain text (not a link).

Why?
Let us assume we are creating a bug tracking system based on MediaWiki. Semantic MediaWiki converts wiki into a database. Pages become objects or entities (e. g. bugs) with properties (e. g. title, submitter, severity, component, etc). We want every bug is identified by its number, assigned automatically. Semantic Forms allows it:

...

so every new bug receives unique identifier. Everything works, but bug page title will be `Bug:32758', links to this bug will also be `Bug:32758', while we want to see bug titles (set by user, not an id assigned by system) in page titles and links. This is the job for SemanticTitle extension.

Download
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/SemanticTitle.git

Installation
To install this extension, add the following to LocalSettings.php:

require_once( "$IP/extensions/SemanticTitle/SemanticTitle.php" );

Semantic MediaWiki should also be installed. Order of inclusion does not matter.

If SemanticTitle is used with HidePrefix extension, SemanticTitle should be included before HidePrefix (SemanticTitle does not touch title if it was set to non-default value, e. g. processed by HidePrefix extension).

Configuration
In LocalSettings.php after including `SemanticTitle.php':

$egSemanticTitle = array(     NS1 => '&zwj;Property name1&zwj;',     NS2 => '&zwj;Property name2&zwj;',     ... );

where:


 * NS# — Namespace index (not a namespace name!) (usually constant, like ). Only pages in specified namespaces are affected.
 * Property name# — Name of property to be used as title in the specified namespace.

Usage
Being installed and configured, SemanticTitle handles page titles and links with no user intervention.

However, category listings may look ugly, because listings show semantic titles while pages are sorted in order of their actual titles. Use  magic word to fix it, e. g.:

Title::title

If you need semantic title of a page as plain text (not a link), use  parser function:

Other extensions can call ` ' static function to get a semantic title by given title.

Caveats

 * SematicTitle overrides edit page title set by Semantic Forms (specified by ` ' construct).

License
GNU Affero General Public License, version 3 or any later version. See AGPL-3.0.txt file for the full license text.