+ /**
+ * Provide the <abbr> element appropriate to a given abbreviated flag,
+ * namely the flag indicating a new page, a minor edit, a bot edit, or an
+ * unpatrolled edit. By default in English it will contain "N", "m", "b",
+ * "!" respectively, plus it will have an appropriate title and class.
+ *
+ * @param $key String: 'newpage', 'unpatrolled', 'minor', or 'bot'
+ * @return String: Raw HTML
+ */
+ public static function flag( $flag ) {
+ static $messages = null;
+ if ( is_null( $messages ) ) {
+ $messages = array(
+ 'newpage' => array( 'newpageletter', 'recentchanges-label-newpage' ),
+ 'minoredit' => array( 'minoreditletter', 'recentchanges-label-minor' ),
+ 'botedit' => array( 'boteditletter', 'recentchanges-label-bot' ),
+ 'unpatrolled' => array( 'unpatrolledletter', 'recentchanges-label-unpatrolled' ),
+ );
+ foreach( $messages as $key => &$value ) {
+ $value[0] = wfMsgExt( $value[0], 'escapenoentities' );
+ $value[1] = wfMsgExt( $value[1], 'escapenoentities' );
+ }
+ }
+
+ # Inconsistent naming, bleh
+ $map = array(
+ 'newpage' => 'newpage',
+ 'minor' => 'minoredit',
+ 'bot' => 'botedit',
+ 'unpatrolled' => 'unpatrolled',
+ 'minoredit' => 'minoredit',
+ 'botedit' => 'botedit',
+ );
+ $flag = $map[$flag];
+
+ return "<abbr class='$flag' title='" . $messages[$flag][1] . "'>" . $messages[$flag][0] . '</abbr>';
+ }
+