the underlying PHPTAL library. It will be automatically disabled when running
on PHP5; the older look and feel will be used instead.
+= MediaWiki 1.2 =
+
+== MediaWiki 1.2.6, 2004-05-24 ==
+* Spam blocker ({{wg|SpamRegex}} - refuses to save edits that match)
+* Updated documentation about {{wg|WhitelistRead}}
+* Ensure that searchindex table is created as MyISAM
+* Interwiki cache timeout (memcached)
+* Fix uploads on Windows with magic_quotes_gpc
+* Some config fixes for Windows (slashes etc)
+* Local interwiki URL redirects
+* Fixed obscure deletion problem in squid mode on corrupt entries
+* Language files updated to remove more hard-coded "Wikipedia" strings
+
+== MediaWiki 1.2.5, 2004-05-03 ==
+* Fixed install problem with blank root password
+* Fixed Special:Emailuser/Username links
+* Fixed main-page edit links on fuzzy search results
+* Fixed wikipedia-interwiki.sql
+* Fixed install with apache2filter (ugly URLs)
+* IP in 'go' search brings up contributions
+* Switch from broken & to ? on top-level wiki URL hack
+* Fix for moved pages in enhanced Recentchanges
+* Initial main page on new installs links to the online documentation
+
+== MediaWiki 1.2.4, 2004-04-13 ==
+* Fixed edit toolbar in Mozilla
+* Diff links in Contributions for 'top' edits
+* Fixed Nostalgia skin drop-down for register_globals off
+* Backported optional open proxy blocker
+* Backported {{wg|WhitelistRead}}
+* {{wg|CapitalLinks}} option to force full case sensitivity in titles
+* Cleaned up error handling when can't talk to database
+* Disabled unsafe command-line installer (remove the <code>die()</code> call to
+use)
+
+== MediaWiki 1.2.3, 2004-04-02 ==
+* Fixed an in-place install bug with non-root MySQL user
+* Fixed history diff checkboxes bug on titles with ampersands
+* Fixed printable link bug on special pages with parameters
+* Fixed bug that broke IP blocking w/o memcached
+* Turns off E_NOTICE warnings if PHP settings have them on (you can grope in
+and turn this off if you like to debug)
+
+== MediaWiki 1.2.2, 2004-03-28 ==
+* Fixed an upgrade bug introduced in 1.2.1.
+* Disabled {{wg|UseCategoryMagic}}, which feature is incomplete broken
+
+== MediaWiki 1.2.1, 2004-03-27 ==
+Installation, compatibility, security fixlets:
+* Detect use of PHP as CGI and disable <code>index.php/Title</code> URLs
+* Try to auto-create math tmp & output directories if not present
+* Disable Asksql in default install ({{wg|AllowSysopQueries}})
+* Better handling of <code>get_magic_quotes_gpc</code> (apostrophe problems)
+* French localisation no longer hard-codes "Wikipedia" name
+
+== MediaWiki 1.2.0, 2004-03-24 ==
+This is the new production release; it is more or less in sync with what is
+running on Wikipedia right now. However this software is provided with NO
+WARRANTY of fitness for any purpose; there may be some interesting bugs, it may
+eat all your data, and documentation may not be up to date. New features in 1.2:
+* In-place web-based installation [experimental!] Note that maintenance
+functions are not yet available through the web install script.
+* Image resizing/thumbnail generation
+* Stricter upload file extension blacklist and whitelist options
+* More flexible blocking system; time period may be set
+* Handier sysop account management. An account marked "bureaucrat" may assign
+sysop access to other accounts via Special:Makesysop. (The exact details of
+this may change in the future)
+* Support for a squid cache with explicit purging of cached anon pages
+* Optional compression of old revision text (requires zlib support)
+* Fuzzy title search (experimental, requires memcached)
+* Page rendering cache (experimental)
+* Editing toolbar to demonstrate wiki syntax to newbies (off by default in user
+preferences)
+* Support for authenticated SMTP outgoing e-mail (experimental)
+* It's now possible to assign sysop accounts from within the wiki. An account
+with this ability must be labeled with the "bureaucrat" privilege, such as the
+'Developer' account created by the install. Fixes and tweaks:
+* Now works with register_globals off!
+* Should work out of the box on MySQL 3.2.x again. On 4.x set
+{{wg|EnablePersistentLC}}<code> = true;</code> to turn on the link cache table
+for a slight rendering speed boost.
+* Should work on PHP 5.0 beta (not thoroughly tested)
+* Works with short tags disabled.
+* rebuildMessages.php can now selectively update new messages, or overwrite
+everything.
+* Some layout fixes for RTL languages.
+* Now includes arrow icons for enhanced recent changes.
+* Various bug fixes.
+
+=== Behavior changes ===
+* wiki.phtml and redirect.phtml are now renamed to index.php and redirect.php
+The old names are provided too for compatibility, but make sure they don't
+conflict if you've been putting other files in your wiki.
+* Uploaded filenames are more strictly checked than before. See bits in
+DefaultSettings.php to tweak this behavior to your needs.
+* Database messages are now enabled by default, so the interface messages can
+be tweaked through the wiki with a sysop account. Disable this if you don't
+want the performance hit.
+
+=== Database changes ===
+An index was added to recentchanges table to speed up Newpages
+(patch-rc-newindex.sql for manual updaters). Expiration date field has been
+added to ipblocks table ({{manual|patch-ipb_expiry.sql}} for manual updaters).
+The links tables have slightly stricter indexes. ('links' and 'brokenlinks' are
+not changed on existing installations.)
+
+=== Known problems ===
+The version 1.1.0 LocalSettings.sample file included the setting
+{{wg|CategoryMagic}}<code> = true;</code> this setting is for an experimental
+feature that _does not work correctly_. If you have it left over, turn it off
+or you'll see mysterious problems with vanishing links. There may be problems
+with session handling on some systems. Checking the "remember my password" box
+may help as a temporary workaround. If you receive "Cannot load input file"
+errors when trying to get at the wiki after installation, make the following
+changes:
+ in LocalSettings.php change the line something like this:
+ {{wg|ArticlePath}} = "/wiki/index.php/$1";
+ to:
+ {{wg|ArticlePath}} = "/wiki/index.php?title=$1";
+ in index.php, remove these lines:
+ if( isset( $_SERVER['PATH_INFO'] ) ) {
+ $title = substr( $_SERVER['PATH_INFO'], 1 );
+ } else {
+ $title = $_REQUEST['title'];
+ }
+
+= MediaWiki 1.1 =
+
+== MediaWiki 1.1.0, 2003-12-08 ==
+
+This is the new production release. Any following 1.1.x releases are expected
+to contain only bug fixes; developments of new features will go towards a 1.2.0
+release.
+New features in 1.1:
+* New wiki table syntax:
+http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide:_Using_tables
+* User-editable interface messages:
+http://meta.wikipedia.org/wiki/MediaWiki_namespace
+* XML-wrapped page source export with optional history:
+http://meta.wikipedia.org/wiki/XML_import_and_export (There is not yet an
+import function!)
+* "Magic words" Fixes and tweaks:
+* linkscc table caches link data for rendering; faster
+{{manual|rebuildlinks.php}}
+* Numerous bugs in [[skin:Cologne Blue|Cologne Blue]] skin fixed
+* Login gives warning about missing cookies
+* Block log, protection log added; deletion log now includes undeletions
+* Deletion & upload logs now escape comment text properly
+* Problems with <nowiki><nowiki></nowiki> segments in section titles etc
+mitigated
+* Contributions offset and minor edit bugs fixed
+* Whatlinkshere now sorted alphabetically
+* Various exciting new profiling options.
+* Debug log is off by default.
+* Various small bugs fixed. Internal changes:
+* wfQuery has had a second parameter inserted, DB_READ or DB_WRITE. This value
+is not actually used so far.
+* Partial code for categories and Smarty template-based skins is in the tree
+but disabled.
+* Parts of Article.php have been moved to {{manual|EditPage.php}} and
+{{manual|ImagePage.php}}. New translations:
+* fi - Finnish
+* ia - Interlingua
+* no - Norwegian
+* sk - Slovak
+* ta - Tamil
+
+=== Database changes ===
+"linkscc" table added. If upgrading manually (rather than with
+{{manual|update.php}}), run maintenance/archives/patch-linkscc.sql to create
+the table. Older releases were dated snapshots from the old 'stable' branch:
+
= pre-MediaWiki 1.1.0 =
== Mediawiki-20031118 ==
}
}
+ /**
+ * @param WebRequest $request
+ * @return string
+ */
+ private function getTimestampFromRequest( WebRequest $request ) {
+ // Backwards compatibility checks for URIs with only year and/or month.
+ $year = $request->getInt( 'year' );
+ $month = $request->getInt( 'month' );
+ $day = null;
+ if ( $year !== 0 || $month !== 0 ) {
+ if ( $year === 0 ) {
+ $year = MWTimestamp::getLocalInstance()->format( 'Y' );
+ }
+ if ( $month < 1 || $month > 12 ) {
+ // month is invalid so treat as December (all months)
+ $month = 12;
+ }
+ // month is valid so check day
+ $day = cal_days_in_month( CAL_GREGORIAN, $month, $year );
+
+ // Left pad the months and days
+ $month = str_pad( $month, 2, "0", STR_PAD_LEFT );
+ $day = str_pad( $day, 2, "0", STR_PAD_LEFT );
+ }
+
+ $before = $request->getVal( 'date-range-to' );
+ if ( $before ) {
+ $parts = explode( '-', $before );
+ $year = $parts[0];
+ // check date input is valid
+ if ( count( $parts ) === 3 ) {
+ $month = $parts[1];
+ $day = $parts[2];
+ }
+ }
+ return $year && $month && $day ? $year . '-' . $month . '-' . $day : '';
+ }
/**
* Print the history page for an article.
*/
return;
}
- /**
- * Add date selector to quickly get to a certain time
- */
- $year = $request->getInt( 'year' );
- $month = $request->getInt( 'month' );
+ $ts = $this->getTimestampFromRequest( $request );
$tagFilter = $request->getVal( 'tagfilter' );
- $tagSelector = ChangeTags::buildTagFilterSelector( $tagFilter, false, $this->getContext() );
/**
* Option to show only revisions that have been (partially) hidden via RevisionDelete
} else {
$conds = [];
}
+
+ // Add the general form.
+ $action = htmlspecialchars( wfScript() );
+ $fields = [
+ [
+ 'name' => 'title',
+ 'type' => 'hidden',
+ 'default' => $this->getTitle()->getPrefixedDBkey(),
+ ],
+ [
+ 'name' => 'action',
+ 'type' => 'hidden',
+ 'default' => 'history',
+ ],
+ [
+ 'type' => 'date',
+ 'default' => $ts,
+ 'label' => $this->msg( 'date-range-to' )->text(),
+ 'name' => 'date-range-to',
+ ],
+ [
+ 'label-raw' => $this->msg( 'tag-filter' )->parse(),
+ 'type' => 'tagfilter',
+ 'id' => 'tagfilter',
+ 'name' => 'tagfilter',
+ 'value' => $tagFilter,
+ ]
+ ];
if ( $this->getUser()->isAllowed( 'deletedhistory' ) ) {
- $checkDeleted = Xml::checkLabel( $this->msg( 'history-show-deleted' )->text(),
- 'deleted', 'mw-show-deleted-only', $request->getBool( 'deleted' ) ) . "\n";
- } else {
- $checkDeleted = '';
+ $fields[] = [
+ 'type' => 'check',
+ 'label' => $this->msg( 'history-show-deleted' )->text(),
+ 'default' => $request->getBool( 'deleted' ),
+ 'name' => 'deleted',
+ ];
}
- // Add the general form
- $action = htmlspecialchars( wfScript() );
- $content = Html::hidden( 'title', $this->getTitle()->getPrefixedDBkey() ) . "\n";
- $content .= Html::hidden( 'action', 'history' ) . "\n";
- $content .= Xml::dateMenu(
- ( $year == null ? MWTimestamp::getLocalInstance()->format( 'Y' ) : $year ),
- $month
- ) . "\u{00A0}";
- $content .= $tagSelector ? ( implode( "\u{00A0}", $tagSelector ) . "\u{00A0}" ) : '';
- $content .= $checkDeleted . Html::submitButton(
- $this->msg( 'historyaction-submit' )->text(),
- [],
- [ 'mw-ui-progressive' ]
- );
- $out->addHTML(
- "<form action=\"$action\" method=\"get\" id=\"mw-history-searchform\">" .
- Xml::fieldset(
- $this->msg( 'history-fieldset-title' )->text(),
- $content,
- [ 'id' => 'mw-history-search' ]
- ) .
- '</form>'
- );
+ $out->enableOOUI();
+ $htmlForm = HTMLForm::factory( 'ooui', $fields, $this->getContext() );
+ $htmlForm
+ ->setMethod( 'get' )
+ ->setAction( $action )
+ ->setId( 'mw-history-searchform' )
+ ->setSubmitText( $this->msg( 'historyaction-submit' )->text() )
+ ->setWrapperLegend( $this->msg( 'history-fieldset-title' )->text() );
+ $htmlForm->loadData();
+
+ $out->addHTML( $htmlForm->getHTML( false ) );
Hooks::run( 'PageHistoryBeforeList', [ &$this->page, $this->getContext() ] );
// Create and output the list.
- $pager = new HistoryPager( $this, $year, $month, $tagFilter, $conds );
+ $dateComponents = explode( '-', $ts );
+ if ( count( $dateComponents ) > 1 ) {
+ $y = $dateComponents[0];
+ $m = $dateComponents[1];
+ $d = $dateComponents[2];
+ } else {
+ $y = '';
+ $m = '';
+ $d = '';
+ }
+ $pager = new HistoryPager( $this, $y, $m, $tagFilter, $conds, $d );
$out->addHTML(
$pager->getNavigationBar() .
$pager->getBody() .