From: Huji Date: Sun, 25 Nov 2007 17:02:28 +0000 (+0000) Subject: Fixes bug 9633: Add a predefined list of delete reasons to the deletion form X-Git-Tag: 1.31.0-rc.0~50724 X-Git-Url: https://git.cyclocoop.org/admin/?a=commitdiff_plain;h=af22869fbd1f78a9f67f519bf6335b186aa1a1be;p=lhc%2Fweb%2Fwiklou.git Fixes bug 9633: Add a predefined list of delete reasons to the deletion form --- diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 73ba3f24d3..c25bbd260d 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -79,6 +79,7 @@ it from source control: http://www.mediawiki.org/wiki/Download_from_SVN * dumpTextPass.php can spawn fetchText.php as a subprocess, which should restart cleanly if database connections fail unpleasantly. * (bug 12028) Add Special:Listbots as shortcut for Special:Listusers/bot +* (bug 9633) Add a predefined list of delete reasons to the deletion form === Bug fixes in 1.12 === diff --git a/includes/Article.php b/includes/Article.php index 0e2a9928cd..56070b2905 100644 --- a/includes/Article.php +++ b/includes/Article.php @@ -1925,7 +1925,15 @@ class Article { global $wgUser, $wgOut, $wgRequest; $confirm = $wgRequest->wasPosted() && $wgUser->matchEditToken( $wgRequest->getVal( 'wpEditToken' ) ); - $reason = $wgRequest->getText( 'wpReason' ); + $this->DeleteReasonList = $wgRequest->getText( 'wpDeleteReasonList' ); + $this->DeleteReason = $wgRequest->getText( 'wpReason' ); + $reason = $this->DeleteReasonList; + if ( $reason != 'other' && $this->DeleteReason != '') { + // Entry from drop down menu + additional comment + $reason .= ': ' . $this->DeleteReason; + } elseif ( $reason == 'other' ) { + $reason = $this->DeleteReason; + } # This code desperately needs to be totally rewritten @@ -2034,18 +2042,63 @@ class Article { $formaction = $this->mTitle->escapeLocalURL( 'action=delete' . $par ); $confirm = htmlspecialchars( wfMsg( 'deletepage' ) ); - $delcom = htmlspecialchars( wfMsg( 'deletecomment' ) ); + $delcom = Xml::label( wfMsg( 'deletecomment' ), 'wpDeleteReasonList' ); $token = htmlspecialchars( $wgUser->editToken() ); $watch = Xml::checkLabel( wfMsg( 'watchthis' ), 'wpWatch', 'wpWatch', $wgUser->getBoolOption( 'watchdeletion' ) || $this->mTitle->userIsWatching(), array( 'tabindex' => '2' ) ); - + + $mDeletereasonother = Xml::label( wfMsg( 'deleteotherreason' ), 'wpReason' ); + $mDeletereasonotherlist = wfMsgHtml( 'deletereasonotherlist' ); + $scDeleteReasonList = wfMsgForContent( 'deletereason-dropdown' ); + + $deleteReasonList = ''; + if ( $scDeleteReasonList != '' && $scDeleteReasonList != '-' ) { + $deleteReasonList = ""; + $optgroup = ""; + foreach ( explode( "\n", $scDeleteReasonList ) as $option) { + $value = trim( htmlspecialchars($option) ); + if ( $value == '' ) { + continue; + } elseif ( substr( $value, 0, 1) == '*' && substr( $value, 1, 1) != '*' ) { + // A new group is starting ... + $value = trim( substr( $value, 1 ) ); + $deleteReasonList .= "$optgroup"; + $optgroup = ""; + } elseif ( substr( $value, 0, 2) == '**' ) { + // groupmember + $selected = ""; + $value = trim( substr( $value, 2 ) ); + if ( $this->DeleteReasonList === $value) + $selected = ' selected="selected"'; + $deleteReasonList .= ""; + } else { + // groupless delete reason + $selected = ""; + if ( $this->DeleteReasonList === $value) + $selected = ' selected="selected"'; + $deleteReasonList .= "$optgroup"; + $optgroup = ""; + } + } + $deleteReasonList .= $optgroup; + } $wgOut->addHTML( "
+ + + + diff --git a/languages/messages/MessagesEn.php b/languages/messages/MessagesEn.php index 74eb01e847..4fb26faf39 100644 --- a/languages/messages/MessagesEn.php +++ b/languages/messages/MessagesEn.php @@ -1891,6 +1891,13 @@ See $2 for a record of recent deletions.', 'deletionlog' => 'deletion log', 'reverted' => 'Reverted to earlier revision', 'deletecomment' => 'Reason for deletion', +'deleteotherreason' => 'Other/additional reason:', +'deletereasonotherlist' => 'Other reason', +'deletereason-dropdown' => ' +*Common delete reasons +** Author request +** Copyright violation +** Vandalism', 'rollback' => 'Roll back edits', 'rollback_short' => 'Rollback', 'rollbacklink' => 'rollback', diff --git a/maintenance/language/messages.inc b/maintenance/language/messages.inc index 3ac762f9a6..c2bd6aa084 100644 --- a/maintenance/language/messages.inc +++ b/maintenance/language/messages.inc @@ -1208,6 +1208,9 @@ $wgMessageStructure = array( 'deletionlog', 'reverted', 'deletecomment', + 'deleteotherreason', + 'deletereasonotherlist', + 'deletereason-dropdown', 'rollback', 'rollback_short', 'rollbacklink',
- + $delcom: + +
+ $mDeletereasonother +