http://www.mediawiki.org/wiki/Special:Code/MediaWiki/60980

Revision: 60980
Author:   raymond
Date:     2010-01-12 19:45:49 +0000 (Tue, 12 Jan 2010)

Log Message:
-----------
* Show [edit] links for users with editinterface right only
* While I am at it: Use Xml::/Html:: functions, commaList() and link() instead 
of deprecated functions

Modified Paths:
--------------
    trunk/extensions/Gadgets/SpecialGadgets.php

Modified: trunk/extensions/Gadgets/SpecialGadgets.php
===================================================================
--- trunk/extensions/Gadgets/SpecialGadgets.php 2010-01-12 19:43:03 UTC (rev 
60979)
+++ trunk/extensions/Gadgets/SpecialGadgets.php 2010-01-12 19:45:49 UTC (rev 
60980)
@@ -50,54 +50,63 @@
                $listOpen = false;
 
                $msgOpt = array( 'parseinline', 'parsemag' );
-
+               $editInterfaceAllowed = $wgUser->isAllowed( 'editinterface' ) ? 
true : false ;
+                       
                foreach ( $gadgets as $section => $entries ) {
                        if ( $section !== false && $section !== '' ) {
                                $t = Title::makeTitleSafe( NS_MEDIAWIKI, 
"Gadget-section-$section$lang" );
-                               $lnk = $t ? $skin->makeLinkObj( $t, 
wfMsgHTML("edit"), 'action=edit' ) : htmlspecialchars($section);
+                               if ( $editInterfaceAllowed ) {
+                                       $lnkTarget = $t
+                                               ? $skin->link( $t, wfMsgHTML( 
'edit' ), array(), array( 'action' => 'edit' ) ) 
+                                               : htmlspecialchars( $section );
+                                       $lnk =  "    [$lnkTarget]";
+                               } else {
+                                       $lnk = '';
+                               }
                                $ttext = wfMsgExt( "gadget-section-$section", 
$msgOpt );
 
                                if( $listOpen ) {
-                                       $wgOut->addHTML( '</ul>' );
+                                       $wgOut->addHTML( Xml::closeElement( 
'ul' ) . "\n" );
                                        $listOpen = false;
                                }
-                               $wgOut->addHTML( "\n<h2>$ttext &nbsp; &nbsp; 
[$lnk]</h2>\n" );
+                               $wgOut->addHTML( Html::rawElement( 'h2', 
array(), $ttext . $lnk ) . "\n" );
                        }
 
                        foreach ( $entries as $gname => $code ) {
                                $t = Title::makeTitleSafe( NS_MEDIAWIKI, 
"Gadget-$gname$lang" );
                                if ( !$t ) continue;
 
-                               $lnk = $skin->makeLinkObj( $t, 
wfMsgHTML("edit"), 'action=edit' );
+                               if ( $editInterfaceAllowed ) {
+                                       $lnkTarget = $skin->link( $t, 
wfMsgHTML( 'edit' ), array(), array( 'action' => 'edit' ) );
+                                       $lnk =  "&nbsp; &nbsp; [$lnkTarget]";
+                               } else {
+                                       $lnk = '';
+                               }
                                $ttext = wfMsgExt( "gadget-$gname", $msgOpt );
 
                                if( !$listOpen ) {
                                        $listOpen = true;
-                                       $wgOut->addHTML( '<ul>' );
+                                       $wgOut->addHTML( Xml::openElement( 'ul' 
) );
                                }
-                               $wgOut->addHTML( "<li>" );
-                               $wgOut->addHTML( "$ttext &nbsp; &nbsp; 
[$lnk]<br />" );
+                               $wgOut->addHTML( Xml::openElement( 'li' ) .
+                                               $ttext . $lnk . "<br />" .
+                                               wfMsgHTML( 'gadgets-uses' ) . 
wfMsg( 'colon-separator' )
+                               );
 
-                               $wgOut->addHTML( wfMsgHTML( "gadgets-uses" ) . 
wfMsg( 'colon-separator' ) );
-
-                               $first = true;
+                               $lnk = array();
                                foreach ( $code as $codePage ) {
                                        $t = Title::makeTitleSafe( 
NS_MEDIAWIKI, "Gadget-$codePage" );
                                        if ( !$t ) continue;
 
-                                       if ( $first ) $first = false;
-                                       else $wgOut->addHTML(", ");
-
-                                       $lnk = $skin->makeLinkObj( $t, 
htmlspecialchars( $t->getText() ) );
-                                       $wgOut->addHTML($lnk);
+                                       $lnk[] = $skin->link( $t, 
htmlspecialchars( $t->getText() ) );
                                }
-
-                               $wgOut->addHTML( "</li>" );
+                               $wgOut->addHTML( $wgLang->commaList( $lnk ) );
+                               $wgOut->addHTML( Xml::closeElement( 'li' ) . 
"\n" );
                        }
                }
 
                if( $listOpen ) {
-                       $wgOut->addHTML( '</ul>' );
+                       $wgOut->addHTML( Xml::closeElement( 'ul' ) . "\n" );
                }
        }
 }



_______________________________________________
MediaWiki-CVS mailing list
MediaWiki-CVS@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to