http://www.mediawiki.org/wiki/Special:Code/MediaWiki/89898
Revision: 89898
Author: robin
Date: 2011-06-11 22:14:03 +0000 (Sat, 11 Jun 2011)
Log Message:
-----------
Show an error when prefix or URL is empty, instead of adding it.
Various other small fixes, including:
* Show "return to Special:Interwiki" always when on the submit form
* Use nice url Special:Interwiki/add instead of ...&action=add
* Move inline css to css file
Modified Paths:
--------------
trunk/extensions/Interwiki/Interwiki.css
trunk/extensions/Interwiki/Interwiki.i18n.php
trunk/extensions/Interwiki/Interwiki.php
trunk/extensions/Interwiki/Interwiki_body.php
Modified: trunk/extensions/Interwiki/Interwiki.css
===================================================================
--- trunk/extensions/Interwiki/Interwiki.css 2011-06-11 21:47:06 UTC (rev
89897)
+++ trunk/extensions/Interwiki/Interwiki.css 2011-06-11 22:14:03 UTC (rev
89898)
@@ -1,6 +1,10 @@
/**
* CSS for Special:Interwiki
*/
+table.mw-interwikitable {
+ width: 100%;
+}
+
table.mw-interwikitable.intro th {
padding-right: 1.4ex;
vertical-align: top;
Modified: trunk/extensions/Interwiki/Interwiki.i18n.php
===================================================================
--- trunk/extensions/Interwiki/Interwiki.i18n.php 2011-06-11 21:47:06 UTC
(rev 89897)
+++ trunk/extensions/Interwiki/Interwiki.i18n.php 2011-06-11 22:14:03 UTC
(rev 89898)
@@ -46,7 +46,7 @@
'interwiki_trans_intro' => 'If wikitext syntax <code>{<nowiki
/>{prefix:<i>pagename</i>}}</code> is used, then:',
'interwiki_trans_1_intro' => 'allow transclusion from the foreign wiki,
if interwiki transclusions are generally permitted in this wiki,',
'interwiki_trans_0_intro' => 'do not allow it, rather look for a page
in the template namespace.',
- 'interwiki_intro_footer' => 'See
[http://www.mediawiki.org/wiki/Interwiki_table MediaWiki.org] for more
information about the interwiki table.
+ 'interwiki_intro_footer' => 'See
[http://www.mediawiki.org/wiki/Manual:Interwiki_table MediaWiki.org] for more
information about the interwiki table.
There is a [[Special:Log/interwiki|log of changes]] to the interwiki table.',
'interwiki_1' => 'yes',
'interwiki_0' => 'no',
@@ -70,16 +70,17 @@
'interwiki_added' => 'Prefix "$1" was successfully added to the
interwiki table.',
'interwiki_addfailed' => 'Prefix "$1" could not be added to the
interwiki table.
Possibly it already exists in the interwiki table.',
- 'interwiki_defaulturl' => 'http://www.example.com/$1', # do not
translate or duplicate this message to other languages
+ 'interwiki-defaulturl' => 'http://www.example.com/$1', # do not
translate or duplicate this message to other languages
# editing a prefix
'interwiki_edittext' => 'Editing an interwiki prefix',
'interwiki_editintro' => 'You are editing an interwiki prefix.
Remember that this can break existing links.',
'interwiki_edited' => 'Prefix "$1" was successfully modified in the
interwiki table.',
- 'interwiki_editerror' => 'Prefix "$1" can not be modified in the
interwiki table.
+ 'interwiki_editerror' => 'Prefix "$1" could not be modified in the
interwiki table.
Possibly it does not exist.',
'interwiki-badprefix' => 'Specified interwiki prefix "$1" contains
invalid characters',
+ 'interwiki-submit-empty' => 'The prefix and URL cannot be empty.',
# interwiki log
'interwiki_logpagename' => 'Interwiki table log',
Modified: trunk/extensions/Interwiki/Interwiki.php
===================================================================
--- trunk/extensions/Interwiki/Interwiki.php 2011-06-11 21:47:06 UTC (rev
89897)
+++ trunk/extensions/Interwiki/Interwiki.php 2011-06-11 22:14:03 UTC (rev
89898)
@@ -9,7 +9,7 @@
* @ingroup Extensions
* @version 1.3
* @author Stephanie Amanda Stevens <[email protected]>
- * @author SPQRobin <[email protected]>
+ * @author SPQRobin <[email protected]>
* @copyright Copyright © 2005-2007 Stephanie Amanda Stevens
* @copyright Copyright © 2007 SPQRobin
* @license http://www.gnu.org/copyleft/gpl.html GNU General Public License
2.0 or later
@@ -26,7 +26,7 @@
'path' => __FILE__,
'name' => 'SpecialInterwiki',
'author' => array( 'Stephanie Amanda Stevens', 'SPQRobin', '...' ),
- 'version' => '1.3.2',
+ 'version' => '1.4.0',
'url' => 'http://www.mediawiki.org/wiki/Extension:SpecialInterwiki',
'descriptionmsg' => 'interwiki-desc',
);
Modified: trunk/extensions/Interwiki/Interwiki_body.php
===================================================================
--- trunk/extensions/Interwiki/Interwiki_body.php 2011-06-11 21:47:06 UTC
(rev 89897)
+++ trunk/extensions/Interwiki/Interwiki_body.php 2011-06-11 22:14:03 UTC
(rev 89898)
@@ -38,40 +38,37 @@
$admin = $wgUser->isAllowed( 'interwiki' );
$action = $wgRequest->getVal( 'action', $par );
+ $return = SpecialPage::getTitleFor( 'Interwiki' );
switch( $action ) {
case 'delete':
case 'edit':
case 'add':
- // Check permissions
if( !$admin ) {
+ // Check permissions
$wgOut->permissionRequired( 'interwiki' );
- return;
- }
- // Is the database in read-only mode?
- if( wfReadOnly() ) {
+ } elseif( wfReadOnly() ) {
+ // Is the database in read-only mode?
$wgOut->readOnlyPage();
- return;
+ } else {
+ $this->showForm( $action );
}
- $this->showForm( $action );
+ $wgOut->returnToMain( false, $return );
break;
case 'submit':
- // Check permissions
if( !$admin ) {
+ // Check permissions
$wgOut->permissionRequired( 'interwiki' );
- return;
- }
- // Is the database in read-only mode?
- if( wfReadOnly() ) {
+ } elseif( wfReadOnly() ) {
+ // Is the database in read-only mode?
$wgOut->readOnlyPage();
- return;
- }
- // Prevent cross-site request forgeries
- if( !$wgRequest->wasPosted() ||
!$wgUser->matchEditToken( $wgRequest->getVal( 'wpEditToken' ) ) ) {
+ } elseif( !$wgRequest->wasPosted() ||
!$wgUser->matchEditToken( $wgRequest->getVal( 'wpEditToken' ) ) ) {
+ // Prevent cross-site request forgeries
$wgOut->addWikiMsg( 'sessionfailure' );
- return;
+ } else {
+ $this->doSubmit();
}
- $this->doSubmit();
+ $wgOut->returnToMain( false, $return );
break;
default:
$this->showList( $admin );
@@ -99,15 +96,15 @@
Xml::element( 'legend', null, $topmessage ) .
Xml::openElement( 'form', array( 'id' =>
'mw-interwiki-deleteform', 'method' => 'post', 'action' => $actionUrl ) ) .
Xml::openElement( 'table' ) .
- "<tr><td>$deletingmessage</td></tr>".
+ "<tr><td
colspan='2'>$deletingmessage</td></tr>".
'<tr><td class="mw-label">' . Xml::label(
$reasonmessage, 'mw-interwiki-deletereason' ) . '</td>' .
'<td class="mw-input">' .
Xml::input( 'wpInterwikiReason', 60, '', array(
'tabindex' => '1', 'id' => 'mw-interwiki-deletereason', 'maxlength' => '200' )
) .
'</td></tr>' .
'<tr><td></td><td class="mw-submit">' .
Xml::submitButton( $button, array( 'id' => 'mw-interwiki-submit' ) ) .
- Html::Hidden( 'wpInterwikiPrefix', $prefix ) .
- Html::Hidden( 'wpInterwikiAction', $action ) .
- Html::Hidden( 'wpEditToken', $token ) .
+ Html::hidden( 'wpInterwikiPrefix', $prefix ) .
+ Html::hidden( 'wpInterwikiAction', $action ) .
+ Html::hidden( 'wpEditToken', $token ) .
'</td></tr>' .
Xml::closeElement( 'table' ) .
Xml::closeElement( 'form' ) .
@@ -128,7 +125,7 @@
$defaulturl = $row->iw_url;
$trans = $row->iw_trans;
$local = $row->iw_local;
- $old = Html::Hidden( 'wpInterwikiPrefix',
$row->iw_prefix );
+ $old = Html::hidden( 'wpInterwikiPrefix',
$row->iw_prefix );
$topmessage = wfMsgExt( 'interwiki_edittext',
array( 'parseinline' ) );
$intromessage = wfMsgExt(
'interwiki_editintro', array( 'parseinline' ) );
$button = wfMsg( 'edit' );
@@ -138,7 +135,7 @@
$local = $wgRequest->getCheck(
'wpInterwikiLocal' );
$trans = $wgRequest->getCheck(
'wpInterwikiTrans' );
$old = '';
- $defaulturl = $wgRequest->getVal(
'wpInterwikiURL' ) ? $wgRequest->getVal( 'wpInterwikiURL' ) : wfMsg(
'interwiki_defaulturl' );
+ $defaulturl = $wgRequest->getVal(
'wpInterwikiURL' ) ? $wgRequest->getVal( 'wpInterwikiURL' ) : wfMsg(
'interwiki-defaulturl' );
$topmessage = wfMsgExt( 'interwiki_addtext',
array( 'parseinline' ) );
$intromessage = wfMsgExt( 'interwiki_addintro',
array( 'parseinline' ) );
$button = wfMsg( 'interwiki_addbutton' );
@@ -164,9 +161,9 @@
'<td class="mw-input">' . Xml::input(
'wpInterwikiURL', 60, $defaulturl, array( 'tabindex' => '1', 'maxlength' =>
'200', 'id' => 'mw-interwiki-url' ) ) . '</td></tr>' .
'<tr><td class="mw-label">' . Xml::label(
$reasonmessage, 'mw-interwiki-editreason' ) . '</td>' .
'<td class="mw-input">' . Xml::input(
'wpInterwikiReason', 60, '', array( 'tabindex' => '1', 'id' =>
'mw-interwiki-editreason', 'maxlength' => '200' ) ) .
- Html::Hidden( 'wpInterwikiAction', $action ) .
+ Html::hidden( 'wpInterwikiAction', $action ) .
$old .
- Html::Hidden( 'wpEditToken', $token ) .
+ Html::hidden( 'wpEditToken', $token ) .
'</td></tr>' .
'<tr><td></td><td class="mw-submit">' .
Xml::submitButton( $button, array( 'id' => 'mw-interwiki-submit' ) ) .
'</td></tr>' .
Xml::closeElement( 'table' ) .
@@ -199,7 +196,6 @@
$this->showForm( $do );
} else {
$wgOut->addWikiMsg( 'interwiki_deleted',
$prefix );
- $wgOut->returnToMain( false, $selfTitle );
$log = new LogPage( 'interwiki' );
$log->addEntry( 'iw_delete', $selfTitle,
$reason, array( $prefix ) );
}
@@ -215,6 +211,12 @@
'iw_local' => $local,
'iw_trans' => $trans
);
+
+ if( $prefix == '' || $theurl == '' ) {
+ $this->error( 'interwiki-submit-empty' );
+ $this->showForm( $do );
+ return;
+ }
if( $do == 'add' ){
$dbw->insert( 'interwiki', $data, __METHOD__,
'IGNORE' );
@@ -227,7 +229,6 @@
$this->showForm( $do );
} else {
$wgOut->addWikiMsg( "interwiki_{$do}ed",
$prefix );
- $wgOut->returnToMain( false, $selfTitle );
$log = new LogPage( 'interwiki' );
$log->addEntry( 'iw_' . $do, $selfTitle,
$reason, array( $prefix, $theurl, $trans, $local ) );
}
@@ -258,7 +259,7 @@
$message_1 = wfMsgHtml( 'interwiki_1' );
$out = '
-<table width="100%" class="mw-interwikitable wikitable intro">
+<table class="mw-interwikitable wikitable intro">
<tr><th class="mw-align-left">' . $prefixmessage . '</th><td>' . wfMsgExt(
'interwiki_prefix_intro', 'parseinline' ) . '</td></tr>
<tr><th class="mw-align-left">' . $urlmessage . '</th><td>' . wfMsgExt(
'interwiki_url_intro', 'parseinline' ) . '</td></tr>
<tr><th class="mw-align-left">' . $localmessage . '</th><td>' . wfMsgExt(
'interwiki_local_intro', 'parseinline' ) . '</td></tr>
@@ -272,14 +273,13 @@
$wgOut->addWikiMsg( 'interwiki_intro' );
$wgOut->addHTML( $out );
$wgOut->addWikiMsg( 'interwiki_intro_footer' );
- $selfTitle = $this->getTitle();
// Privileged users can add new prefixes
if ( $admin ) {
$skin = $wgUser->getSkin();
$addtext = wfMsgHtml( 'interwiki_addtext' );
- $addlink = $skin->link( $selfTitle, $addtext, array(),
array( 'action' => 'add' ) );
- $wgOut->addHTML( '<p>' . $addlink . '</p>' );
+ $addlink = $skin->link( SpecialPage::getTitleFor(
'Interwiki', 'add' ), $addtext );
+ $wgOut->addHTML( '<p class="mw-interwiki-addlink">' .
$addlink . '</p>' );
}
$dbr = wfGetDB( DB_SLAVE );
@@ -291,8 +291,10 @@
return;
}
+ $selfTitle = $this->getTitle();
+
$out = "
- <table width='100%' class='mw-interwikitable wikitable sortable
body'>
+ <table class='mw-interwikitable wikitable sortable body'>
<tr id='interwikitable-header'><th>$prefixmessage</th>
<th>$urlmessage</th> <th>$localmessage</th> <th>$transmessage</th>";
// Privileged users can modify and delete existing prefixes
if( $admin ) {
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs