r22619 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r22618‎ | r22619 | r22620 >
Date:04:13, 1 June 2007
Author:david
Status:old
Tags:
Comment:
Merged revisions 22587-22618 via svnmerge from
svn+ssh://david@svn.wikimedia.org/svnroot/mediawiki/trunk/phase3

........
r22589 | aaron | 2007-05-30 21:10:06 -0700 (Wed, 30 May 2007) | 1 line

*Title fix
........
r22596 | raymond | 2007-05-31 07:56:02 -0700 (Thu, 31 May 2007) | 2 lines

* (bug 10088) Update Georgian translations
Patch by Malafaya
........
r22597 | aaron | 2007-05-31 08:26:15 -0700 (Thu, 31 May 2007) | 1 line

*Restore oldimage schema changes removed temporarily in r21957 (with some index modifications)
........
r22598 | aaron | 2007-05-31 08:37:58 -0700 (Thu, 31 May 2007) | 1 line

*Add semicolon and \n
........
r22599 | aaron | 2007-05-31 08:41:01 -0700 (Thu, 31 May 2007) | 1 line

*cough*
........
r22600 | aaron | 2007-05-31 09:01:26 -0700 (Thu, 31 May 2007) | 1 line

*Add BeforeGalleryFindFile, TitleLinkUpdatesAfterCompletion, BeforeParserFetchTemplateAndtitle, BeforeParserMakeImageLinkObj, BeforeParserrenderImageGallery; make parser outputs and output page record images -> timestamps used and templates -> revision ids
........
r22602 | aaron | 2007-05-31 09:49:33 -0700 (Thu, 31 May 2007) | 1 line

*Use $this->requestedTime, $this->requestedTimestamp was floating around in some places, causing image conditions to be borked
........
r22603 | rotem | 2007-05-31 09:54:42 -0700 (Thu, 31 May 2007) | 1 line

Fix.
........
r22604 | aaron | 2007-05-31 10:15:44 -0700 (Thu, 31 May 2007) | 1 line

*Use null for time/rev ID for templates/images when they don't exist, rather than "get the one from jan 1, 1970" :)
........
r22608 | brion | 2007-05-31 14:30:32 -0700 (Thu, 31 May 2007) | 2 lines

Making a commit on the new server to test that it works...
........
r22609 | brion | 2007-05-31 14:39:25 -0700 (Thu, 31 May 2007) | 2 lines

Add a link to online docs... mainly testing the new svn server
........
r22610 | brion | 2007-05-31 14:52:00 -0700 (Thu, 31 May 2007) | 2 lines

Removing user.txt as redundant. The field information is in tables.sql docs, and the few bits about the object are more thoroughly documented on the class file docs.
........
r22611 | brion | 2007-05-31 14:54:35 -0700 (Thu, 31 May 2007) | 2 lines

Add newline at end of file. (Done mainly to test the new svn server, but it's nice eh?)
........
r22612 | brion | 2007-05-31 15:05:45 -0700 (Thu, 31 May 2007) | 2 lines

Remove a long-obsolete file, used by the ancient command-line installer. Testing new SVN server...
........
r22613 | brion | 2007-05-31 15:11:43 -0700 (Thu, 31 May 2007) | 2 lines

remove another obsolete experimental file, not used for anything. testing svn commit notifications...
........
r22614 | brion | 2007-05-31 15:21:36 -0700 (Thu, 31 May 2007) | 2 lines

note update frequency... testing SVN notification
........
r22615 | tstarling | 2007-05-31 16:09:36 -0700 (Thu, 31 May 2007) | 1 line

Added $wgArticleRobotPolicies
........
Modified paths:
  • /branches/liquidthreads (modified) (history)
  • /branches/liquidthreads/RELEASE-NOTES (modified) (history)
  • /branches/liquidthreads/docs/README (modified) (history)
  • /branches/liquidthreads/docs/schema.txt (modified) (history)
  • /branches/liquidthreads/docs/user.txt (deleted) (history)
  • /branches/liquidthreads/includes/Article.php (modified) (history)
  • /branches/liquidthreads/includes/DefaultSettings.php (modified) (history)
  • /branches/liquidthreads/includes/ImageGallery.php (modified) (history)
  • /branches/liquidthreads/includes/LinksUpdate.php (modified) (history)
  • /branches/liquidthreads/includes/OutputPage.php (modified) (history)
  • /branches/liquidthreads/includes/Parser.php (modified) (history)
  • /branches/liquidthreads/includes/ParserOutput.php (modified) (history)
  • /branches/liquidthreads/includes/filerepo/LocalFile.php (modified) (history)
  • /branches/liquidthreads/includes/filerepo/OldLocalFile.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesHe.php (modified) (history)
  • /branches/liquidthreads/languages/messages/MessagesKa.php (modified) (history)
  • /branches/liquidthreads/maintenance/README (modified) (history)
  • /branches/liquidthreads/maintenance/archives/patch-oi_metadata.sql (added) (history)
  • /branches/liquidthreads/maintenance/archives/patch-oi_metadata.sql (added) (history)
  • /branches/liquidthreads/maintenance/build-intl-wiki.sql (deleted) (history)
  • /branches/liquidthreads/maintenance/database.sql (deleted) (history)
  • /branches/liquidthreads/maintenance/ora/tables.sql (modified) (history)
  • /branches/liquidthreads/maintenance/postgres/tables.sql (modified) (history)
  • /branches/liquidthreads/maintenance/tables.sql (modified) (history)

Diff [purge]

Index: branches/liquidthreads/maintenance/database.sql
@@ -1,7 +0,0 @@
2 -
3 -DROP DATABASE IF EXISTS `{$wgDBname}`;
4 -CREATE DATABASE `{$wgDBname}`;
Index: branches/liquidthreads/maintenance/build-intl-wiki.sql
@@ -1,31 +0,0 @@
2 -
3 -CREATE DATABASE intl;
4 -
5 -GRANT DELETE,INSERT,SELECT,UPDATE ON intl.*
6 -TO wikiuser@'%' IDENTIFIED BY 'userpass';
7 -GRANT DELETE,INSERT,SELECT,UPDATE ON intl.*
8 -TO wikiuser@localhost IDENTIFIED BY 'userpass';
9 -GRANT DELETE,INSERT,SELECT,UPDATE ON intl.*
10 -TO wikiuser@localhost.localdomain IDENTIFIED BY 'userpass';
11 -
12 -USE intl;
13 -
14 -CREATE TABLE ilinks (
15 - lang_from varchar(5) default NULL,
16 - lang_to varchar(5) default NULL,
17 - title_from tinyblob,
18 - title_to tinyblob,
19 - target_exists tinyint(1) default NULL
20 -) TYPE=MyISAM;
21 -
22 -CREATE TABLE recentchanges (
23 - user_name tinyblob,
24 - user_lang varchar(5) default NULL,
25 - date timestamp(14) NOT NULL,
26 - message tinyblob
27 -) TYPE=MyISAM;
28 -
29 -
Index: branches/liquidthreads/maintenance/ora/tables.sql
@@ -244,9 +244,15 @@
245245 oi_description CLOB,
246246 oi_user INTEGER NULL REFERENCES mwuser(user_id) ON DELETE SET NULL,
247247 oi_user_text CLOB NOT NULL,
248 - oi_timestamp TIMESTAMP WITH TIME ZONE NOT NULL
 248+ oi_timestamp TIMESTAMP WITH TIME ZONE NOT NULL,
 249+ oi_metadata CLOB,
 250+ oi_media_type VARCHAR(10) DEFAULT NULL,
 251+ oi_major_mime VARCHAR(11) DEFAULT 'unknown',
 252+ oi_minor_mime VARCHAR(32) DEFAULT 'unknown',
 253+ oi_deleted INTEGER DEFAULT 0 NOT NULL
249254 );
250 -CREATE INDEX oi_name ON oldimage (oi_name);
 255+CREATE INDEX oi_name_timestamp ON oldimage (oi_name,oi_timestamp);
 256+CREATE INDEX oi_name_archive_name ON oldimage (oi_name,oi_archive_name);
251257
252258 CREATE SEQUENCE filearchive_fa_id_seq;
253259 CREATE TABLE filearchive (
Index: branches/liquidthreads/maintenance/archives/patch-oi_metadata.sql
@@ -0,0 +1,16 @@
 2+--
 3+-- patch-indexes.sql
 4+--
 5+-- Add data to allow for direct reference to old images
 6+-- They can be included into pages
 7+--
 8+
 9+ALTER TABLE /*$wgDBprefix*/oldimage
 10+ DROP INDEX oi_name,
 11+ ADD INDEX oi_name_timestamp (oi_name,oi_timestamp),
 12+ ADD INDEX oi_name_archive_name (oi_name,oi_archive_name),
 13+ ADD oi_metadata mediumblob NOT NULL,
 14+ ADD oi_media_type ENUM("UNKNOWN", "BITMAP", "DRAWING", "AUDIO", "VIDEO", "MULTIMEDIA", "OFFICE", "TEXT", "EXECUTABLE", "ARCHIVE") default NULL,
 15+ ADD oi_major_mime ENUM("unknown", "application", "audio", "image", "text", "video", "message", "model", "multipart") NOT NULL default "unknown",
 16+ ADD oi_minor_mime varchar(32) NOT NULL default "unknown",
 17+ ADD oi_deleted tinyint(1) unsigned NOT NULL default '0';
Index: branches/liquidthreads/maintenance/postgres/tables.sql
@@ -262,9 +262,15 @@
263263 oi_description TEXT,
264264 oi_user INTEGER NULL REFERENCES mwuser(user_id) ON DELETE SET NULL,
265265 oi_user_text TEXT NOT NULL,
266 - oi_timestamp TIMESTAMPTZ NOT NULL
 266+ oi_timestamp TIMESTAMPTZ NOT NULL,
 267+ oi_metadata BYTEA NOT NULL,
 268+ oi_media_type TEXT NULL,
 269+ oi_major_mime TEXT NOT NULL DEFAULT 'unknown',
 270+ oi_minor_mime TEXT NOT NULL DEFAULT 'unknown',
 271+ oi_deleted CHAR NOT NULL DEFAULT '0'
267272 );
268 -CREATE INDEX oi_name ON oldimage (oi_name);
 273+CREATE INDEX oi_name_timestamp ON oldimage (oi_name,oi_timestamp);
 274+CREATE INDEX oi_name_archive_name ON oldimage (oi_name,oi_archive_name);
269275
270276
271277 CREATE TABLE filearchive (
Index: branches/liquidthreads/maintenance/README
@@ -82,4 +82,4 @@
8383 Immediately complete all jobs in the job queue
8484
8585 update.php
86 - Check and upgrade the database schema to the current version
\ No newline at end of file
 86+ Check and upgrade the database schema to the current version
Index: branches/liquidthreads/maintenance/tables.sql
@@ -716,7 +716,14 @@
717717 oi_user_text varchar(255) binary NOT NULL,
718718 oi_timestamp char(14) binary NOT NULL default '',
719719
720 - INDEX oi_name (oi_name(10))
 720+ oi_metadata mediumblob NOT NULL,
 721+ oi_media_type ENUM("UNKNOWN", "BITMAP", "DRAWING", "AUDIO", "VIDEO", "MULTIMEDIA", "OFFICE", "TEXT", "EXECUTABLE", "ARCHIVE") default NULL,
 722+ oi_major_mime ENUM("unknown", "application", "audio", "image", "text", "video", "message", "model", "multipart") NOT NULL default "unknown",
 723+ oi_minor_mime varchar(32) NOT NULL default "unknown",
 724+ oi_deleted tinyint(1) unsigned NOT NULL default '0',
 725+
 726+ INDEX oi_name_timestamp (oi_name,oi_timestamp),
 727+ INDEX oi_name_archive_name (oi_name,oi_archive_name)
721728
722729 ) /*$wgDBTableOptions*/;
723730
Index: branches/liquidthreads/docs/user.txt
@@ -1,63 +0,0 @@
2 -
3 -user.txt
4 -
5 -Documenting the MediaWiki User object.
6 -
7 -(DISCLAIMER: The documentation is not guaranteed to be in sync with
8 -the code at all times. If in doubt, check the table definitions
9 -and User.php.)
10 -
11 -Database fields:
12 -
13 - user_id
14 - Unique integer identifier; primary key. Sent to user in
15 - cookie "{$wgDBname}UserID".
16 -
17 - user_name
18 - Text of full user name; title of "user:" page. Displayed
19 - on change lists, etc. Sent to user as cookie "{$wgDBname}UserName".
20 - Note that user names can contain spaces, while these are
21 - converted to underscores in page titles.
22 -
23 - user_rights
24 - Comma-separated list of rights. Right now, only "sysop",
25 - "developer", "bureaucrat", and "bot" have meaning.
26 -
27 - user_password
28 - Salted md5 hash of md5-hashed user login password. If user option to
29 - remember password is set, an md5 password hash is stored in cookie
30 - "{$wgDBname}UserPassword". The original password and the hashed password
31 - can be compared to the salted-hashed-hashed password.
32 -
33 - user_newpassword
34 - Hash for randomly generated password sent on 'send me a new password'.
35 - If a match is made on login, the new password will replace the old one.
36 -
37 - user_email
38 - User's e-mail address. (Optional, used for user-to-user
39 - e-mail and password recovery.)
40 -
41 - user_options
42 - A urlencoded string of name=value pairs to set various
43 - user options.
44 -
45 - user_touched
46 - Timestamp updated when the user logs in, changes preferences, alters
47 - watchlist, or when someone edits their user talk page or they clear
48 - the new-talk field by viewing it. Used to invalidate old cached pages
49 - from the user's browser cache.
50 -
51 - user_real_name
52 - "Real name" optionally used in some metadata lists.
53 -
54 -The user object encapsulates all of the settings, and clients
55 -classes use the getXXX() functions to access them. These functions
56 -do all the work of determining whether the user is logged in,
57 -whether the requested option can be satisfied from cookies or
58 -whether a database query is needed. Most of the settings needed
59 -for rendering normal pages are set in the cookie to minimize use
60 -of the database.
61 -
62 -Options
63 - The user_options field is a list of name-value pairs. The
64 - following option names are used at various points in the system:
Index: branches/liquidthreads/docs/schema.txt
@@ -4,3 +4,6 @@
55
66 That file has been commented with details of the usage for
77 each table and field.
 8+
 9+Historical information and some other notes are available at
 10+http://www.mediawiki.org/wiki/Manual:Database_layout
Index: branches/liquidthreads/docs/README
@@ -1,9 +1,9 @@
2 -[July 5th 2005]
 2+[May 31st 2007]
33
44 The 'docs' directory contain various text files that should help you
55 understand the most importants classes in MediaWiki.
66
7 -API documentation is sometime generated and uploaded at:
 7+API documentation is automatically generated and updated daily at:
88 http://svn.wikimedia.org/doc/
99
1010 You can get a fresh version using 'make doc' or mwdocgen.php
@@ -13,5 +13,5 @@
1414
1515 For end user / administrators, most of the documentation
1616 is located online at:
17 - http://meta.wikimedia.org/wiki/Help:Help
 17+ http://www.mediawiki.org/wiki/Project:Help
1818
Index: branches/liquidthreads/languages/messages/MessagesKa.php
@@ -193,7 +193,7 @@
194194
195195 # All link text and link target definitions of links into project namespace that get used by other message strings, with the exception of user group pages (see grouppage) and the disambiguation template definition (see disambiguations).
196196 'aboutsite' => '{{SITENAME}}-ის შესახებ',
197 -'aboutpage' => 'პროექტი:შესახებ',
 197+'aboutpage' => '{{ns:project}}:შესახებ',
198198 'bugreports' => 'ანგარიში შეცდომის შესახებ',
199199 'bugreportspage' => '{{ns:project}}:ანგარიში შეცდომის შესახებ',
200200 'currentevents' => 'ახალი ამბები',
@@ -215,6 +215,9 @@
216216
217217 'badaccess' => 'აკრძალული მოქმედება',
218218
 219+'versionrequired' => 'საჭიროა მედიავიკის ვერსია $1',
 220+'versionrequiredtext' => 'ამ გვერდის გამოსაყენებლად საჭიროა მედიავიკის ვერსია $1. იხილეთ [[{{ns:special}}:Version|ვერსიის გვერდი]].',
 221+
219222 'youhavenewmessages' => 'თქვენ გაქვთ $1 ($2).',
220223 'newmessageslink' => 'ახალი შეტყობინებები',
221224 'newmessagesdifflink' => 'განსხვავება უკანასკნელ მდგომარეობას შორის',
@@ -241,16 +244,39 @@
242245 'nstab-category' => 'კატეგორია',
243246
244247 # Login and logout pages
245 -'login' => 'შესვლა',
246 -'userlogin' => 'შესვლა / ანგარიშის გახსნა',
247 -'logout' => 'გასვლა',
248 -'userlogout' => 'გასვლა',
 248+'yourname' => 'მომხმარებელი:',
 249+'yourpassword' => 'პაროლი:',
 250+'yourpasswordagain' => 'ხელმეორედ შეიყვანეთ პაროლი:',
 251+'remembermypassword' => 'ჩემი მონაცემების დამახსოვრება',
 252+'yourdomainname' => 'თქვენი დომეინი:',
 253+'login' => 'შესვლა',
 254+'userlogin' => 'შესვლა / ანგარიშის გახსნა',
 255+'logout' => 'გასვლა',
 256+'userlogout' => 'გასვლა',
 257+'youremail' => 'ელექტრონული ფოსტა:',
 258+'username' => 'მომხმარებლის სახელი:',
 259+'uid' => 'მომხმარებლის იდენტიფიკატორი:',
 260+'yourrealname' => 'ნამდვილი სახელი:',
 261+'yourlanguage' => 'ენა:',
 262+'yourvariant' => 'ვარიანტი',
 263+'yournick' => 'მეტსახელი:',
 264+'noname' => 'თქვენს მიერ მითითებული მომხმარებლის სახელი ქმედითი არ არის.',
 265+'loginsuccesstitle' => 'შესვლა წარმატებით განხორციელდა',
 266+'loginsuccess' => "'''თქვენ ახლა შესული ხართ {{SITENAME}}ში როგორც \"\$1\".'''",
 267+'mailmypassword' => 'ახალი პაროლის გამოგზავნა',
 268+'accountcreated' => 'ანგარიში შეიქმნა',
 269+'accountcreatedtext' => '$1 მომხმარებლის ანგარიში შექმნილია.',
249270
 271+# Password reset dialog
 272+'resetpass_text' => '<!-- დამატებითი ტექსტი აქ -->',
 273+'resetpass_header' => 'გაიმეორეთ პაროლი',
 274+
250275 # Diffs
251276 'difference' => '(სხვაობა ვერსიებს შორის)',
252277 'lineno' => 'ხაზი $1:',
253278 'editcurrent' => 'ამ გვერდის ამჟამინდელი ვერსიის რედაქტირება',
254279 'compareselectedversions' => 'არჩეული ვერსიების შედარება',
 280+'editundo' => 'გაუქმება',
255281
256282 # Search results
257283 'blanknamespace' => '(მთავარი)',
@@ -260,6 +286,7 @@
261287 'mypreferences' => 'ჩემი კონფიგურაცია',
262288 'qbsettings' => 'სწრაფი ზოლი',
263289 'changepassword' => 'პაროლის შეცვლა',
 290+'math' => 'მათ',
264291 'dateformat' => 'თარიღის ფორმატი',
265292 'datetime' => 'თარიღი და დრო',
266293 'prefs-personal' => 'მომხმარებლის მონაცემები',
@@ -276,7 +303,11 @@
277304 'contextlines' => 'სტრიქონები შედეგის მიხედვით:',
278305 'contextchars' => 'კონტექსტი სტრიქონების მიხედვით:',
279306 'savedprefs' => 'თქვენს მიერ შერჩეული პარამეტრები დამახსოვრებულია.',
 307+'timezonelegend' => 'დროის ზონა',
 308+'timezonetext' => 'საათების რაოდენობა, რომლითაც თქვენი ადგილობრივი დრო განსხვავდება სერვერის დროისაგან (UTC).',
280309 'localtime' => 'ლოკალური დრო',
 310+'timezoneoffset' => 'ოფსეტი¹',
 311+'servertime' => 'სერვერის დრო',
281312 'guesstimezone' => 'ბრაუზერიდან შევსება',
282313 'allowemail' => 'შესაძლებელია ელ. წერილების მიღება სხვა მომხმარებლებისაგან',
283314 'defaultns' => 'სტანდარტული ძიება ამ სახელთა სივრცეებში:',
@@ -321,8 +352,20 @@
322353 'recentchangeslinked' => 'დაკავშირებული ცვლილებები',
323354
324355 # Upload
325 -'upload' => 'ფაილის დამატება',
326 -'uploadbtn' => 'ფაილის დამატება',
 356+'upload' => 'ფაილის დამატება',
 357+'uploadbtn' => 'ფაილის დამატება',
 358+'filename' => 'ფაილის სახელი',
 359+'filedesc' => 'მოკლე აღწერილობა',
 360+'fileuploadsummary' => 'მოკლე აღწერა:',
 361+'filestatus' => 'საავტორო უფლებების სტატუსი',
 362+'filesource' => 'წყარო',
 363+'fileuploaded' => 'ფაილი $1 წარმატებულად ჩაიტვირთა.
 364+თუ შეიძლება, გახსენით აღწერილობის გვერდი ამ ბმულის მეშვეობით: $2 და შეავსეთ
 365+იგი შემდეგი ხასიათის ინფორმაციით ფაილის შესახებ: წყარო, შექმნის თარიღი და ავტორი, და
 366+ნებისმიერი სხვა მონაცემით, რომელიც ფაილთან დაკავშირებით გაქვთ.
 367+თუ ფაილი სურათია, მაშინ შეგიძლიათ ჩატვირთოთ იგი შემდეგნაირად: <tt><nowiki>[[</nowiki>{{ns:image}}<nowiki>:$1|thumb|აღწერილობა]]</nowiki></tt>',
 368+'uploadwarning' => 'გადატვირთვის შეხსენება',
 369+'uploadvirus' => 'ფაილი ვირუსს შეიცავს! დეტალები: $1',
327370
328371 # Image list
329372 'imagelist' => 'ფაილების სია',
@@ -413,8 +456,12 @@
414457 'mywatchlist' => 'ჩემი კონტროლის სია',
415458 'watch' => 'კონტროლი',
416459
 460+# Delete/protect/revert
 461+'restriction-type' => 'უფლება:',
 462+
417463 # Restrictions (nouns)
418464 'restriction-edit' => 'რედაქტირება',
 465+'restriction-move' => 'გადატანა',
419466
420467 # Undelete
421468 'undelete' => 'აჩვენე წაშლილი გვერდები',
@@ -444,7 +491,8 @@
445492 'cannotundelete' => 'აღდგენა ვერ შედგა; შესაძლოა უკვე ვიღაცამ აღადგინა ეს გვერდი.',
446493 'undeletedpage' => "<big>'''$1 აღდგენილია'''</big>
447494
448 -უკანასკნელი წაშლილთა და აღდგენის სია შეგიძლიათ ნახოთ [[Special:Log/delete|წაშლილთა სიაში]].",
 495+უკანასკნელი წაშლილთა და აღდგენის სია შეგიძლიათ ნახოთ [[{{ns:special}}:Log/delete|წაშლილთა სიაში]].",
 496+'undelete-search-box' => 'წაშლილი გვერდების ძიება',
449497 'undelete-search-submit' => 'ძიება',
450498
451499 # Namespace form on various pages
@@ -462,6 +510,12 @@
463511 ამ ფუნქციის შესასრულებლად.',
464512 'nolinkshere' => "'''[[:$1]]'''-ზე ბმული არ არის.",
465513
 514+# Block/unblock
 515+'blocklink' => 'ბლოკირება',
 516+'unblocklink' => 'ბლოკი მოხსენი',
 517+'contribslink' => 'წვლილი',
 518+'autoblocker' => 'თქვენ ავტომატურად ბლოკირებული ხართ, ვინაიდან თქვენი IP მისამართი ახლახან იქნა გამოყენებული "[[{{ns:user}}:$1|$1]]"–ის მიერ. $1-ის ბლოკირების მიზეზი: "$2"',
 519+
466520 # Move page
467521 'movepage' => 'გვერდის გადატანა',
468522 'movearticle' => 'გვერდის გადატანა',
@@ -479,6 +533,7 @@
480534 '1movedto2_redir' => '[[$1]] გადატანილია [[$2]]-ზე გადამისამართებულ გვერდში',
481535 'movelogpage' => 'გადატანის ჟურნალი',
482536 'movereason' => 'მიზეზი',
 537+'revertmove' => 'გაუქმება',
483538 'delete_and_move' => 'წაშლა და გადატანა',
484539 'delete_and_move_text' => '==საჭიროა წაშლა==
485540
@@ -509,8 +564,19 @@
510565 'others' => 'სხვები',
511566 'siteusers' => '{{SITENAME}} მომხმარებლები $1',
512567
 568+# Media information
 569+'file-info' => '(ფაილის ზომა: $1, MIME ტიპი: $2)',
 570+'file-info-size' => '($1 × $2 პიქსელი, ფაილის ზომა: $3, MIME ტიპი: $4)',
 571+
513572 'passwordtooshort' => 'თქვენი პაროლი ძალიან მოკლეა. მასში უნდა შედიოდეს არანაკლებ $1 ასო-ნიშანი.',
514573
 574+# Metadata
 575+'metadata' => 'მეტამონაცემები',
 576+
 577+# EXIF tags
 578+'exif-compression' => 'შეკუმშვის მეთოდი',
 579+'exif-usercomment' => 'მომხმარებლის შენიშვნები',
 580+
515581 # 'all' in various places, this might be different for inflected languages
516582 'recentchangesall' => 'ყველა',
517583 'imagelistall' => 'ყველა',
@@ -524,7 +590,7 @@
525591 'createarticle' => 'სტატიის შექმნა',
526592
527593 # Delete conflict
528 -'deletedwhileediting' => "[[მომხმარებელი:$1|$1]] მომხმარებელმა ([[მომხმარებელი განხილვა:$1|განხილვა]]) წაშალა თქვენი რედაქტირების შემდეგ. მიზეზი:
 594+'deletedwhileediting' => "[[{{ns:user}}:$1|$1]] მომხმარებელმა ([[{{ns:user_talk}}:$1|განხილვა]]) წაშალა თქვენი რედაქტირების შემდეგ. მიზეზი:
529595 : ''$2''
530596 გთხოვთ დაადასტუროთ რომ ნამდვილად გსურთ ამ გვერდის თავიდან შექმნა.",
531597
Index: branches/liquidthreads/languages/messages/MessagesHe.php
@@ -1465,7 +1465,7 @@
14661466 'undeletecomment' => 'תקציר:',
14671467 'undeletedarticle' => 'שחזר את "[[$1]]"',
14681468 'undeletedrevisions' => 'שחזר {{plural:$1|גרסה אחת|$1 גרסאות}}',
1469 -'undeletedrevisions-files' => 'שחזר {{plural:$1|גרסה אחת|$1 גרסאות}} ו{{plural:$2|קובץ אחד|־$2 קבצים}}$2 קבצים',
 1469+'undeletedrevisions-files' => 'שחזר {{plural:$1|גרסה אחת|$1 גרסאות}} ו{{plural:$2|קובץ אחד|־$2 קבצים}}',
14701470 'undeletedfiles' => 'שחזר {{plural:$1|קובץ אחד|$1 קבצים}}',
14711471 'cannotundelete' => 'השחזור נכשל; ייתכן שמישהו אחר כבר שחזר את הדף.',
14721472 'undeletedpage' => "'''הדף $1 שוחזר בהצלחה.'''
Index: branches/liquidthreads/includes/LinksUpdate.php
@@ -76,6 +76,7 @@
7777 } else {
7878 $this->doIncrementalUpdate();
7979 }
 80+ wfRunHooks( 'TitleLinkUpdatesAfterCompletion', array( &$this->mTitle ) );
8081 }
8182
8283 function doIncrementalUpdate() {
Index: branches/liquidthreads/includes/ImageGallery.php
@@ -17,6 +17,7 @@
1818 var $mImages, $mShowBytes, $mShowFilename;
1919 var $mCaption = false;
2020 var $mSkin = false;
 21+ var $mRevisionId = 0;
2122
2223 /**
2324 * Is the gallery on a wiki page (i.e. not a special page)
@@ -201,8 +202,12 @@
202203 foreach ( $this->mImages as $pair ) {
203204 $nt = $pair[0];
204205 $text = $pair[1];
 206+
 207+ # Give extensions a chance to select the file revision for us
 208+ $time = false;
 209+ wfRunHooks( 'BeforeGalleryFindFile', array( &$this, &$nt, &$time ) );
205210
206 - $img = wfFindFile( $nt );
 211+ $img = wfFindFile( $nt, $time );
207212
208213 if( $nt->getNamespace() != NS_IMAGE || !$img ) {
209214 # We're dealing with a non-image, spit out the name and be done with it.
Index: branches/liquidthreads/includes/Article.php
@@ -608,7 +608,7 @@
609609 function view() {
610610 global $wgUser, $wgOut, $wgRequest, $wgContLang;
611611 global $wgEnableParserCache, $wgStylePath, $wgUseRCPatrol, $wgParser;
612 - global $wgUseTrackbacks, $wgNamespaceRobotPolicies;
 612+ global $wgUseTrackbacks, $wgNamespaceRobotPolicies, $wgArticleRobotPolicies;
613613 $sk = $wgUser->getSkin();
614614
615615 wfProfileIn( __METHOD__ );
@@ -636,6 +636,8 @@
637637 # Discourage indexing of printable versions, but encourage following
638638 if( $wgOut->isPrintable() ) {
639639 $policy = 'noindex,follow';
 640+ } elseif ( isset( $wgArticleRobotPolicies[$this->mTitle->getPrefixedText()] ) ) {
 641+ $policy = $wgArticleRobotPolicies[$this->mTitle->getPrefixedText()];
640642 } elseif( isset( $wgNamespaceRobotPolicies[$ns] ) ) {
641643 # Honour customised robot policies for this namespace
642644 $policy = $wgNamespaceRobotPolicies[$ns];
Index: branches/liquidthreads/includes/ParserOutput.php
@@ -14,7 +14,9 @@
1515 $mTitleText, # title text of the chosen language variant
1616 $mLinks, # 2-D map of NS/DBK to ID for the links in the document. ID=zero for broken.
1717 $mTemplates, # 2-D map of NS/DBK to ID for the template references. ID=zero for broken.
 18+ $mTemplateIds, # 2-D map of NS/DBK to rev ID for the template references. ID=zero for broken.
1819 $mImages, # DB keys of the images used, in the array key only
 20+ $mImageTimestamps, # Map of DBK to rev ID for the template references. ID=zero for broken.
1921 $mExternalLinks, # External link URLs, in the key only
2022 $mHTMLtitle, # Display HTML title
2123 $mSubtitle, # Additional subtitle
@@ -41,10 +43,12 @@
4244 $this->mNewSection = false;
4345 $this->mNoGallery = false;
4446 $this->mHeadItems = array();
 47+ $this->mTemplateIds = array();
 48+ $this->mImageTimestamps = array();
4549 }
4650
4751 function getText() { return $this->mText; }
48 - function &getLanguageLinks() { return $this->mLanguageLinks; }
 52+ function &getLanguageLinks() { return $this->mLanguageLinks; }
4953 function getCategoryLinks() { return array_keys( $this->mCategories ); }
5054 function &getCategories() { return $this->mCategories; }
5155 function getCacheTime() { return $this->mCacheTime; }
@@ -66,7 +70,6 @@
6771 function setSubtitle( $st ) { return wfSetVar( $this->mSubtitle, $st ); }
6872
6973 function addCategory( $c, $sort ) { $this->mCategories[$c] = $sort; }
70 - function addImage( $name ) { $this->mImages[$name] = 1; }
7174 function addLanguageLink( $t ) { $this->mLanguageLinks[] = $t; }
7275 function addExternalLink( $url ) { $this->mExternalLinks[$url] = 1; }
7376
@@ -88,14 +91,33 @@
8992 }
9093 $this->mLinks[$ns][$dbk] = $id;
9194 }
 95+
 96+ function addImage( $name, $timestamp=NULL ) {
 97+ if( isset($this->mImages[$name]) )
 98+ return; // No repeated pointless DB calls!
 99+ $this->mImages[$name] = 1;
 100+ if( is_null($timestamp) ) {
 101+ wfProfileIn( __METHOD__ );
 102+ $dbr = wfGetDB(DB_SLAVE);
 103+ $timestamp = $dbr->selectField('image', 'img_timestamp',
 104+ array('img_name' => $name),
 105+ __METHOD__ );
 106+ }
 107+ $timestamp = $timestamp ? $timestamp : null;
 108+ $this->mImageTimestamps[$name] = $timestamp; // For versioning
 109+ }
92110
93 - function addTemplate( $title, $id ) {
 111+ function addTemplate( $title, $page_id, $rev_id ) {
94112 $ns = $title->getNamespace();
95113 $dbk = $title->getDBkey();
96114 if ( !isset( $this->mTemplates[$ns] ) ) {
97115 $this->mTemplates[$ns] = array();
98116 }
99 - $this->mTemplates[$ns][$dbk] = $id;
 117+ $this->mTemplates[$ns][$dbk] = $page_id;
 118+ if ( !isset( $this->mTemplateIds[$ns] ) ) {
 119+ $this->mTemplateIds[$ns] = array();
 120+ }
 121+ $this->mTemplateIds[$ns][$dbk] = $rev_id; // For versioning
100122 }
101123
102124 /**
Index: branches/liquidthreads/includes/OutputPage.php
@@ -54,6 +54,8 @@
5555 $this->mETag = false;
5656 $this->mRevisionId = null;
5757 $this->mNewSectionLink = false;
 58+ $this->mTemplateIds = array();
 59+ $this->mImageTimestamps = array();
5860 }
5961
6062 public function redirect( $url, $responsecode = '302' ) {
@@ -387,6 +389,10 @@
388390 }
389391 $this->mNoGallery = $parserOutput->getNoGallery();
390392 $this->mHeadItems = array_merge( $this->mHeadItems, (array)$parserOutput->mHeadItems );
 393+ // Versioning...
 394+ $this->mTemplateIds += (array)$parserOutput->mTemplateIds;
 395+ $this->mImageTimestamps += (array)$parserOutput->mImageTimestamps;
 396+
391397 wfRunHooks( 'OutputPageParserOutput', array( &$this, $parserOutput ) );
392398 }
393399
Index: branches/liquidthreads/includes/filerepo/OldLocalFile.php
@@ -156,10 +156,10 @@
157157 wfProfileIn( __METHOD__ );
158158 $dbr = $this->repo->getSlaveDB();
159159 $conds = array( 'oi_name' => $this->getName() );
160 - if ( is_null( $this->requestedTimestamp ) ) {
 160+ if ( is_null( $this->requestedTime ) ) {
161161 $conds['oi_archive_name'] = $this->archive_name;
162162 } else {
163 - $conds[] = 'oi_timestamp <= ' . $dbr->addQuotes( $this->requestedTimestamp );
 163+ $conds[] = 'oi_timestamp <= ' . $dbr->addQuotes( $this->requestedTime );
164164 }
165165 $row = $dbr->selectRow( 'oldimage', $this->getCacheFields( 'oi_' ),
166166 $conds, __METHOD__, array( 'ORDER BY' => 'oi_timestamp DESC' ) );
Index: branches/liquidthreads/includes/filerepo/LocalFile.php
@@ -1211,7 +1211,6 @@
12121212 wfTimestamp( TS_MW, $row->fa_deleted_timestamp ) .
12131213 '!' . $row->fa_name;
12141214 }
1215 - $restoredImage = new self( $row->fa_name, $this->repo );
12161215 $destDir = $restoredImage->getArchivePath();
12171216 if ( !is_dir( $destDir ) ) {
12181217 wfMkdirParents( $destDir );
Index: branches/liquidthreads/includes/Parser.php
@@ -400,12 +400,15 @@
401401 * Expand templates and variables in the text, producing valid, static wikitext.
402402 * Also removes comments.
403403 */
404 - function preprocess( $text, $title, $options ) {
 404+ function preprocess( $text, $title, $options, $revid = null ) {
405405 wfProfileIn( __METHOD__ );
406406 $this->clearState();
407407 $this->setOutputType( OT_PREPROCESS );
408408 $this->mOptions = $options;
409409 $this->mTitle = $title;
 410+ if( $revid !== null ) {
 411+ $this->mRevisionId = $revid;
 412+ }
410413 wfRunHooks( 'ParserBeforeStrip', array( &$this, &$text, &$this->mStripState ) );
411414 $text = $this->strip( $text, $this->mStripState );
412415 wfRunHooks( 'ParserAfterStrip', array( &$this, &$text, &$this->mStripState ) );
@@ -3264,13 +3267,25 @@
32653268 * Fetch the unparsed text of a template and register a reference to it.
32663269 */
32673270 function fetchTemplateAndtitle( $title ) {
3268 - $text = false;
 3271+ $text = $skip = false;
32693272 $finalTitle = $title;
32703273 // Loop to fetch the article, with up to 1 redirect
32713274 for ( $i = 0; $i < 2 && is_object( $title ); $i++ ) {
3272 - $rev = Revision::newFromTitle( $title );
3273 - $this->mOutput->addTemplate( $title, $title->getArticleID() );
3274 - if ( $rev ) {
 3275+ # Give extensions a chance to select the revision instead
 3276+ $id = false; // Assume current
 3277+ wfRunHooks( 'BeforeParserFetchTemplateAndtitle', array( &$this, &$title, &$skip, &$id ) );
 3278+
 3279+ if( $skip ) {
 3280+ $text = false;
 3281+ $this->mOutput->addTemplate( $title, $title->getArticleID(), null );
 3282+ break;
 3283+ }
 3284+ $rev = $id ? Revision::newFromId( $id ) : Revision::newFromTitle( $title );
 3285+ $rev_id = $rev ? $rev->getId() : 0;
 3286+
 3287+ $this->mOutput->addTemplate( $title, $title->getArticleID(), $rev_id );
 3288+
 3289+ if( $rev ) {
32753290 $text = $rev->getText();
32763291 } elseif( $title->getNamespace() == NS_MEDIAWIKI ) {
32773292 global $wgLang;
@@ -4124,7 +4139,7 @@
41254140 }
41264141
41274142 // process categories, check if a category exists in some variant
4128 - foreach( $categories as $category){
 4143+ foreach( $categories as $category ){
41294144 $variants = $wgContLang->convertLinkToAllVariants($category);
41304145 foreach($variants as $variant){
41314146 if($variant != $category){
@@ -4346,6 +4361,7 @@
43474362 $ig->setShowFilename( false );
43484363 $ig->setParsing();
43494364 $ig->useSkin( $this->mOptions->getSkin() );
 4365+ $ig->mRevisionId = $this->mRevisionId;
43504366
43514367 if( isset( $params['caption'] ) ) {
43524368 $caption = $params['caption'];
@@ -4362,6 +4378,8 @@
43634379 if( isset( $params['heights'] ) ) {
43644380 $ig->setHeights( $params['heights'] );
43654381 }
 4382+
 4383+ wfRunHooks( 'BeforeParserrenderImageGallery', array( &$this, &$ig ) );
43664384
43674385 $lines = explode( "\n", $text );
43684386 foreach ( $lines as $line ) {
@@ -4510,8 +4528,18 @@
45114529 $alt = $this->mStripState->unstripBoth( $alt );
45124530 $alt = Sanitizer::stripAllTags( $alt );
45134531
 4532+ # Give extensions a chance to select the file revision for us
 4533+ $skip = $time = false;
 4534+ wfRunHooks( 'BeforeParserMakeImageLinkObj', array( &$this, &$nt, &$skip, &$time ) );
 4535+
45144536 # Linker does the rest
4515 - return $sk->makeImageLinkObj( $nt, $caption, $alt, $align, $params, $framed, $thumb, $manual_thumb, $valign );
 4537+ if( $skip ) {
 4538+ $link = $sk->makeLinkObj( $nt );
 4539+ } else {
 4540+ $link = $sk->makeImageLinkObj( $nt, $caption, $alt, $align, $params, $framed, $thumb, $manual_thumb, $valign, $time );
 4541+ }
 4542+
 4543+ return $link;
45164544 }
45174545
45184546 /**
Index: branches/liquidthreads/includes/DefaultSettings.php
@@ -2268,6 +2268,16 @@
22692269 $wgNamespaceRobotPolicies = array();
22702270
22712271 /**
 2272+ * Robot policies per article.
 2273+ * These override the per-namespace robot policies.
 2274+ * Must be in the form of an array where the key part is a properly
 2275+ * canonicalised text form title and the value is a robot policy.
 2276+ * Example:
 2277+ * $wgArticleRobotPolicies = array( 'Main Page' => 'noindex' );
 2278+ */
 2279+$wgArticleRobotPolicies = array();
 2280+
 2281+/**
22722282 * Specifies the minimal length of a user password. If set to
22732283 * 0, empty passwords are allowed.
22742284 */
Index: branches/liquidthreads/RELEASE-NOTES
@@ -48,6 +48,7 @@
4949 * Added a Content-Disposition header to thumb.php output
5050 * Improved thumb.php error handling
5151 * Display file history on local image description pages of shared images
 52+* Added $wgArticleRobotPolicies
5253
5354
5455 == Bugfixes since 1.10 ==
Property changes on: branches/liquidthreads
___________________________________________________________________
Modified: svnmerge-integrated
5556 - /trunk/phase3:1-22586
5657 + /trunk/phase3:1-22618

Past revisions this follows-up on

RevisionCommit summaryAuthorDate
r21957Revert schema changes in r21954, 21955, 21956 for the momentbrion16:24, 7 May 2007
r22589*Title fixaaron04:10, 31 May 2007
r22596* (bug 10088) Update Georgian translations...raymond14:56, 31 May 2007
r22597*Restore oldimage schema changes removed temporarily in r21957 (with some ind...aaron15:26, 31 May 2007
r22598*Add semicolon and \naaron15:37, 31 May 2007
r22599*cough*aaron15:41, 31 May 2007
r22600*Add BeforeGalleryFindFile, TitleLinkUpdatesAfterCompletion, BeforeParserFetc...aaron16:01, 31 May 2007
r22602*Use $this->requestedTime, $this->requestedTimestamp was floating around in s...aaron16:49, 31 May 2007
r22603Fix.rotem16:54, 31 May 2007
r22604*Use null for time/rev ID for templates/images when they don't exist, rather ...aaron17:15, 31 May 2007
r22608Making a commit on the new server to test that it works...brion21:30, 31 May 2007
r22609Add a link to online docs... mainly testing the new svn serverbrion21:39, 31 May 2007
r22610Removing user.txt as redundant. The field information is in tables.sql docs, ...brion21:52, 31 May 2007
r22611Add newline at end of file. (Done mainly to test the new svn server, but it's...brion21:54, 31 May 2007
r22612Remove a long-obsolete file, used by the ancient command-line installer. Test...brion22:05, 31 May 2007
r22613remove another obsolete experimental file, not used for anything. testing svn...brion22:11, 31 May 2007
r22614note update frequency... testing SVN notificationbrion22:21, 31 May 2007
r22615Added $wgArticleRobotPolicieststarling23:09, 31 May 2007