if ( $permErrors ) {
wfDebug( __METHOD__ . ": User can't edit\n" );
// Auto-block user's IP if the account was "hard" blocked
- $user = $wgUser;
- DeferredUpdates::addCallableUpdate( function() use ( $user ) {
- $user->spreadAnyEditBlock();
- } );
-
+ if ( !wfReadOnly() ) {
+ $user = $wgUser;
+ DeferredUpdates::addCallableUpdate( function () use ( $user ) {
+ $user->spreadAnyEditBlock();
+ } );
+ }
$this->displayPermissionsError( $permErrors );
return;
* Get the content of the wanted revision, without section extraction.
*
* The result of this function can be used to compare user's input with
- * section replaced in its context (using WikiPage::replaceSection())
+ * section replaced in its context (using WikiPage::replaceSectionAtRev())
* to the original text of the edit.
*
* This differs from Article::getContent() that when a missing revision is
// is if an extension hook aborted from inside ArticleSave.
// Render the status object into $this->hookError
// FIXME this sucks, we should just use the Status object throughout
- $this->hookError = '<div class="error">' . $status->getWikitext() .
+ $this->hookError = '<div class="error">' . $status->getWikiText() .
'</div>';
return true;
}
if ( $wgUser->isBlockedFrom( $this->mTitle, false ) ) {
// Auto-block user's IP if the account was "hard" blocked
- $wgUser->spreadAnyEditBlock();
+ if ( !wfReadOnly() ) {
+ $wgUser->spreadAnyEditBlock();
+ }
# Check block state against master, thus 'false'.
$status->setResult( false, self::AS_BLOCKED_PAGE_FOR_USER );
return $status;
} elseif ( $this->section != '' ) {
# Try to get a section anchor from the section source, redirect
# to edited section if header found.
- # XXX: Might be better to integrate this into Article::replaceSection
+ # XXX: Might be better to integrate this into Article::replaceSectionAtRev
# for duplicate heading checking and maybe parsing.
$hasmatch = preg_match( "/^ *([=]{1,6})(.*?)(\\1) *\\n/i", $this->textbox1, $matches );
# We can't deal with anchors, includes, html etc in the header for now,
if ( $changingContentModel ) {
$this->addContentModelChangeLogEntry(
$wgUser,
- $oldContentModel,
+ $new ? false : $oldContentModel,
$this->contentModel,
$this->summary
);
/**
* @param User $user
- * @param string $oldModel
+ * @param string|false $oldModel false if the page is being newly created
* @param string $newModel
* @param string $reason
*/
protected function addContentModelChangeLogEntry( User $user, $oldModel, $newModel, $reason ) {
- $log = new ManualLogEntry( 'contentmodel', 'change' );
+ $new = $oldModel === false;
+ $log = new ManualLogEntry( 'contentmodel', $new ? 'new' : 'change' );
$log->setPerformer( $user );
$log->setTarget( $this->mTitle );
$log->setComment( $reason );
$watch = $this->watchthis;
// Do this in its own transaction to reduce contention...
DeferredUpdates::addCallableUpdate( function () use ( $user, $title, $watch ) {
- if ( $watch == $user->isWatched( $title, WatchedItem::IGNORE_USER_RIGHTS ) ) {
+ if ( $watch == $user->isWatched( $title, User::IGNORE_USER_RIGHTS ) ) {
return; // nothing to change
}
WatchAction::doWatchOrUnwatch( $watch, $title, $user );
# Show a warning message when someone creates/edits a user (talk) page but the user does not exist
# Show log extract when the user is currently blocked
if ( $namespace == NS_USER || $namespace == NS_USER_TALK ) {
- $parts = explode( '/', $this->mTitle->getText(), 2 );
- $username = $parts[0];
+ $username = explode( '/', $this->mTitle->getText(), 2 )[0];
$user = User::newFromName( $username, false /* allow IP users*/ );
$ip = User::isIP( $username );
$block = Block::newFromTarget( $user, $user );
Xml::openElement( 'div', [ 'id' => 'antispam-container', 'style' => 'display: none;' ] )
. Html::rawElement(
'label',
- [ 'for' => 'wpAntiSpam' ],
+ [ 'for' => 'wpAntispam' ],
wfMessage( 'simpleantispam-label' )->parse()
)
. Xml::element(