lhc/web/wiklou.git
13 years agoReconcept cl_raw_sortkey as cl_sortkey_prefix
Aryeh Gregor [Mon, 26 Jul 2010 19:27:13 +0000 (19:27 +0000)]
Reconcept cl_raw_sortkey as cl_sortkey_prefix

In response to feedback by Phillipe Verdy on bug 164.  Now if a bunch of
pages have [[Category:Foo| ]], they'll sort amongst themselves according
to page name, instead of in basically random order as it is currently.
This also makes storage more elegant and intuitive: instead of giving
NULL a magic meaning when there's no custom sortkey specified, we just
store an empty string, since there's no prefix.

This means {{defaultsort:}} really now means {{defaultsortprefix:}},
which is slightly confusing, and a lot of code is now slightly
misleading or poorly named.  But it should all work fine.

Also, while I was at it, I made updateCollation.php work as a transition
script, so you can apply the SQL patch and then run updateCollation.php
and things will work.  However, with the new schema it's not trivial to
reverse this -- you'd have to recover the raw sort keys with some PHP.
Conversion goes at about a thousand rows a second for me, and seems to
be CPU-bound.  Could probably be optimized.

I also adjusted the transition script so it will fix rows with collation
versions *greater* than the current one, as well as less.  Thus if some
site wants to use their own collation, they can call it 137 or
something, and if they later want to switch back to MediaWiki stock
collation 7, it will work.

Also fixed a silly bug in updateCollation.php where it would say "1000
done" if it did nothing, and changed $res->numRows() >= self::BATCH_SIZE
to == so people don't wonder how it could be bigger (since it can't, I
hope).

13 years agoClose the web page when it is disabled.
Platonides [Mon, 26 Jul 2010 17:41:14 +0000 (17:41 +0000)]
Close the web page when it is disabled.
Fix XSS in filter parameter. Normal setups (with $wgEnableProfileInfo = false) are not affected.

13 years agoStyle improvements
Jeroen De Dauw [Mon, 26 Jul 2010 17:31:38 +0000 (17:31 +0000)]
Style improvements

13 years agoFollow up r69874. Fix the separation markup.
Philip Tzou [Mon, 26 Jul 2010 16:09:06 +0000 (16:09 +0000)]
Follow up r69874. Fix the separation markup.

13 years agoMoved globals $utfCombiningClass, $utfCanonicalComp, $utfCanonicalDecomp, $utfCheckNF...
Platonides [Mon, 26 Jul 2010 12:39:44 +0000 (12:39 +0000)]
Moved globals $utfCombiningClass, $utfCanonicalComp, $utfCanonicalDecomp, $utfCheckNFC and utfCompatibilityDecomp into UtfNormal class
Regenerated unicode tables
All tests successful

13 years agoRELEASE NOTES for r69918
Platonides [Mon, 26 Jul 2010 09:40:40 +0000 (09:40 +0000)]
RELEASE NOTES for r69918

13 years agoFix for r69776: remove unused variable ApiMain::$mVaryCookie
Tim Starling [Mon, 26 Jul 2010 07:35:30 +0000 (07:35 +0000)]
Fix for r69776: remove unused variable ApiMain::$mVaryCookie

13 years agoFollowup r69921
Sam Reed [Mon, 26 Jul 2010 06:57:58 +0000 (06:57 +0000)]
Followup r69921

PHP Parse error: syntax error, unexpected T_OBJECT_OPERATOR, expecting T_PAAMAYIM_NEKUDOTAYIM in includes/db/DatabasePostgres.php on line 1157

13 years agoPartial revert of r69782: reverted the cache feature, it does not correctly respect...
Tim Starling [Mon, 26 Jul 2010 06:20:29 +0000 (06:20 +0000)]
Partial revert of r69782: reverted the cache feature, it does not correctly respect $parseLimit.

13 years agoMove getValidNamespaces() to Namespace.php
Platonides [Sun, 25 Jul 2010 22:29:05 +0000 (22:29 +0000)]
Move getValidNamespaces() to Namespace.php

13 years agoKill $wgDBversion
Platonides [Sun, 25 Jul 2010 22:09:34 +0000 (22:09 +0000)]
Kill $wgDBversion

13 years agoMore unused variables, whitespace
Sam Reed [Sun, 25 Jul 2010 21:44:29 +0000 (21:44 +0000)]
More unused variables, whitespace

13 years ago1 more dynamic used as static
Sam Reed [Sun, 25 Jul 2010 21:43:44 +0000 (21:43 +0000)]
1 more dynamic used as static

13 years agoKill $wgDBport_db2
Platonides [Sun, 25 Jul 2010 21:43:11 +0000 (21:43 +0000)]
Kill $wgDBport_db2

13 years agoKill $wgUseRootUser variable.
Platonides [Sun, 25 Jul 2010 21:37:03 +0000 (21:37 +0000)]
Kill $wgUseRootUser variable.

13 years agoRemove useless ext installation script. All this stuff is being redone as part of...
Chad Horohoe [Sun, 25 Jul 2010 21:26:28 +0000 (21:26 +0000)]
Remove useless ext installation script. All this stuff is being redone as part of GSoC and nothing here is useful at all

13 years agoAdd $wgLicenseTerms to DefaultSettings
Platonides [Sun, 25 Jul 2010 21:25:42 +0000 (21:25 +0000)]
Add $wgLicenseTerms to DefaultSettings

13 years agoA few more wrong static things
Sam Reed [Sun, 25 Jul 2010 21:15:27 +0000 (21:15 +0000)]
A few more wrong static things

Remove some =& from LanguageKk_cyrl

13 years agoFollow up r53497. $wgExternalAuthConfig -> $wgExternalAuthConf
Platonides [Sun, 25 Jul 2010 21:11:38 +0000 (21:11 +0000)]
Follow up r53497. $wgExternalAuthConfig -> $wgExternalAuthConf
Only DefaultSettings calls it like that. All the classes use $wgExternalAuthConf

13 years agoFixup some more wrong static usages
Sam Reed [Sun, 25 Jul 2010 21:08:34 +0000 (21:08 +0000)]
Fixup some more wrong static usages

13 years agoChange some more to parent::
Sam Reed [Sun, 25 Jul 2010 21:02:56 +0000 (21:02 +0000)]
Change some more to parent::

13 years agoKill $wgDBsuperuser
Platonides [Sun, 25 Jul 2010 21:02:42 +0000 (21:02 +0000)]
Kill $wgDBsuperuser

13 years agoFile:: to parent::
Sam Reed [Sun, 25 Jul 2010 20:56:22 +0000 (20:56 +0000)]
File:: to parent::

13 years agoPass $this->getName() to getLocalUrl
Sam Reed [Sun, 25 Jul 2010 20:55:51 +0000 (20:55 +0000)]
Pass $this->getName() to getLocalUrl

13 years agoArticle:: to self::
Sam Reed [Sun, 25 Jul 2010 20:52:30 +0000 (20:52 +0000)]
Article:: to self::

13 years agoFollowup r69904 $self to self
Sam Reed [Sun, 25 Jul 2010 20:51:16 +0000 (20:51 +0000)]
Followup r69904 $self to self

13 years agoMake getRandomString static as per comment
Sam Reed [Sun, 25 Jul 2010 20:44:40 +0000 (20:44 +0000)]
Make getRandomString static as per comment

Fix usage in top of Parser (changed by me earlier)

13 years agoLocalisation updates for core and extension messages from translatewiki.net (2010...
Raimond Spekking [Sun, 25 Jul 2010 20:08:31 +0000 (20:08 +0000)]
Localisation updates for core and extension messages from translatewiki.net (2010-07-25 19:47:00 UTC)

13 years agoRemove double globals.
Platonides [Sun, 25 Jul 2010 19:45:52 +0000 (19:45 +0000)]
Remove double globals.

13 years agoRemove unused globals.
Platonides [Sun, 25 Jul 2010 19:36:35 +0000 (19:36 +0000)]
Remove unused globals.

13 years agoAdd a few globals.
Platonides [Sun, 25 Jul 2010 18:39:41 +0000 (18:39 +0000)]
Add a few globals.

13 years agoFollow up r69643. Remove unused global.
Platonides [Sun, 25 Jul 2010 18:26:44 +0000 (18:26 +0000)]
Follow up r69643. Remove unused global.

13 years agoMove double $wgOut globals to the top, remove $wgLang duplicated global.
Platonides [Sun, 25 Jul 2010 18:24:29 +0000 (18:24 +0000)]
Move double $wgOut globals to the top, remove $wgLang duplicated global.

13 years agoFollow up r68354. $wgUser *is* used in successfulLogin() and mailPasswordInternal().
Platonides [Sun, 25 Jul 2010 18:20:21 +0000 (18:20 +0000)]
Follow up r68354. $wgUser *is* used in successfulLogin() and mailPasswordInternal().

13 years agoDo not use a global $action to get the action.
Platonides [Sun, 25 Jul 2010 18:16:25 +0000 (18:16 +0000)]
Do not use a global $action to get the action.

13 years agoMore self:: to $this->
Sam Reed [Sun, 25 Jul 2010 18:13:56 +0000 (18:13 +0000)]
More self:: to $this->

13 years agoI don't think you wanted to assign $IP as a local variable...
Platonides [Sun, 25 Jul 2010 18:04:41 +0000 (18:04 +0000)]
I don't think you wanted to assign $IP as a local variable...

13 years agoMany self:: to $this-> in HttpTest
Sam Reed [Sun, 25 Jul 2010 18:03:11 +0000 (18:03 +0000)]
Many self:: to $this-> in HttpTest

13 years agoFix some wrong usages of static method calls (actually belong to class instance)
Sam Reed [Sun, 25 Jul 2010 18:00:32 +0000 (18:00 +0000)]
Fix some wrong usages of static method calls (actually belong to class instance)

13 years agoMark used $wgUser as global.
Platonides [Sun, 25 Jul 2010 17:56:23 +0000 (17:56 +0000)]
Mark used $wgUser as global.
$wgLang of 2917 already marked as global in 2889. Ditto for $wgDeleteRevisionsLimit of 2927.
$wgContLangmarked as global twice in getAutosummary

Are you able to catch the global declared twice left?

13 years agoAdd some more missing globals
Sam Reed [Sun, 25 Jul 2010 17:53:16 +0000 (17:53 +0000)]
Add some more missing globals

13 years ago$wgLang is already marked as global at the top.
Platonides [Sun, 25 Jul 2010 17:48:48 +0000 (17:48 +0000)]
$wgLang is already marked as global at the top.

13 years agoMore unused globals
Sam Reed [Sun, 25 Jul 2010 17:47:41 +0000 (17:47 +0000)]
More unused globals

13 years agoRemove unused global faster than Reedy.
Platonides [Sun, 25 Jul 2010 17:46:15 +0000 (17:46 +0000)]
Remove unused global faster than Reedy.

13 years agoAdd used global $wgOut.
Platonides [Sun, 25 Jul 2010 17:45:04 +0000 (17:45 +0000)]
Add used global $wgOut.

13 years agofollow up r69874. use string instead of object .
Philip Tzou [Sun, 25 Jul 2010 16:59:32 +0000 (16:59 +0000)]
follow up r69874. use string  instead of object .

13 years agoPerformance improvement: in doVariants(), concatenate a bulk of titles to a single...
Philip Tzou [Sun, 25 Jul 2010 16:53:55 +0000 (16:53 +0000)]
Performance improvement: in doVariants(), concatenate a bulk of titles to a single string, thus we just need to call convertLinkToAllVariants() once.

13 years agocoding style tweaks to Title.php
Jack Phoenix [Sun, 25 Jul 2010 15:53:22 +0000 (15:53 +0000)]
coding style tweaks to Title.php

13 years agocoding style tweaks to Interwiki.php
Jack Phoenix [Sun, 25 Jul 2010 15:50:23 +0000 (15:50 +0000)]
coding style tweaks to Interwiki.php

13 years agoUpdate the Chinese conversion tables.
Philip Tzou [Sun, 25 Jul 2010 12:01:13 +0000 (12:01 +0000)]
Update the Chinese conversion tables.

13 years agoUpdate the Chinese conversion tables.
Philip Tzou [Sun, 25 Jul 2010 11:52:04 +0000 (11:52 +0000)]
Update the Chinese conversion tables.

13 years ago* (bug 24517) LocalFile::newFromKey() and OldLocalFile::newFromKey() no longer throw...
Alexandre Emsenhuber [Sun, 25 Jul 2010 11:40:52 +0000 (11:40 +0000)]
* (bug 24517) LocalFile::newFromKey() and OldLocalFile::newFromKey() no longer throw fatal errors

13 years agoPer Simetrical, fix for r69499: only select the fields used by Title::newFromRow()
Alexandre Emsenhuber [Sun, 25 Jul 2010 11:31:36 +0000 (11:31 +0000)]
Per Simetrical, fix for r69499: only select the fields used by Title::newFromRow()

13 years agoRemoved PHP4-ism
Alexandre Emsenhuber [Sun, 25 Jul 2010 11:26:52 +0000 (11:26 +0000)]
Removed PHP4-ism

13 years agoUpdate function comments to r13689. This time on trunk.
Platonides [Sat, 24 Jul 2010 23:30:08 +0000 (23:30 +0000)]
Update function comments to r13689. This time on trunk.

13 years agoFollowup to r69817, r69810 add PG patch file, defaults to cl_type of PAGE.
OverlordQ [Sat, 24 Jul 2010 21:44:16 +0000 (21:44 +0000)]
Followup to r69817, r69810 add PG patch file, defaults to cl_type of PAGE.

13 years agoFix autoloader borkage (from Jeroen's refactoring?)
Max Semenik [Sat, 24 Jul 2010 21:30:41 +0000 (21:30 +0000)]
Fix autoloader borkage (from Jeroen's refactoring?)

13 years agoRemove unused variable
Sam Reed [Sat, 24 Jul 2010 21:11:29 +0000 (21:11 +0000)]
Remove unused variable

Remove 1 unused global

13 years agoFollowup r69841 add missing t from output
Sam Reed [Sat, 24 Jul 2010 20:17:19 +0000 (20:17 +0000)]
Followup r69841 add missing t from output

13 years agoRemove unused globals
Sam Reed [Sat, 24 Jul 2010 20:12:33 +0000 (20:12 +0000)]
Remove unused globals

13 years agoFollowup r69841, missing $
Sam Reed [Sat, 24 Jul 2010 20:01:50 +0000 (20:01 +0000)]
Followup r69841, missing $

13 years agoFix typo in deleteArchivedFiles.inc
Sam Reed [Sat, 24 Jul 2010 20:01:14 +0000 (20:01 +0000)]
Fix typo in deleteArchivedFiles.inc

Remove unused globals

Add missing global

13 years agoLocalization update for he.
Rotem Liss [Sat, 24 Jul 2010 19:38:38 +0000 (19:38 +0000)]
Localization update for he.

13 years agoRemoval of unused globals
Sam Reed [Sat, 24 Jul 2010 19:11:52 +0000 (19:11 +0000)]
Removal of unused globals

Removal of one setting of a variable to '', then not using further

13 years agoRemove various unused globals
Sam Reed [Sat, 24 Jul 2010 19:11:34 +0000 (19:11 +0000)]
Remove various unused globals

Add missing global $wgUser;

13 years agoAdd missing global $wgOut;
Sam Reed [Sat, 24 Jul 2010 19:09:51 +0000 (19:09 +0000)]
Add missing global $wgOut;

13 years agoAdd missing global $wgUser
Sam Reed [Sat, 24 Jul 2010 19:08:23 +0000 (19:08 +0000)]
Add missing global $wgUser

13 years ago$self to $this
Sam Reed [Sat, 24 Jul 2010 19:06:19 +0000 (19:06 +0000)]
$self to $this

Remove 1 unused global

13 years agooverrideConfig was moved to CoreInstaller in r69738, but new-index.php / maintenance...
Ævar Arnfjörð Bjarmason [Sat, 24 Jul 2010 17:12:51 +0000 (17:12 +0000)]
overrideConfig was moved to CoreInstaller in r69738, but new-index.php / maintenance/install.php wasn't updated

13 years agoLocalisation updates for core and extension messages from translatewiki.net (2010...
Raimond Spekking [Sat, 24 Jul 2010 16:38:33 +0000 (16:38 +0000)]
Localisation updates for core and extension messages from translatewiki.net (2010-07-24 16:30:00 UTC)

13 years ago(bug 23293) Don't show change tags when special:rc/rclinked/newpages is transcluded
Brian Wolff [Fri, 23 Jul 2010 22:37:52 +0000 (22:37 +0000)]
(bug 23293) Don't show change tags when special:rc/rclinked/newpages is transcluded
into another page as it causes UNIQ... to be everywhere.

13 years agoLocalisation updates for core and extension messages from translatewiki.net (2010...
Raimond Spekking [Fri, 23 Jul 2010 21:34:35 +0000 (21:34 +0000)]
Localisation updates for core and extension messages from translatewiki.net (2010-07-23 21:25:00 UTC)

13 years agoCommit forgotten file from r69810
Aryeh Gregor [Fri, 23 Jul 2010 20:58:24 +0000 (20:58 +0000)]
Commit forgotten file from r69810

13 years agoAdd non-identity collation, with migration script
Aryeh Gregor [Fri, 23 Jul 2010 20:58:11 +0000 (20:58 +0000)]
Add non-identity collation, with migration script

It seemed to work correctly, with the newly-created page "bob" sorting
as "BOB", but then I nuked all my cl_sortkey by running the migration
script before refreshLinks.php had finished running, so I'll have to
wait a while to see if it works properly with a non-messed-up database.
It's possible there's something wrong with the display of section
letters in the categories, but otherwise I think this is working right.

13 years agoFix spaces from r69814
Sam Reed [Fri, 23 Jul 2010 20:58:09 +0000 (20:58 +0000)]
Fix spaces from r69814

Grrrr

13 years agoAdd missing $wgDBname global
Sam Reed [Fri, 23 Jul 2010 20:41:53 +0000 (20:41 +0000)]
Add missing $wgDBname global

13 years ago$title undefined in initialize
Sam Reed [Fri, 23 Jul 2010 20:35:44 +0000 (20:35 +0000)]
$title undefined in initialize

Guessing it's supposed to be $this->mTitle

13 years agoSaner code formatting, fix a couple of bugs
Aryeh Gregor [Fri, 23 Jul 2010 20:12:45 +0000 (20:12 +0000)]
Saner code formatting, fix a couple of bugs

13 years agoUse modern coding constructs and a better var name
Aryeh Gregor [Fri, 23 Jul 2010 20:01:53 +0000 (20:01 +0000)]
Use modern coding constructs and a better var name

foreach ( $res as $row ), Title::newFromRow(), $row instead of $x.

13 years agoInitial commit for category collation framework
Aryeh Gregor [Fri, 23 Jul 2010 19:52:02 +0000 (19:52 +0000)]
Initial commit for category collation framework

Hidden behind $wgExperimentalCategorySort until it's reasonably
complete.  If that's false, no behavior should change (but I didn't test
carefully, so poke me if there's a bug).  See DefaultSettings.php for
documentation on setting it to true.  Currently you should not do this
except if you're working on the feature, since functionality is not
close to reasonable yet and will change rapidly.

Bug 1211 is already fixed with this commit for me.  However, many other
things still need to be done, so this is all very much a
proof-of-concept.

13 years agoProhibit all moves from/to file namespace
Aryeh Gregor [Fri, 23 Jul 2010 17:11:30 +0000 (17:11 +0000)]
Prohibit all moves from/to file namespace

Per discussion on wikitech-l.  Previously, it was possible to move pages
to the file namespace, and move pages from the file namespace as long as
there was no associated file.

13 years agoTypo, style fix
Aryeh Gregor [Fri, 23 Jul 2010 17:11:20 +0000 (17:11 +0000)]
Typo, style fix

13 years ago* replacing deprecated <s> with <del>
Danny B [Fri, 23 Jul 2010 16:59:29 +0000 (16:59 +0000)]
* replacing deprecated <s> with <del>

13 years agoFixup code from r69753, create title from row and use that in the pageset
Sam Reed [Fri, 23 Jul 2010 16:59:27 +0000 (16:59 +0000)]
Fixup code from r69753, create title from row and use that in the pageset

Also intval() page_namespace as per CR

13 years agoResolve minor fixme from r69761
Sam Reed [Fri, 23 Jul 2010 15:58:32 +0000 (15:58 +0000)]
Resolve minor fixme from r69761

13 years agoFollowup to r69776: cache result of extractRequestParams() because it gets called...
Roan Kattouw [Fri, 23 Jul 2010 10:15:29 +0000 (10:15 +0000)]
Followup to r69776: cache result of extractRequestParams() because it gets called 2 or 3 times per module per request now. Also touch up documentation here and there

13 years agoMinor comment improvement to r69757
Sam Reed [Fri, 23 Jul 2010 07:38:45 +0000 (07:38 +0000)]
Minor comment improvement to r69757

13 years agoStylize API up to date
Sam Reed [Fri, 23 Jul 2010 07:33:40 +0000 (07:33 +0000)]
Stylize API up to date

Fix spaces from r69755

Minor update to RELEASE-NOTES per r69753

13 years agoRewrote r69339 etc. to clean up API cache header handling.
Tim Starling [Fri, 23 Jul 2010 07:17:56 +0000 (07:17 +0000)]
Rewrote r69339 etc. to clean up API cache header handling.

* Introduced a "cache mode" concept to simplify the header generation code, and to avoid odd results when conflicting cache header requests are received from submodules, or at least to formalise the handling of such cases.
* Made the cache mode private by default, so that code written in ignorance of caching tends to be safe. If different query modules are used in a single request, private caching is preferred over public caching.
* Removed the "must-revalidate" option from all CC headers, this is really specific to page views with a hacked squid in front, I don't think it's applicable here.
* Made the watchlist module private. This is really the definition of private data. There's nothing in the HTTP spec that says the URL for a CC:public request is private and can't be leaked. CC:private provides protection against unknown proxy behaviour.
* In ApiQueryAllmessages: avoid calling $wgLang->getCode() to check if it's necessary to make a new $wgLang when lang= is specified, since this is the only thing that unstubs $wgUser.
* Removed "FIXME: should this check $user instead of $wgUser?" Answer is no.

13 years agoFixed inappropriate conversion of strpos() result to boolean, causing the first cooki...
Tim Starling [Fri, 23 Jul 2010 05:11:18 +0000 (05:11 +0000)]
Fixed inappropriate conversion of strpos() result to boolean, causing the first cookie in the header to not be recognised as a cache-varying cookie

13 years agoSend XVO headers only if $wgUseXVO is true.
Tim Starling [Fri, 23 Jul 2010 05:00:58 +0000 (05:00 +0000)]
Send XVO headers only if $wgUseXVO is true.

13 years agore r64403 - remove never-actually-used $flag parameter from verifyUpload()
Mark A. Hershberger [Fri, 23 Jul 2010 00:07:35 +0000 (00:07 +0000)]
re r64403 - remove never-actually-used $flag parameter from verifyUpload()

13 years agoBig blitz on unused variables (a lot of $db = $this->getDb() )
Sam Reed [Thu, 22 Jul 2010 22:13:21 +0000 (22:13 +0000)]
Big blitz on unused variables (a lot of $db = $this->getDb() )

13 years agoRemove some unused globals
Sam Reed [Thu, 22 Jul 2010 22:00:27 +0000 (22:00 +0000)]
Remove some unused globals

13 years agoRemove various unused parameters
Sam Reed [Thu, 22 Jul 2010 21:55:40 +0000 (21:55 +0000)]
Remove various unused parameters

Only comment them out in ApiFormatYaml_spyc.php

13 years agoFix fail from r69755, press save, actually do "LIMIT_SML2, LIMIT_BIG2 are in ApiBase...
Sam Reed [Thu, 22 Jul 2010 21:54:19 +0000 (21:54 +0000)]
Fix fail from r69755, press save, actually do "LIMIT_SML2, LIMIT_BIG2 are in ApiBase, not ApiMain"

13 years agoLIMIT_SML2, LIMIT_BIG2 are in ApiBase, not ApiMain
Sam Reed [Thu, 22 Jul 2010 21:52:06 +0000 (21:52 +0000)]
LIMIT_SML2, LIMIT_BIG2 are in ApiBase, not ApiMain

13 years ago$this isn't valid in a static function. Fix for r46507
Sam Reed [Thu, 22 Jul 2010 21:44:07 +0000 (21:44 +0000)]
$this isn't valid in a static function. Fix for r46507

Return error wrapped in array as per rest of code

13 years ago* (bug 24485) Make iwbacklinks a generator, display iwprefix and iwtitle optional
Sam Reed [Thu, 22 Jul 2010 21:03:36 +0000 (21:03 +0000)]
* (bug 24485) Make iwbacklinks a generator, display iwprefix and iwtitle optional

Second part, make ApiQueryIWBacklinks a Generator

13 years agoRemove unused $categories = array();
Sam Reed [Thu, 22 Jul 2010 20:56:04 +0000 (20:56 +0000)]
Remove unused $categories = array();