http://www.mediawiki.org/wiki/Special:Code/MediaWiki/91969
Revision: 91969
Author: ialex
Date: 2011-07-12 15:38:07 +0000 (Tue, 12 Jul 2011)
Log Message:
-----------
* In EditPage.php: don't add the separator if getCancelLink() returns an empty
string
* In TalkHere extension: override getCancelLink() instead of having
mangleEditForm() hack
Modified Paths:
--------------
trunk/extensions/TalkHere/TalkHere.php
trunk/extensions/TalkHere/TalkHereHooks.php
trunk/phase3/includes/EditPage.php
Modified: trunk/extensions/TalkHere/TalkHere.php
===================================================================
--- trunk/extensions/TalkHere/TalkHere.php 2011-07-12 15:12:29 UTC (rev
91968)
+++ trunk/extensions/TalkHere/TalkHere.php 2011-07-12 15:38:07 UTC (rev
91969)
@@ -32,6 +32,7 @@
///// hook it up /////////////////////////////////////////////////////
$wgAutoloadClasses['TalkHereHooks'] = $dir . 'TalkHereHooks.php';
+$wgAutoloadClasses['TalkHereEditPage'] = $dir . 'TalkHereHooks.php';
$wgHooks['BeforePageDisplay'][] = 'TalkHereHooks::onBeforePageDisplay';
$wgHooks['CustomEditor'][] = 'TalkHereHooks::onCustomEditor';
@@ -40,29 +41,11 @@
$wgAjaxExportList[] = 'wfTalkHereAjaxEditor';
-function mangleEditForm( &$out, $returnto = false, $ajax = false ) { //HACK!
too bad we need this :(
- global $wgUser;
- $sk = $wgUser->getSkin();
-
- $html = $out->getHTML();
-
- if ( $returnto ) { //re-target cancel link
- $cancel = $sk->makeLinkObj( Title::newFromText( $returnto ),
wfMsgExt('cancel', array( 'parseinline' ) ) );
- $html = preg_replace( '!<a[^<>]+>[^<>]+</a>( *\| *<a
target=["\']helpwindow["\'])!smi', $cancel . '\1', $html );
- }
- else {
- $html = preg_replace( '!<a[^<>]+>[^<>]+</a> *\| *(<a
target=["\']helpwindow["\'])!smi', '\1', $html );
- }
-
- $out->clearHTML();
- $out->addHTML($html);
-}
-
function wfTalkHereAjaxEditor( $page, $section, $returnto ) {
global $wgRequest, $wgTitle, $wgOut;
- $wgTitle = Title::newFromText( $page );
- if ( !$wgTitle ) {
+ $title = Title::newFromText( $page );
+ if ( !$title ) {
return false;
}
@@ -75,15 +58,15 @@
);
$wgRequest = new FauxRequest( $args );
- $article = MediaWiki::articleFromTitle( $wgTitle,
RequestContext::getMain() );
- $editor = new EditPage( $article );
+ $wgTitle = $title;
+ $article = MediaWiki::articleFromTitle( $title,
RequestContext::getMain() );
+ $editor = new TalkHereEditPage( $article );
+
//generate form
$editor->importFormData( $wgRequest );
$editor->showEditForm();
- mangleEditForm( $wgOut, false, true ); //HACK. This sucks.
-
$response = new AjaxResponse();
$response->addText( $wgOut->getHTML() );
$response->setCacheDuration( false ); //don't cache, because of tokens
etc
Modified: trunk/extensions/TalkHere/TalkHereHooks.php
===================================================================
--- trunk/extensions/TalkHere/TalkHereHooks.php 2011-07-12 15:12:29 UTC (rev
91968)
+++ trunk/extensions/TalkHere/TalkHereHooks.php 2011-07-12 15:38:07 UTC (rev
91969)
@@ -279,6 +279,7 @@
//use a wrapper to override redirection target
$editor = new TalkHereEditPage( $article );
+ $editor->setReturnTo( $to );
$editor->submit();
$code = $editor->getCode();
@@ -288,7 +289,6 @@
$wgOut->redirect( $to->getFullURL() .
$editor->getAnchor() );
}
- mangleEditForm( $wgOut, $returnto ); //HACK. This sucks.
return false;
}
@@ -315,7 +315,22 @@
class TalkHereEditPage extends EditPage {
private $code = 0;
private $sectionanchor = '';
+ private $returnto;
+ public function setReturnTo( $returnto ) {
+ $this->returnto = $returnto;
+ }
+
+ public function getCancelLink() {
+ global $wgUser;
+
+ if ( $this->returnto ) {
+ return $wgUser->getSkin()->link( $this->returnto,
wfMsgExt('cancel', array( 'parseinline' ) ) );
+ } else {
+ return '';
+ }
+ }
+
public function internalAttemptSave( &$result, $bot = false ) {
$res = parent::internalAttemptSave( $result, $bot );
$this->code = $res;
Modified: trunk/phase3/includes/EditPage.php
===================================================================
--- trunk/phase3/includes/EditPage.php 2011-07-12 15:12:29 UTC (rev 91968)
+++ trunk/phase3/includes/EditPage.php 2011-07-12 15:38:07 UTC (rev 91969)
@@ -1924,12 +1924,14 @@
$wgOut->addHTML( implode( $this->getEditButtons( $tabindex ),
"\n" ) . "\n" );
$cancel = $this->getCancelLink();
- $separator = wfMsgExt( 'pipe-separator' , 'escapenoentities' );
+ if ( $cancel !== '' ) {
+ $cancel .= wfMsgExt( 'pipe-separator' ,
'escapenoentities' );
+ }
$edithelpurl = Skin::makeInternalOrExternalUrl(
wfMsgForContent( 'edithelppage' ) );
$edithelp = '<a target="helpwindow" href="'.$edithelpurl.'">'.
htmlspecialchars( wfMsg( 'edithelp' ) ).'</a> '.
htmlspecialchars( wfMsg( 'newwindow' ) );
- $wgOut->addHTML( " <span
class='editHelp'>{$cancel}{$separator}{$edithelp}</span>\n" );
+ $wgOut->addHTML( " <span
class='editHelp'>{$cancel}{$edithelp}</span>\n" );
$wgOut->addHTML( "</div><!-- editButtons -->\n</div><!--
editOptions -->\n" );
}
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs