testPngNativetZtxt requires zlib extension
[lhc/web/wiklou.git] / includes / Metadata.php
index 62d1043..9a4ddca 100644 (file)
@@ -1,21 +1,23 @@
 <?php
 /**
+ * Base code to format metadata.
  *
  * Copyright 2004, Evan Prodromou <evan@wikitravel.org>.
  *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
  *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
  *
  * @author Evan Prodromou <evan@wikitravel.org>
  * @file
@@ -28,11 +30,11 @@ abstract class RdfMetaData {
         * Constructor
         * @param $article Article object
         */
-       public function __construct( Article $article ) {
+       public function __construct( Page $article ) {
                $this->mArticle = $article;
        }
 
-       public abstract function show();
+       abstract public function show();
 
        protected function setup() {
                global $wgOut, $wgRequest;
@@ -40,15 +42,14 @@ abstract class RdfMetaData {
                $httpaccept = isset( $_SERVER['HTTP_ACCEPT'] ) ? $_SERVER['HTTP_ACCEPT'] : null;
                $rdftype = wfNegotiateType( wfAcceptToPrefs( $httpaccept ), wfAcceptToPrefs( self::RDF_TYPE_PREFS ) );
 
-               if( !$rdftype ){
-                       wfHttpError( 406, 'Not Acceptable', wfMsg( 'notacceptable' ) );
-                       return false;
-               } else {
-                       $wgOut->disable();
-                       $wgRequest->response()->header( "Content-type: {$rdftype}; charset=utf-8" );
-                       $wgOut->sendCacheControl();
-                       return true;
+               if( !$rdftype ) {
+                       throw new HttpError( 406, wfMessage( 'notacceptable' ) );
                }
+
+               $wgOut->disable();
+               $wgRequest->response()->header( "Content-type: {$rdftype}; charset=utf-8" );
+               $wgOut->sendCacheControl();
+               return true;
        }
 
        protected function reallyFullUrl() {
@@ -58,8 +59,8 @@ abstract class RdfMetaData {
        protected function basics() {
                global $wgLanguageCode, $wgSitename;
 
-               $this->element( 'title', $this->mArticle->mTitle->getText() );
-               $this->pageOrString( 'publisher', wfMsg( 'aboutpage' ), $wgSitename );
+               $this->element( 'title', $this->mArticle->getTitle()->getText() );
+               $this->pageOrString( 'publisher', wfMessage( 'aboutpage' )->text(), $wgSitename );
                $this->element( 'language', $wgLanguageCode );
                $this->element( 'type', 'Text' );
                $this->element( 'format', 'text/html' );
@@ -69,7 +70,7 @@ abstract class RdfMetaData {
                $lastEditor = User::newFromId( $this->mArticle->getUser() );
                $this->person( 'creator', $lastEditor );
 
-               foreach( $this->mArticle->getContributors() as $user ){
+               foreach( $this->mArticle->getContributors() as $user ) {
                        $this->person( 'contributor', $user );
                }
 
@@ -94,7 +95,7 @@ abstract class RdfMetaData {
                        $nt = Title::newFromText( $page );
                }
 
-               if( !$nt || $nt->getArticleID() == 0 ){
+               if( !$nt || $nt->getArticleID() == 0 ) {
                        $this->element( $name, $str );
                } else {
                        $this->page( $name, $nt );
@@ -115,15 +116,19 @@ abstract class RdfMetaData {
        }
 
        protected function person( $name, User $user ) {
-               if( $user->isAnon() ){
-                       $this->element( $name, wfMsgExt( 'anonymous', array( 'parsemag' ), 1 ) );
+               if( $user->isAnon() ) {
+                       $this->element( $name, wfMessage( 'anonymous' )->numParams( 1 )->text() );
                } else {
                        $real = $user->getRealName();
                        if( $real ) {
                                $this->element( $name, $real );
                        } else {
                                $userName = $user->getName();
-                               $this->pageOrString( $name, $user->getUserPage(), wfMsgExt( 'siteuser', 'parsemag', $userName, $userName ) );
+                               $this->pageOrString(
+                                       $name,
+                                       $user->getUserPage(),
+                                       wfMessage( 'siteuser', $userName, $userName )->text()
+                               );
                        }
                }
        }
@@ -136,19 +141,19 @@ abstract class RdfMetaData {
                global $wgRightsPage, $wgRightsUrl, $wgRightsText;
 
                if( $wgRightsPage && ( $nt = Title::newFromText( $wgRightsPage ) )
-                       && ($nt->getArticleID() != 0)) {
-                       $this->page('rights', $nt);
-               } else if( $wgRightsUrl ){
-                       $this->url('rights', $wgRightsUrl);
-               } else if( $wgRightsText ){
+                       && ( $nt->getArticleID() != 0 ) ) {
+                       $this->page( 'rights', $nt );
+               } elseif( $wgRightsUrl ) {
+                       $this->url( 'rights', $wgRightsUrl );
+               } elseif( $wgRightsText ) {
                        $this->element( 'rights', $wgRightsText );
                }
        }
 
-       protected function getTerms( $url ){
+       protected function getTerms( $url ) {
                global $wgLicenseTerms;
 
-               if( $wgLicenseTerms ){
+               if( $wgLicenseTerms ) {
                        return $wgLicenseTerms;
                } else {
                        $known = $this->getKnownLicenses();
@@ -195,4 +200,3 @@ abstract class RdfMetaData {
                return $knownLicenses;
        }
 }
-