Page MenuHomePhabricator

SelectCategory is overriding the Mediawiki {{DEFAULTSORT}} magic word
Closed, ResolvedPublic

Description

Author: webmaster

Description:
Hi,

First sorry if I'm wrong because I'm not a real techie guy and as you will notice my English is not perfect.

I'm using an older version of this extension but I had a look at the current code and it seems that this is still the same.

The {{DEFAULTSORT}} magic word (which can be used to change the default sort key of a category (ex: "Ete" instead of "Été")) is being overridden by the extension.

The problem seems to be this line:

$default_sortkey = "|{{PAGENAME}}";

As far as I understand, this line forces the sort key to be equal to the page's title and makes it impossible to set a custom sortkey. This is really a big issue especially on non English-language wikis that use accented and other special characters.

Moreover I don't understand why you're manually adding this sortkey. If no sortkey is being set (ex: "[[Category:Examplename]]" instead of "[[Category:Examplename|Examplename]]"), the name of the category ("Examplename") will be used by default, won't it? I thought this was already a default feature of Mediawiki. Am I wrong?

Reference about the magic word:

http://www.mediawiki.org/wiki/Help:Magic_words#Technical_metadata (look for "DEFAULTSORT")


Version: unspecified
Severity: major

Details

Reference
bz46291

Event Timeline

bzimport raised the priority of this task from to Medium.Nov 22 2014, 1:27 AM
bzimport set Reference to bz46291.

The relevant code is:

  1. default sort key is page name with stripped namespace name,
  2. otherwise sorting is ugly. if( !$isUpload && $pageObj->mTitle->getNamespace() == NS_MAIN ) { $default_sortkey = ""; } else { $default_sortkey = "|{{PAGENAME}}"; }

The "|{{PAGENAME}}" is only added for pages that are not in the main namespace (like file: or category:)

The reason for this probably is/was *) (copied from http://www.mediawiki.org/wiki/Help:Categories#Sort_key )

By default, a page is sorted within a category under the
first letter of its full name _including the namespace_.

In other words: all Template:* pages would be listed under "T".

It seems this changed with current MediaWiki versions - a short look at some random categories in Wikipedia and a wiki I maintain indicates that the default sorting is now by page title _without_ the namespace, but I'm not 100% sure. (Can someone confirm that? - also asked on http://www.mediawiki.org/wiki/Help_talk:Categories)

If you want to test, edit the code (SelectCategory_body.php around line 150). Please replace

$default_sortkey = "|{{PAGENAME}}";

with

$default_sortkey = "";

and tell me what happens ;-)

*) the code for this was added long time before I started to work on SelectCategory

@Cboltz: This issue has been assigned to you a while ago.
Could you please provide a status update and inform us whether you are still working (or still plan to work) on this issue?
Only in case you do not plan to work on this issue anymore, should the assignee be removed? Thanks.

Cboltz claimed this task.

Sorry that this took so long!

I dropped $default_sortkey in https://gerrit.wikimedia.org/r/#/c/359138/1