Add class mw-editable in body element
authorAbián <davidabian@wikimedia.es>
Thu, 8 Nov 2018 22:51:19 +0000 (22:51 +0000)
committerAbián <davidabian@wikimedia.es>
Fri, 9 Nov 2018 11:22:14 +0000 (11:22 +0000)
We use quickUserCan() since this is not a critical
functionality.

Bug: T208315
Change-Id: I27b7d22eb8116c40ffa1fc7af22a9326cceb1610

includes/skins/Skin.php

index 1b91c89..3247f1d 100644 (file)
@@ -438,6 +438,7 @@ abstract class Skin extends ContextSource {
         */
        function getPageClasses( $title ) {
                $numeric = 'ns-' . $title->getNamespace();
+               $user = $this->getUser();
 
                if ( $title->isSpecialPage() ) {
                        $type = 'ns-special';
@@ -449,10 +450,16 @@ abstract class Skin extends ContextSource {
                        } else {
                                $type .= ' mw-invalidspecialpage';
                        }
-               } elseif ( $title->isTalkPage() ) {
-                       $type = 'ns-talk';
                } else {
-                       $type = 'ns-subject';
+                       if ( $title->isTalkPage() ) {
+                               $type = 'ns-talk';
+                       } else {
+                               $type = 'ns-subject';
+                       }
+                       // T208315: add HTML class when the user can edit the page
+                       if ( $title->quickUserCan( 'edit', $user ) ) {
+                               $type .= ' mw-editable';
+                       }
                }
 
                $name = Sanitizer::escapeClass( 'page-' . $title->getPrefixedText() );