Commit graph

70 commits

Author SHA1 Message Date
Brion Vibber
3d0b03d0eb Revert r21461 for now; a cleanup patch which doesn't change functionality but makes more things to clean up -- ugly function names, incorrect profiling function titles... 2007-04-23 18:52:51 +00:00
Antoine Musso
fc1a14eab7 Add support for microsoft bmp format. It simply give out the height and size,
we might want to transform them to png automaticly.
2007-04-22 17:34:09 +00:00
Antoine Musso
8eb0cdfdfa Move tidy callbacks from the Parser class to a new Tidy class. This is to keep
Parser.php at a reasonable size.
2007-04-21 23:25:36 +00:00
Tim Starling
b15d8cffc4 * Introduced media handler modules for file-type specific operations: thumbnailing, img_metadata, capabilities, etc.
* Deprecated $wgUseImageResize, thumbnailing will be enabled unconditionally.
* Fixed interaction of page parameter to ImagePage with the HTML file cache
* Improved error reporting for image thumbnailing
* Fixed MIME type for SVG files, will be silently changed from image/svg to image/svg+xml after loading from the database.
* Workaround for djvutoxml bug #1704049 (poor performance). Use djvudump instead.
* Fixed odd behaviour in ImagePage on DjVu thumbnailing errors
* Improved error reporting for image thumbnailing
* Added sharpening option for ImageMagick thumbnailing
* Removed Image::selectPage(), added page parameters to getWidth() and getHeight(), deprecated Image::renderThumb() and Image::getThumbnail()
* Changed default contents of img_metadata to empty string instead of a:0:{}
* Moved responsibility for respecting $wgGenerateThumbnailOnParse from the UI to Image.php
2007-04-20 12:31:36 +00:00
Ilmari Karonen
a5d5a6b5b8 make Special:Random retry (once, but more carefully) if the chosen random offset was too high, provide error message if there really are no pages to choose from rather than going to the main page. rewrite Special:Randomredirect to reuse code from Special:Random. 2007-04-19 10:19:27 +00:00
Rob Church
874d1d6990 (bug 9508) Special page to list articles with the fewest revisions, based on http://bugzilla.wikimedia.org/attachment.cgi?id=3421&action=view with minor modification 2007-04-08 07:23:15 +00:00
Rob Church
06278e5bcf Move PageQueryPage class into own file 2007-03-31 23:36:58 +00:00
Rob Church
8e8c887dce (bug 9046) Special page to list pages without language links 2007-03-31 22:54:30 +00:00
Rob Church
c640837eac * Split most of the result output code from QueryPage::doQuery() into QueryPage::outputResults(), leaving paging and other logic behind
* Introduce ImageQueryPage class which uses galleries instead of boring old lists
* (bug 9069) Use galleries in query pages dedicated to images [uncategorised images, most linked-to images and unused files at the moment]
2007-03-28 21:01:58 +00:00
Aaron Schulz
9359dd0601 *Rename FSarchivedFile to ArchivedFile, add to autoloader 2007-03-14 05:27:26 +00:00
River Tarnell
0b2f7f7ea4 full-search search for oracle using Oracle Text 2007-03-11 04:41:02 +00:00
River Tarnell
033b6b9646 revive experimental Oracle support
fix use of limitResult(); must pass actual SQL, not empty string
2007-03-11 03:59:37 +00:00
Tim Starling
11f05acd53 Removed ListUsersPage from the lists in QueryPage.php and AutoLoader.php, it no longer exists. List formatting, comment fix. 2007-02-21 17:37:25 +00:00
Nick Jenkins
baaee13afc Prevent some unnecessary lstat system calls, generated by include or require directives.
This can be done either by:
* Using explicit full paths, using the $IP global for the installation directory full path, and then working down the tree from there.
* Using explicit full paths, using the "dirname(__FILE__)" directive to get a full directory path for the includer file. 
* Occasionally removing the line altogether, and then for some files the inclusion is handled by the autoloader.

For example, if the "extensions/wikihiero/wh_main.php" file does an include or require on "wh_list.php", then PHP does the following:
* tries to open "wiki/wh_list.php", and fails.
* tries to open "wiki/includes/wh_list.php", and fails.
* tries to open "wiki/languages/wh_list.php", and fails.
* tries to open "wiki/extensions/wikihiero/wh_list.php", and succeeds.

So in this example, the first 3 calls can be prevented if PHP is told where the file is.

Testing Method: On a Linux box, run these commands to attach strace to all the apache2 processes, and log their system calls to a temporary file, then generate some activity, and then stop the strace:
-----------------------------------
rm /tmp/strace-log.txt
strace -tt -o /tmp/strace-log.txt -p `pidof apache2 | sed 's/ / -p /g'` &
php maintenance/fuzz-tester.php --keep-passed-tests --include-binary --max-runtime=3 > /tmp/strace-tests.txt
killall -9 strace
grep "No such file or directory"  /tmp/strace-log.txt | sort -u
-----------------------------------

Any failed file stats will be marked with: "-1 ENOENT (No such file or directory)".

Also:
* Strict Standards: Undefined offset:  230 in includes/normal/UtfNormal.php on line 637
* Strict Standards: iconv() [<a href='function.iconv'>function.iconv</a>]: Detected an illegal character in input string in languages/Language.php on line 776
  [Note: Partial only - despite adding "//IGNORE", it still seems to be possible with some
         messed- up binary input to cause PHP 5.1.2's iconv() function to squeal like a stuck pig].
* Update one $fname variable (method belongs to HistoryBlobStub class).
2007-02-09 05:36:56 +00:00
Domas Mituzas
1092312499 * Add AlphabeticPager abstract class
* Use AlphabeticPager for Special:Categories
* Introduce 'first' message
2007-02-04 15:35:52 +00:00
Rob Church
ce733745aa Check for interface existence in wfLoadAllExtensions() too, otherwise if an extension comes with an interface [e.g. BookInformation], the require() can cause it to be double-initialised (the implementing classes will have been loaded, which will have caused PHP to autoload the interface definition) leading to a fatal error 2007-01-20 19:24:37 +00:00
Antoine Musso
52d2e48d27 Split out ParserOptions and ParserOutput classes in their own files.
Made using svn copy so the logs are kept.
2007-01-20 12:50:56 +00:00
Brion Vibber
d88bf87284 Apply most of the code tweaks from the live site:
* use configured cache servers for mctest.php
* bucket details in mcc.php
* fix input validation and remove debugging code in compressOld
* full ID range for moveToExternal
* fix resolveStubs.php for compatibility with older serialized data
* maximum line length for bar graphs in getLagTimes.php
* recognize specieswiki in rebuildInterwiki.inc
* --purge option to do additional parser-cache purging for purgeList.php
* default changed in MiniDonation extension
* profile unicode cleanup in Xml
* log slow parses in Article.php
* profile wfMsgReal
* log mkdir failures
* profile AutoLoader
* rebuild empty DjVu metadata containing ''
* security fix for DjVu metadata retrieval
2007-01-17 00:54:54 +00:00
Rob Church
c16298f2d2 * (bug 8621) Log revisions marked as patrolled
* Uses normal logging framework, but
** doesn't duplicate the log in recentchanges ;)
** uses a cleaner method to override LogPage::actionText() and do all the formatting
* Introduces PatrolLog::record()
2007-01-16 17:05:30 +00:00
Brion Vibber
ccf91e827a * Unmaintained Oracle support files have been removed. 2007-01-13 05:02:41 +00:00
Brion Vibber
8d4c6af284 revert r18517; should have been on branch 2006-12-23 09:03:36 +00:00
Paa Kwesi Imbeah
9574ae460f Minimal version of IC functionality. 2006-12-23 05:30:40 +00:00
Rob Church
58f17c71e1 * (bug 8164) Special:Booksources should use GET for form submission
* Rewrite Special:Booksources to clean up interface and remove redundant code
2006-12-16 19:20:44 +00:00
Brion Vibber
1c4daa9724 * Change behavior of logins using the temporary e-mailed password (as stored
in user_newpassword hash field). Instead of just logging in silently and
  leaving the previous user_password field in place indefinitely, the user
  is now prompted to set a new password.
  
  The password-changing form is at Special:Resetpass; currently it's only
  usable for changing from the temporary password during login, but it
  could perhaps be generalized, replacing the subform in preferences.
  
  Once the new password is set successfully, the temporary password is wiped
  so it cannot be used to login a second time, and the login process
  is completed.
* Suppress 'mail new password' button on login form if $wgAuth forbids
  changing user passwords; it wouldn't work very well...
* Consolidate password length checks and $wgAuth manipulation into
  User::setPassword() to avoid duplicate code in different places
  that set passwords.
* User::setPassword() now throws PasswordError exceptions if the password
  is illegal or cannot be set via $wgAuth. These can be caught and a human-
  readable error message displayed by UI code.
2006-12-12 04:15:00 +00:00
Ilmari Karonen
0f50b6db3a New special page Special:NewbieContributions to replace Special:Contributions/newbies
Also remove some obsolete contributions-related UI messages.
2006-12-03 01:59:57 +00:00
Ilmari Karonen
2df501fa0d Didn't really mean to delete SpecialContributions.php back there, but now that
it's gone, I might just as well roll out my new, completely rewritten version.
2006-12-03 00:05:45 +00:00
Brion Vibber
07de0fc7be Revert special:deletedcontribs for now; it's not ready to go live without the
index change so would hold up other work for a few days, and the code's kind
of ugly and should get refactored.
Would love to see this on a branch for the moment.
2006-11-28 04:31:35 +00:00
Ilmari Karonen
c1c00f2bd6 New special page Special:Deletedcontribs for browsing deleted edits made by a user.
NOTENOTENOTE: This is a one-night hack; feel free to tweak it mercilessly.  It has
a lot of common code with Special:Contributions that should be factored out.  There
is no link to this new page anywhere in the UI yet; I'd like people to test and
review this a bit before officially announcing it.  The page is currently only
available to users with deletedhistory privileges; a possible additional feature
might be to allow all users to list (but not view) their _own_ deleted edits.
2006-11-28 03:22:12 +00:00
Tim Starling
2f12a58d93 * Introduced StringUtils.php, populated it with some generic string functions, both new and collected from various other files.
* Removed some backtracking regexes with an O(N^2) worst case, replaced with StringUtils::delimiterReplace(). There is a beneficial functional difference: /*/ is no longer considered to be a complete CSS comment.
* Changed the parser strip state from an array to an object. This should hopefully avoid the PHP bugs with array references. StripState uses the new ReplacementArray to do the replacements, thereby supporting FSS. 
* Removed DatabaseFunctions.php from the default startup sequence. Moved wfGetDB() to GlobalFunctions.php.
* Introduced the SiteStats class, with a collection of cached site stats accessor functions.
* Removed all global functions from Parser.php, they don't belong there.
* Made LanguageConverter use the new ReplacementArray class instead of managing its own FSS objects.
2006-11-21 09:53:45 +00:00
Yuri Astrakhan
b900efa97f API * version param now links to the SVN
* debug case fixes 
* renamed ApiQueryContributions to ApiQueryUserContributions (a bit clearer)
2006-11-04 05:24:59 +00:00
Andrew Garrett
9f1eee86c1 Implement usercontribs module for API. 2006-11-01 12:06:29 +00:00
Yuri Astrakhan
3ec1b5b646 API * simple backlinks module (no redirect resolution yet)
* Cleaned up references
2006-10-25 03:54:56 +00:00
Yuri Astrakhan
eb02c1a87b API * cache expiration control
* Added PHP-serialized & WDDX formats
2006-10-22 23:45:20 +00:00
Yuri Astrakhan
10390af521 API * Added rudimentary RC list
* More readable query formulation
2006-10-20 07:10:18 +00:00
Yuri Astrakhan
d7a95b125c * API: logevents query module (incomplete) 2006-10-16 07:19:20 +00:00
Yuri Astrakhan
262435b9f8 * API: help screen now shows default and allowed parameter values
* API: added experimental watchlist rss/atom feed
* API: if available, json_encode() will be used
* API: opensearch parameter changed to "search=" (more descriptive)
* API: minor parameter cleanup, a wrapper for Feed class
2006-10-16 00:08:03 +00:00
Tim Starling
07940059be Dependency tracking layer for caching. 2006-10-14 10:27:41 +00:00
Yuri Astrakhan
b56d23ed46 * API: Restructured to allow internal usage. Error handling cleanup.
* API: Added opensearch module, added apprefix param for list=allpages
2006-10-14 07:18:08 +00:00
Tim Starling
d411e0b1e0 Renamed CacheManager to HTMLFileCache, to avoid confusion with the other sort of cache. 2006-10-11 08:25:26 +00:00
Brion Vibber
b871f030a2 Add missing AjaxResponse class 2006-10-05 21:15:03 +00:00
Tim Starling
3005679b0e * Removed lots of explicit require_once statements. The autoloader should theoretically be faster, because it always uses an absolute path, eliminating the need for a search, and it is never called unnecessarily. Absolute paths are also more robust in the face of odd configurations or usage patterns. Moved a few constants around to support this, they always have to be available before the method call.
* Deleted DatabaseMysql.php, no longer necessary, database classes are autoloaded. 
* Moved wfGetMimeMagic() to MimeMagic::singleton()
* Fixed a couple of __CLASS__.'::'.__FUNCTION__ things.
2006-10-03 13:00:52 +00:00
Tim Starling
c06507c4e2 CategoryPage bug fix 2006-08-25 07:33:55 +00:00
Tim Starling
d7b6ad563c Revamped Special:Imagelist. Implemented generic table-based data display. 2006-08-13 00:49:32 +00:00
Domas Mituzas
8974bfd94b add some abstraction for web responses, so far minimal and not that used, requires discussion, conflicts and reverts %) 2006-08-12 23:03:53 +00:00
Tim Starling
aad5390cda LanguageUtf8 is gone 2006-08-03 13:23:11 +00:00
Tim Starling
9315e023dc Avoid duplicate require_once() under windows by using the autoloader 2006-08-02 17:33:18 +00:00
Tim Starling
43b2fb56b6 Merged localisation-work branch:
* Made lines from initialiseMessages() appear as list items during installation
* Moved the bulk of the localisation data from the Language*.php files to the Messages*.php files. Deleted most of the Languages*.php files.
* Introduced "stub global" framework to provide deferred initialisation of core modules. 
* Removed placeholder values for $wgTitle and $wgArticle, these variables will now be null during the initialisation process, until they are set by index.php or another entry point.
* Added DBA cache type, for BDB-style caches. 
* Removed custom date format functions, replacing them with a format string in the style of PHP's date(). Used string identifiers instead of integer identifiers, in both the language files and user preferences. Migration should be transparent in most cases.
* Simplified the initialisation API for LoadBalancer objects.
* Removed the broken altencoding feature.
* Moved default user options and toggles from Language to User. Language objects are still able to define default preference overrides and extra user toggles, via a slightly different interface.
* Don't include the date option in the parser cache rendering hash unless $wgUseDynamicDates is enabled.
* Merged LanguageUtf8 with Language. Removed LanguageUtf8.php. 
* Removed inclusion of language files from the bottom of Language.php. This is now consistently done from Language::factory(). 
* Add the name of the executing maintenance script to the debug log. Start the profiler during maintenance scripts.
* Added "serialized" directory, for storing precompiled data in serialized form.
2006-07-26 07:15:39 +00:00
Tim Starling
3ea576aa25 Consolidated web initialisation code into includes/WebStart.php. Moved profiling setup to a hook file "StartProfiler.php", following Brion's suggestion to merge Wikimedia's early profiling patch into subversion. Renamed Profiling.php and logProfilingData(), removed unnecessary wfProfileClose() calls. 2006-07-14 05:35:31 +00:00
Antoine Musso
71fd92d760 Migrate IP related tools from ProxyTools.php to IP.php
and its own class of static functions
2006-07-12 18:33:21 +00:00
Brion Vibber
f1344b73c6 * (bug 6562) Removed unmaintained ParserXml.php for now 2006-07-07 06:04:07 +00:00