Clean up <html> generation slightly
[lhc/web/wiklou.git] / includes / OutputPage.php
index 870849d..4a2b819 100644 (file)
@@ -2017,12 +2017,15 @@ class OutputPage {
         *
         * @param $title Title to link
         * @param $query String: query string
+        * @param $text String text of the link (input is not escaped)
         */
-       public function addReturnTo( $title, $query = array(), $text=null ) {
+       public function addReturnTo( $title, $query=array(), $text=null ) {
                global $wgUser;
                $this->addLink( array( 'rel' => 'next', 'href' => $title->getFullUrl() ) );
-               $link = wfMsgHtml( 'returnto', $wgUser->getSkin()->link(
-                       $title, $text, array(), $query ) );
+               $link = wfMsgHtml( 
+                       'returnto', 
+                       $wgUser->getSkin()->link( $title, $text, array(), $query )
+               );
                $this->addHTML( "<p id=\"mw-returnto\">{$link}</p>\n" );
        }
 
@@ -2085,11 +2088,12 @@ class OutputPage {
                }
 
                if ( $this->getHTMLTitle() == '' ) {
-                       $this->setHTMLTitle(  wfMsg( 'pagetitle', $this->getPageTitle() ));
+                       $this->setHTMLTitle( wfMsg( 'pagetitle', $this->getPageTitle() ) );
                }
 
                $dir = $wgContLang->getDir();
 
+               $htmlAttribs = array( 'lang' => $wgContLanguageCode, 'dir' => $dir );
                if ( $wgHtml5 ) {
                        if ( $wgWellFormedXml ) {
                                # Unknown elements and attributes are okay in XML, but unknown
@@ -2104,34 +2108,42 @@ class OutputPage {
                                # Much saner.
                                $ret .= "<!doctype html>\n";
                        }
-                       $ret .= "<html lang=\"$wgContLanguageCode\" dir=\"$dir\"";
-                       if ( $wgHtml5Version ) $ret .= " version=\"$wgHtml5Version\"";
-                       $ret .= ">\n";
+                       if ( $wgHtml5Version ) {
+                               $htmlAttribs['version'] = $wgHtml5Version;
+                       }
                } else {
                        $ret .= "<!DOCTYPE html PUBLIC \"$wgDocType\" \"$wgDTD\">\n";
-                       $ret .= "<html xmlns=\"{$wgXhtmlDefaultNamespace}\" ";
-                       foreach($wgXhtmlNamespaces as $tag => $ns) {
-                               $ret .= "xmlns:{$tag}=\"{$ns}\" ";
+                       $htmlAttribs['xmlns'] = $wgXhtmlDefaultNamespace;
+                       foreach ( $wgXhtmlNamespaces as $tag => $ns ) {
+                               $htmlAttribs["xmlns:$tag"] = $ns;
                        }
-                       $ret .= "lang=\"$wgContLanguageCode\" dir=\"$dir\">\n";
                }
+               $ret .= Html::element( 'html', $htmlAttribs ) . "\n";
 
-               $ret .= "<head>\n";
+               $openHead = Html::openElement( 'head' );
+               if ( $openHead ) {
+                       # Don't bother with the newline if $head == ''
+                       $ret .= "$openHead\n";
+               }
                $ret .= "<title>" . htmlspecialchars( $this->getHTMLTitle() ) . "</title>\n";
                $ret .= implode( "\n", array(
                        $this->getHeadLinks(),
                        $this->buildCssLinks(),
                        $this->getHeadScripts( $sk ),
                        $this->getHeadItems(),
-               ));
-               if( $sk->usercss ){
+               ) );
+               if ( $sk->usercss ) {
                        $ret .= Html::inlineStyle( $sk->usercss );
                }
 
-               if ($wgUseTrackbacks && $this->isArticleRelated())
+               if ( $wgUseTrackbacks && $this->isArticleRelated() ) {
                        $ret .= $this->getTitle()->trackbackRDF();
+               }
 
-               $ret .= "</head>\n";
+               $closeHead = Html::closeElement( 'head' );
+               if ( $closeHead ) {
+                       $ret .= "$closeHead\n";
+               }
 
                $bodyAttrs = array();