User "Catrope" posted a comment on MediaWiki.r86088.

Full URL: 
https://secure.wikimedia.org/wikipedia/mediawiki/wiki/Special:Code/MediaWiki/86088#c16007
Commit summary:

Completely rewritten table sorting script.
Fixes Bug 8028, Bug 8115, Bug 15406, Bug 17141, Bug 8732

1. Sites can specify custom collations.
The script accepts an object "tableSorterCollation" which contains a lookup
table, how specific characters should be treated.
For example, after setting "tableSorterCollation={'ä':'ae', 'ß':'ss'};" in the
site's common.js any string containing an ä or Ä will be sorted as if it were a
'ae'.

2. Table rows can be forced to use a specific data type.
By setting class="sort-{Parsername}", the row will be parsed with the specified
algorithm. class="sort-date" would force date sorting etc.
The following parsers are available: text, IPAddress, number, url, currency,
date, isoDate, usLongDate, time

3. Execution time is reduced by half or more.

Sorting a 935 row * 8 columns table:

Browser     Before      After
--------    ------      -----
Chrome 10   90ms        42ms
Safari 5    115ms       48ms
Firefox 4   412ms       87ms
IE8         720ms       115ms

4. Based on the content language and the mdy vs dmy preference, the parser can
understand dates such as "17. März '11". wgMonthNames=[] and
wgMonthNamesShort=[]
in the content language and the mdy vs dmy preference are exported to js; A
table containing the following dates would be sorted correctly:
17. Jan. 01
23 Feb 1992
9.02.05
13 November 2001
14 Oktober '76

Was tested in ie6-8, chrome, safari 5, ff3 & ff4

Comment:

<pre>
+               #$localDateFormats = $wgContLang->getDateFormats();
+               #$localPreferedFormat = 
$localDateFormats[$wgContLang->getDefaultDateFormat().' date'];
+
</pre>
Please don't introduce commented-out code. There's another commented-out line a 
few lines down.

<pre>           
+               $monthNames = array('');
+               $monthNamesShort = array('');
+               for ($i=1; $i < 13; $i++) { 
+                       $monthNames[]=$wgContLang->getMonthName($i);
+                       
$monthNamesShort[]=$wgContLang->getMonthAbbreviation($i);
+               }
</pre>
This does not conform to whitespace conventions. Also, this array building code 
should be moved into the Language class so you can just call e.g. 
<code>$wgContLang->getMonthNames()</code>

_______________________________________________
MediaWiki-CodeReview mailing list
mediawiki-coderev...@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-codereview

Reply via email to