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

Reply via email to