Index: branches/REL1_17/phase3/maintenance/install.php |
— | — | @@ -63,22 +63,14 @@ |
64 | 64 | $installer = |
65 | 65 | new CliInstaller( $siteName, $adminName, $this->mOptions ); |
66 | 66 | |
67 | | - if ( $this->hasOption( 'env-checks' ) ) { |
68 | | - $status = $installer->doEnvironmentChecks(); |
69 | | - if( $status->isGood() ) { |
70 | | - $installer->showMessage( 'config-env-good' ); |
71 | | - } else { |
72 | | - $installer->showStatusMessage( $status ); |
73 | | - return; |
74 | | - } |
| 67 | + $status = $installer->doEnvironmentChecks(); |
| 68 | + if( $status->isGood() ) { |
| 69 | + $installer->showMessage( 'config-env-good' ); |
75 | 70 | } else { |
76 | | - $status = $installer->doEnvironmentChecks(); |
77 | | - if( $status->isGood() ) { |
78 | | - $installer->showMessage( 'config-env-good' ); |
79 | | - } else { |
80 | | - $installer->showStatusMessage( $status ); |
81 | | - return; |
82 | | - } |
| 71 | + $installer->showStatusMessage( $status ); |
| 72 | + return; |
| 73 | + } |
| 74 | + if( !$this->hasOption( 'env-checks' ) ) { |
83 | 75 | $installer->execute(); |
84 | 76 | $installer->writeConfigurationFile( $this->getOption( 'confpath', $IP ) ); |
85 | 77 | } |
Property changes on: branches/REL1_17/phase3/maintenance/install.php |
___________________________________________________________________ |
Modified: svn:mergeinfo |
86 | 78 | Merged /trunk/phase3/maintenance/install.php:r84431,84464,84543,84553,84573-84574,84577,84579,84729,84765,84820,84846,84905,84985,85032,85140,85143,85152,85178,85194,85199 |
Index: branches/REL1_17/phase3/includes/upload/UploadBase.php |
— | — | @@ -402,7 +402,7 @@ |
403 | 403 | } |
404 | 404 | $permErrors = $nt->getUserPermissionsErrors( 'edit', $user ); |
405 | 405 | $permErrorsUpload = $nt->getUserPermissionsErrors( 'upload', $user ); |
406 | | - if ( $nt->exists() ) { |
| 406 | + if ( !$nt->exists() ) { |
407 | 407 | $permErrorsCreate = $nt->getUserPermissionsErrors( 'createpage', $user ); |
408 | 408 | } else { |
409 | 409 | $permErrorsCreate = array(); |
Property changes on: branches/REL1_17/phase3/includes/upload/UploadBase.php |
___________________________________________________________________ |
Modified: svn:mergeinfo |
410 | 410 | Merged /trunk/phase3/includes/upload/UploadBase.php:r84431,84464,84543,84553,84573-84574,84577,84579,84729,84765,84820,84846,84905,84985,85032,85140,85143,85152,85178,85194,85199 |
Index: branches/REL1_17/phase3/includes/Article.php |
— | — | @@ -1406,7 +1406,7 @@ |
1407 | 1407 | if ( !$this->hasViewableContent() ) { |
1408 | 1408 | // If there's no backing content, send a 404 Not Found |
1409 | 1409 | // for better machine handling of broken links. |
1410 | | - $wgRequest->response()->header( "HTTP/1.x 404 Not Found" ); |
| 1410 | + $wgRequest->response()->header( "HTTP/1.1 404 Not Found" ); |
1411 | 1411 | } |
1412 | 1412 | |
1413 | 1413 | $wgOut->addWikiText( $text ); |
Property changes on: branches/REL1_17/phase3/includes/Article.php |
___________________________________________________________________ |
Modified: svn:mergeinfo |
1414 | 1414 | Merged /trunk/phase3/includes/Article.php:r84431,84464,84543,84553,84573-84574,84577,84579,84729,84765,84820,84846,84905,84985,85032,85140,85143,85152,85178,85194,85199 |
Index: branches/REL1_17/phase3/includes/ImagePage.php |
— | — | @@ -503,6 +503,11 @@ |
504 | 504 | } |
505 | 505 | $wgOut->setRobotPolicy( 'noindex,nofollow' ); |
506 | 506 | $wgOut->wrapWikiMsg( "<div id='mw-imagepage-nofile' class='plainlinks'>\n$1\n</div>", $nofile ); |
| 507 | + if ( !$this->getID() ) { |
| 508 | + // If there is no image, no shared image, and no description page, |
| 509 | + // output a 404, to be consistent with articles. |
| 510 | + $wgRequest->response()->header( "HTTP/1.1 404 Not Found" ); |
| 511 | + } |
507 | 512 | } |
508 | 513 | } |
509 | 514 | |
Index: branches/REL1_17/phase3/includes/ChangeTags.php |
— | — | @@ -169,8 +169,8 @@ |
170 | 170 | |
171 | 171 | $html = implode( ' ', $data ); |
172 | 172 | $html .= "\n" . Xml::element( 'input', array( 'type' => 'submit', 'value' => wfMsg( 'tag-filter-submit' ) ) ); |
173 | | - $html .= "\n" . Html::hidden( 'title', $wgTitle-> getPrefixedText() ); |
174 | | - $html = Xml::tags( 'form', array( 'action' => $wgTitle->getLocalURL(), 'method' => 'get' ), $html ); |
| 173 | + $html .= "\n" . Html::hidden( 'title', $title->getPrefixedText() ); |
| 174 | + $html = Xml::tags( 'form', array( 'action' => $title->getLocalURL(), 'method' => 'get' ), $html ); |
175 | 175 | |
176 | 176 | return $html; |
177 | 177 | } |
Index: branches/REL1_17/phase3/includes/filerepo/LocalFile.php |
— | — | @@ -850,8 +850,9 @@ |
851 | 851 | /** |
852 | 852 | * Record a file upload in the upload log and the image table |
853 | 853 | */ |
854 | | - function recordUpload2( $oldver, $comment, $pageText, $props = false, $timestamp = false, $user = null ) |
855 | | - { |
| 854 | + function recordUpload2( |
| 855 | + $oldver, $comment, $pageText, $props = false, $timestamp = false, $user = null |
| 856 | + ) { |
856 | 857 | if ( is_null( $user ) ) { |
857 | 858 | global $wgUser; |
858 | 859 | $user = $wgUser; |
— | — | @@ -864,10 +865,14 @@ |
865 | 866 | $props = $this->repo->getFileProps( $this->getVirtualUrl() ); |
866 | 867 | } |
867 | 868 | |
| 869 | + if ( $timestamp === false ) { |
| 870 | + $timestamp = $dbw->timestamp(); |
| 871 | + } |
| 872 | + |
868 | 873 | $props['description'] = $comment; |
869 | 874 | $props['user'] = $user->getId(); |
870 | 875 | $props['user_text'] = $user->getName(); |
871 | | - $props['timestamp'] = wfTimestamp( TS_MW ); |
| 876 | + $props['timestamp'] = wfTimestamp( TS_MW, $timestamp ); // DB -> TS_MW |
872 | 877 | $this->setProps( $props ); |
873 | 878 | |
874 | 879 | # Delete thumbnails |
— | — | @@ -884,10 +889,6 @@ |
885 | 890 | |
886 | 891 | $reupload = false; |
887 | 892 | |
888 | | - if ( $timestamp === false ) { |
889 | | - $timestamp = $dbw->timestamp(); |
890 | | - } |
891 | | - |
892 | 893 | # Test to see if the row exists using INSERT IGNORE |
893 | 894 | # This avoids race conditions by locking the row until the commit, and also |
894 | 895 | # doesn't deadlock. SELECT FOR UPDATE causes a deadlock for every race condition. |
Index: branches/REL1_17/phase3/includes/filerepo/FileRepo.php |
— | — | @@ -193,12 +193,13 @@ |
194 | 194 | if ( $time ) { |
195 | 195 | if ( $this->oldFileFactoryKey ) { |
196 | 196 | return call_user_func( $this->oldFileFactoryKey, $sha1, $this, $time ); |
197 | | - } else { |
198 | | - return false; |
199 | 197 | } |
200 | 198 | } else { |
201 | | - return call_user_func( $this->fileFactoryKey, $sha1, $this ); |
| 199 | + if ( $this->fileFactoryKey ) { |
| 200 | + return call_user_func( $this->fileFactoryKey, $sha1, $this ); |
| 201 | + } |
202 | 202 | } |
| 203 | + return false; |
203 | 204 | } |
204 | 205 | |
205 | 206 | /** |
— | — | @@ -228,7 +229,7 @@ |
229 | 230 | # Now try an old version of the file |
230 | 231 | if ( $time !== false ) { |
231 | 232 | $img = $this->newFileFromKey( $sha1, $time ); |
232 | | - if ( $img->exists() ) { |
| 233 | + if ( $img && $img->exists() ) { |
233 | 234 | if ( !$img->isDeleted(File::DELETED_FILE) ) { |
234 | 235 | return $img; |
235 | 236 | } else if ( !empty( $options['private'] ) && $img->userCan(File::DELETED_FILE) ) { |
Index: branches/REL1_17/phase3/includes/filerepo/LocalRepo.php |
— | — | @@ -14,7 +14,9 @@ |
15 | 15 | */ |
16 | 16 | class LocalRepo extends FSRepo { |
17 | 17 | var $fileFactory = array( 'LocalFile', 'newFromTitle' ); |
| 18 | + var $fileFactoryKey = array( 'LocalFile', 'newFromKey' ); |
18 | 19 | var $oldFileFactory = array( 'OldLocalFile', 'newFromTitle' ); |
| 20 | + var $oldFileFactoryKey = array( 'OldLocalFile', 'newFromKey' ); |
19 | 21 | var $fileFromRowFactory = array( 'LocalFile', 'newFromRow' ); |
20 | 22 | var $oldFileFromRowFactory = array( 'OldLocalFile', 'newFromRow' ); |
21 | 23 | |
Index: branches/REL1_17/phase3/includes/installer/Installer.php |
— | — | @@ -822,7 +822,7 @@ |
823 | 823 | $this->showMessage( 'config-gd' ); |
824 | 824 | return true; |
825 | 825 | } else { |
826 | | - $this->showMessage( 'no-scaling' ); |
| 826 | + $this->showMessage( 'config-no-scaling' ); |
827 | 827 | } |
828 | 828 | } |
829 | 829 | |
Property changes on: branches/REL1_17/phase3/includes/installer/Installer.php |
___________________________________________________________________ |
Modified: svn:mergeinfo |
830 | 830 | Merged /trunk/phase3/includes/installer/Installer.php:r84431,84464,84543,84553,84573-84574,84577,84579,84729,84765,84820,84846,84905,84985,85032,85140,85143,85152,85178,85194,85199 |
Index: branches/REL1_17/phase3/includes/installer/CliInstaller.php |
— | — | @@ -112,13 +112,12 @@ |
113 | 113 | } |
114 | 114 | |
115 | 115 | public function startStage( $step ) { |
116 | | - $this->showMessage( wfMsg( "config-install-$step" ) . |
117 | | - wfMsg( 'ellipsis' ) . wfMsg( 'word-separator' ) ); |
| 116 | + $this->showMessage( "config-install-$step" ); |
118 | 117 | } |
119 | 118 | |
120 | 119 | public function endStage( $step, $status ) { |
121 | 120 | $this->showStatusMessage( $status ); |
122 | | - $this->showMessage( wfMsg( 'config-install-step-done' ) . "\n" ); |
| 121 | + $this->showMessage( 'config-install-step-done' ); |
123 | 122 | } |
124 | 123 | |
125 | 124 | public function showMessage( $msg /*, ... */ ) { |
— | — | @@ -126,10 +125,6 @@ |
127 | 126 | array_shift( $params ); |
128 | 127 | |
129 | 128 | $text = wfMsgExt( $msg, array( 'parseinline' ), $params ); |
130 | | - /* parseinline has the nasty side-effect of putting encoded |
131 | | - * angle brackets, around the message. |
132 | | - */ |
133 | | - $text = preg_replace( '/(^<|>$)/', '', $text ); |
134 | 129 | |
135 | 130 | $text = preg_replace( '/<a href="(.*?)".*?>(.*?)<\/a>/', '$2 <$1>', $text ); |
136 | 131 | echo html_entity_decode( strip_tags( $text ), ENT_QUOTES ) . "\n"; |
— | — | @@ -141,9 +136,8 @@ |
142 | 137 | $status->getErrorsArray() ); |
143 | 138 | |
144 | 139 | if ( count( $warnings ) !== 0 ) { |
145 | | - foreach ( $status->getWikiTextArray( $warnings ) as $w ) { |
146 | | - $this->showMessage( $w . wfMsg( 'ellipsis' ) . |
147 | | - wfMsg( 'word-separator' ) ); |
| 140 | + foreach ( $warnings as $w ) { |
| 141 | + call_user_func_array( array( $this, 'showMessage' ), $w ); |
148 | 142 | } |
149 | 143 | } |
150 | 144 | |
Property changes on: branches/REL1_17/phase3/includes/installer/CliInstaller.php |
___________________________________________________________________ |
Modified: svn:mergeinfo |
151 | 145 | Merged /trunk/phase3/includes/installer/CliInstaller.php:r84431,84464,84543,84553,84573-84574,84577,84579,84729,84765,84820,84846,84905,84985,85032,85140,85143,85152,85178,85194,85199 |
Index: branches/REL1_17/phase3/includes/api/ApiQueryBase.php |
— | — | @@ -251,18 +251,12 @@ |
252 | 252 | * @return ResultWrapper |
253 | 253 | */ |
254 | 254 | protected function select( $method, $extraQuery = array() ) { |
255 | | - $tables = $this->tables; |
256 | | - $fields = $this->fields; |
257 | | - $where = $this->where; |
258 | | - $options = $this->options; |
259 | | - $join_conds = $this->join_conds; |
260 | 255 | |
261 | | - // Merge $this->tables with $extraQuery['tables'], $this->fields with $extraQuery['fields'], etc. |
262 | | - foreach ( array( 'tables', 'fields', 'where', 'options', 'join_conds' ) as $var ) { |
263 | | - if ( isset( $extraQuery[$var] ) ) { |
264 | | - $$var = array_merge( $$var, (array)$extraQuery[$var] ); |
265 | | - } |
266 | | - } |
| 256 | + $tables = array_merge( $this->tables, isset( $extraQuery['tables'] ) ? (array)$extraQuery['tables'] : array() ); |
| 257 | + $fields = array_merge( $this->fields, isset( $extraQuery['fields'] ) ? (array)$extraQuery['fields'] : array() ); |
| 258 | + $where = array_merge( $this->where, isset( $extraQuery['where'] ) ? (array)$extraQuery['where'] : array() ); |
| 259 | + $options = array_merge( $this->options, isset( $extraQuery['options'] ) ? (array)$extraQuery['options'] : array() ); |
| 260 | + $join_conds = array_merge( $this->join_conds, isset( $extraQuery['join_conds'] ) ? (array)$extraQuery['join_conds'] : array() ); |
267 | 261 | |
268 | 262 | // getDB has its own profileDBIn/Out calls |
269 | 263 | $db = $this->getDB(); |
Index: branches/REL1_17/phase3/includes/api/ApiQueryCategoryMembers.php |
— | — | @@ -144,26 +144,34 @@ |
145 | 145 | $limit = $params['limit']; |
146 | 146 | $this->addOption( 'LIMIT', $limit + 1 ); |
147 | 147 | |
148 | | - // Run a separate SELECT query for each value of cl_type. |
149 | | - // This is needed because cl_type is an enum, and MySQL has |
150 | | - // inconsistencies between ORDER BY cl_type and |
151 | | - // WHERE cl_type >= 'foo' making proper paging impossible |
152 | | - // and unindexed. |
153 | | - $rows = array(); |
154 | | - $first = true; |
155 | | - foreach ( $queryTypes as $type ) { |
156 | | - $extraConds = array( 'cl_type' => $type ); |
157 | | - if ( $first && $contWhere ) { |
158 | | - // Continuation condition. Only added to the |
159 | | - // first query, otherwise we'll skip things |
160 | | - $extraConds[] = $contWhere; |
| 148 | + if ( $params['sort'] == 'sortkey' ) { |
| 149 | + // Run a separate SELECT query for each value of cl_type. |
| 150 | + // This is needed because cl_type is an enum, and MySQL has |
| 151 | + // inconsistencies between ORDER BY cl_type and |
| 152 | + // WHERE cl_type >= 'foo' making proper paging impossible |
| 153 | + // and unindexed. |
| 154 | + $rows = array(); |
| 155 | + $first = true; |
| 156 | + foreach ( $queryTypes as $type ) { |
| 157 | + $extraConds = array( 'cl_type' => $type ); |
| 158 | + if ( $first && $contWhere ) { |
| 159 | + // Continuation condition. Only added to the |
| 160 | + // first query, otherwise we'll skip things |
| 161 | + $extraConds[] = $contWhere; |
| 162 | + } |
| 163 | + $res = $this->select( __METHOD__, array( 'where' => $extraConds ) ); |
| 164 | + $rows = array_merge( $rows, iterator_to_array( $res ) ); |
| 165 | + if ( count( $rows ) >= $limit + 1 ) { |
| 166 | + break; |
| 167 | + } |
| 168 | + $first = false; |
161 | 169 | } |
162 | | - $res = $this->select( __METHOD__, array( 'where' => $extraConds ) ); |
163 | | - $rows = array_merge( $rows, iterator_to_array( $res ) ); |
164 | | - if ( count( $rows ) >= $limit + 1 ) { |
165 | | - break; |
166 | | - } |
167 | | - $first = false; |
| 170 | + } else { |
| 171 | + // Sorting by timestamp |
| 172 | + // No need to worry about per-type queries because we |
| 173 | + // aren't sorting or filtering by type anyway |
| 174 | + $res = $this->select( __METHOD__ ); |
| 175 | + $rows = iterator_to_array( $res ); |
168 | 176 | } |
169 | 177 | $count = 0; |
170 | 178 | foreach ( $rows as $row ) { |
— | — | @@ -315,7 +323,7 @@ |
316 | 324 | ' timestamp - Adds the timestamp of when the page was included', |
317 | 325 | ), |
318 | 326 | 'namespace' => 'Only include pages in these namespaces', |
319 | | - 'type' => 'What type of category members to include', |
| 327 | + 'type' => "What type of category members to include. Ignored when {$p}sort=timestamp is set", |
320 | 328 | 'sort' => 'Property to sort by', |
321 | 329 | 'dir' => 'In which direction to sort', |
322 | 330 | 'start' => "Timestamp to start listing from. Can only be used with {$p}sort=timestamp", |
Index: branches/REL1_17/phase3/includes/api/ApiQueryImageInfo.php |
— | — | @@ -298,9 +298,11 @@ |
299 | 299 | $vals['thumbheight'] = intval( $file->getHeight() ); |
300 | 300 | } |
301 | 301 | |
302 | | - if ( isset( $prop['thumbmime'] ) ) { |
303 | | - $thumbFile = UnregisteredLocalFile::newFromPath( $mto->getPath(), false ); |
304 | | - $vals['thumbmime'] = $thumbFile->getMimeType(); |
| 302 | + if ( isset( $prop['thumbmime'] ) && $file->getHandler() ) { |
| 303 | + list( $ext, $mime ) = $file->getHandler()->getThumbType( |
| 304 | + substr( $mto->getPath(), strrpos( $mto->getPath(), '.' ) + 1 ), |
| 305 | + $file->getMimeType(), $thumbParams ); |
| 306 | + $vals['thumbmime'] = $mime; |
305 | 307 | } |
306 | 308 | } else if ( $mto && $mto->isError() ) { |
307 | 309 | $vals['thumberror'] = $mto->toText(); |
Property changes on: branches/REL1_17/phase3/includes/api/ApiQueryImageInfo.php |
___________________________________________________________________ |
Modified: svn:mergeinfo |
308 | 310 | Merged /trunk/phase3/includes/api/ApiQueryImageInfo.php:r84431,84464,84543,84553,84573-84574,84577,84579,84729,84765,84820,84846,84905,84985,85032,85140,85143,85152,85178,85194,85199 |
Index: branches/REL1_17/phase3/includes/api/ApiQueryWatchlist.php |
— | — | @@ -124,8 +124,12 @@ |
125 | 125 | 'wl_user' => $userId, |
126 | 126 | 'rc_deleted' => 0, |
127 | 127 | ) ); |
| 128 | + |
| 129 | + $db = $this->getDB(); |
128 | 130 | |
129 | | - $this->addWhereRange( 'rc_timestamp', $params['dir'], $params['start'], $params['end'] ); |
| 131 | + $this->addWhereRange( 'rc_timestamp', $params['dir'], |
| 132 | + $db->timestamp( $params['start'] ), |
| 133 | + $db->timestamp( $params['end'] ) ); |
130 | 134 | $this->addWhereFld( 'wl_namespace', $params['namespace'] ); |
131 | 135 | $this->addWhereIf( 'rc_this_oldid=page_latest', !$params['allrev'] ); |
132 | 136 | |
— | — | @@ -171,7 +175,7 @@ |
172 | 176 | $this->addWhere( 'rc_user_text != ' . $this->getDB()->addQuotes( $params['excludeuser'] ) ); |
173 | 177 | } |
174 | 178 | |
175 | | - $db = $this->getDB(); |
| 179 | + |
176 | 180 | |
177 | 181 | // This is an index optimization for mysql, as done in the Special:Watchlist page |
178 | 182 | $this->addWhereIf( "rc_timestamp > ''", !isset( $params['start'] ) && !isset( $params['end'] ) && $db->getType() == 'mysql' ); |
Index: branches/REL1_17/phase3/includes/resourceloader/ResourceLoader.php |
— | — | @@ -356,9 +356,9 @@ |
357 | 357 | wfProfileOut( __METHOD__.'-getModifiedTime' ); |
358 | 358 | |
359 | 359 | if ( $context->getOnly() === 'styles' ) { |
360 | | - header( 'Content-Type: text/css' ); |
| 360 | + header( 'Content-Type: text/css; charset=utf-8' ); |
361 | 361 | } else { |
362 | | - header( 'Content-Type: text/javascript' ); |
| 362 | + header( 'Content-Type: text/javascript; charset=utf-8' ); |
363 | 363 | } |
364 | 364 | header( 'Last-Modified: ' . wfTimestamp( TS_RFC2822, $mtime ) ); |
365 | 365 | if ( $context->getDebug() ) { |
Property changes on: branches/REL1_17/phase3/includes/resourceloader/ResourceLoader.php |
___________________________________________________________________ |
Modified: svn:mergeinfo |
366 | 366 | Merged /trunk/phase3/includes/resourceloader/ResourceLoader.php:r84431,84464,84543,84553,84573-84574,84577,84579,84729,84765,84820,84846,84905,84985,85032,85140,85143,85152,85178,85194,85199 |
Index: branches/REL1_17/phase3/includes/WebStart.php |
— | — | @@ -34,7 +34,7 @@ |
35 | 35 | ); |
36 | 36 | foreach ( $_REQUEST as $name => $value ) { |
37 | 37 | if( in_array( $name, $verboten ) ) { |
38 | | - header( "HTTP/1.x 500 Internal Server Error" ); |
| 38 | + header( "HTTP/1.1 500 Internal Server Error" ); |
39 | 39 | echo "register_globals security paranoia: trying to overwrite superglobals, aborting."; |
40 | 40 | die( -1 ); |
41 | 41 | } |
Index: branches/REL1_17/phase3/includes/Wiki.php |
— | — | @@ -197,7 +197,8 @@ |
198 | 198 | } |
199 | 199 | /* Check for a redirect loop */ |
200 | 200 | if( !preg_match( '/^' . preg_quote( $this->getVal('Server'), '/' ) . '/', $url ) && $title->isLocal() ) { |
201 | | - $output->redirect( $url ); |
| 201 | + // 301 so google et al report the target as the actual url. |
| 202 | + $output->redirect( $url, 301 ); |
202 | 203 | } else { |
203 | 204 | $title = SpecialPage::getTitleFor( 'Badtitle' ); |
204 | 205 | $output->setTitle( $title ); // bug 21456 |
Index: branches/REL1_17/phase3/includes/DefaultSettings.php |
— | — | @@ -5228,7 +5228,9 @@ |
5229 | 5229 | |
5230 | 5230 | /** |
5231 | 5231 | * Disable redirects to special pages and interwiki redirects, which use a 302 |
5232 | | - * and have no "redirected from" link. |
| 5232 | + * and have no "redirected from" link. Note this is only for articles with #Redirect |
| 5233 | + * in them. URL's containing a local interwiki prefix (or a non-canonical special |
| 5234 | + * page name) are still hard redirected regardless of this setting. |
5233 | 5235 | */ |
5234 | 5236 | $wgDisableHardRedirects = false; |
5235 | 5237 | |
Property changes on: branches/REL1_17/phase3/includes/DefaultSettings.php |
___________________________________________________________________ |
Modified: svn:mergeinfo |
5236 | 5238 | Merged /trunk/phase3/includes/DefaultSettings.php:r84431,84464,84543,84553,84573-84574,84577,84579,84729,84765,84820,84846,84905,84985,85032,85140,85143,85152,85178,85194,85199 |
Index: branches/REL1_17/phase3/includes/specials/SpecialUpload.php |
— | — | @@ -448,8 +448,8 @@ |
449 | 449 | $permErrors = $this->mUpload->verifyPermissions( $wgUser ); |
450 | 450 | if( $permErrors !== true ) { |
451 | 451 | $code = array_shift( $permErrors[0] ); |
452 | | - $this->showRecoverableUploadError( wfMsgExt( $code[0], |
453 | | - 'parseinline', $code[1] ) ); |
| 452 | + $this->showRecoverableUploadError( wfMsgExt( $code, |
| 453 | + 'parseinline', $permErrors[0] ) ); |
454 | 454 | return; |
455 | 455 | } |
456 | 456 | |
Property changes on: branches/REL1_17/phase3/includes/specials/SpecialUpload.php |
___________________________________________________________________ |
Modified: svn:mergeinfo |
457 | 457 | Merged /trunk/phase3/includes/specials/SpecialUpload.php:r84431,84464,84543,84553,84573-84574,84577,84579,84729,84765,84820,84846,84905,84985,85032,85140,85143,85152,85178,85194,85199 |
Index: branches/REL1_17/phase3/languages/messages/MessagesLtg.php |
— | — | @@ -11,6 +11,25 @@ |
12 | 12 | * @author Gleb Borisov |
13 | 13 | * @author Jureits |
14 | 14 | */ |
| 15 | + |
| 16 | +$namespaceNames = array( |
| 17 | + NS_MEDIA => 'Medeja', |
| 18 | + NS_SPECIAL => 'Seviškuo', |
| 19 | + NS_TALK => 'Sprīža', |
| 20 | + NS_USER => 'Lītuotuojs', |
| 21 | + NS_USER_TALK => 'Sprīža_ap_lītuotuoju', |
| 22 | + NS_PROJECT_TALK => 'Sprīža_ap_{{GRAMMAR:accusative|$1}}', |
| 23 | + NS_FILE => 'Fails', |
| 24 | + NS_FILE_TALK => 'Sprīža_ap_failu', |
| 25 | + NS_MEDIAWIKI => 'MediaWiki', |
| 26 | + NS_MEDIAWIKI_TALK => 'Sprīža_ap_MediaWiki', |
| 27 | + NS_TEMPLATE => 'Taiss', |
| 28 | + NS_TEMPLATE_TALK => 'Sprīža_ap_taisu', |
| 29 | + NS_HELP => 'Paleigs', |
| 30 | + NS_HELP_TALK => 'Sprīža_ap_paleigu', |
| 31 | + NS_CATEGORY => 'Kategoreja', |
| 32 | + NS_CATEGORY_TALK => 'Sprīža_ap_kategoreju', |
| 33 | +); |
15 | 34 | |
16 | 35 | $fallback = 'lv'; |
17 | 36 | |
Index: branches/REL1_17/phase3/languages/Names.php |
— | — | @@ -150,7 +150,7 @@ |
151 | 151 | 'ka' => 'ქართული', # Georgian |
152 | 152 | 'kaa' => 'Qaraqalpaqsha', # Karakalpak |
153 | 153 | 'kab' => 'Taqbaylit', # Kabyle |
154 | | - 'kbd' => 'къэбэрдеибзэ/qabardjajəbza', # Kabardian (multiple scripts - defaults to Cyrillic) |
| 154 | + 'kbd' => 'Къэбэрдеибзэ / Qabardjajəbza', # Kabardian (multiple scripts - defaults to Cyrillic) |
155 | 155 | 'kbd-cyrl' => 'къэбэрдеибзэ', # Kabardian (Cyrillic) |
156 | 156 | 'kg' => 'Kongo', # Kongo, (FIXME!) should probaly be KiKongo or KiKoongo |
157 | 157 | 'ki' => 'Gĩkũyũ', # Gikuyu |
Property changes on: branches/REL1_17/phase3/languages/Names.php |
___________________________________________________________________ |
Modified: svn:mergeinfo |
158 | 158 | Merged /trunk/phase3/languages/Names.php:r84431,84464,84543,84553,84573-84574,84577,84579,84729,84765,84820,84846,84905,84985,85032,85140,85143,85152,85178,85194,85199 |
Index: branches/REL1_17/phase3/RELEASE-NOTES |
— | — | @@ -518,6 +518,10 @@ |
519 | 519 | * (bug 28034) uploading file to local wiki when file exists on shared repository |
520 | 520 | (commons) gives spurious info in the warning message |
521 | 521 | * Usernames get lost when selecting different sorts on Special:listfiles |
| 522 | +* (bug 28166) UploadBase assumes that 'edit' and 'upload' rights are not per |
| 523 | + page restrictions |
| 524 | +* (bug 28242) Make redirects generated by urls containing a local interwiki |
| 525 | + prefix be a 301 instead of a 302. |
522 | 526 | |
523 | 527 | * BREAKING CHANGE: action=patrol now requires POST |
524 | 528 | * BREAKING CHANGE: patrol token is no longer the same as edit token |
— | — | @@ -632,6 +636,8 @@ |
633 | 637 | file is a multi-page file |
634 | 638 | * (bug 10268) Added linktodiffs parameter on action=feedwatchlist |
635 | 639 | * (bug 26219) Show API limits for multi values in description |
| 640 | +* (bug 28070) Fix watchlist RSS for databases that store timestamps in a |
| 641 | + real timestamp field. |
636 | 642 | |
637 | 643 | === Languages updated in 1.17 === |
638 | 644 | |
Property changes on: branches/REL1_17/phase3/RELEASE-NOTES |
___________________________________________________________________ |
Modified: svn:mergeinfo |
639 | 645 | Merged /trunk/phase3/RELEASE-NOTES:r84431,84464,84543,84553,84573-84574,84577,84579,84729,84765,84820,84846,84905,84985,85032,85140,85143,85152,85178,85194,85199 |
Index: branches/REL1_17/phase3/resources/mediawiki/mediawiki.js |
— | — | @@ -606,8 +606,12 @@ |
607 | 607 | } |
608 | 608 | } |
609 | 609 | } catch ( e ) { |
610 | | - mediaWiki.log( 'Exception thrown by ' + module + ': ' + e.message ); |
611 | | - mediaWiki.log( e ); |
| 610 | + // This needs to NOT use mw.log because these errors are common in production mode |
| 611 | + // and not in debug mode, such as when a symbol that should be global isn't exported |
| 612 | + if ( window.console && typeof window.console.log === 'function' ) { |
| 613 | + console.log( _fn + 'Exception thrown by ' + module + ': ' + e.message ); |
| 614 | + console.log( e ); |
| 615 | + } |
612 | 616 | registry[module].state = 'error'; |
613 | 617 | // Run error callbacks of jobs affected by this condition |
614 | 618 | for ( var j = 0; j < jobs.length; j++ ) { |
Property changes on: branches/REL1_17/phase3/resources/mediawiki/mediawiki.js |
___________________________________________________________________ |
Modified: svn:mergeinfo |
615 | 619 | Merged /trunk/phase3/resources/mediawiki/mediawiki.js:r84431,84464,84543,84553,84573-84574,84577,84579,84729,84765,84820,84846,84905,84985,85032,85140,85143,85152,85178,85194,85199 |
Property changes on: branches/REL1_17/phase3 |
___________________________________________________________________ |
Modified: svn:mergeinfo |
616 | 620 | Merged /trunk/phase3:r84431,84464,84543,84553,84573-84574,84577,84579,84729,84765,84820,84846,84905,84985,85032,85140,85143,85152,85178,85194,85199 |