Bug 35034 - moved autocomment-prefix between the prefix and the arrow. Follow up...
[lhc/web/wiklou.git] / includes / Metadata.php
index aff103f..e5e3296 100644 (file)
@@ -1,6 +1,5 @@
 <?php
 /**
- * Provides DublinCore and CreativeCommons metadata
  *
  * Copyright 2004, Evan Prodromou <evan@wikitravel.org>.
  *
@@ -29,15 +28,12 @@ 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();
 
-       /**
-        *
-        */
        protected function setup() {
                global $wgOut, $wgRequest;
 
@@ -45,19 +41,15 @@ abstract class RdfMetaData {
                $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;
+                       throw new HttpError( 406, wfMessage( 'notacceptable' ) );
                }
+
+               $wgOut->disable();
+               $wgRequest->response()->header( "Content-type: {$rdftype}; charset=utf-8" );
+               $wgOut->sendCacheControl();
+               return true;
        }
 
-       /**
-        *
-        */
        protected function reallyFullUrl() {
                return $this->mArticle->getTitle()->getFullURL();
        }
@@ -65,7 +57,7 @@ abstract class RdfMetaData {
        protected function basics() {
                global $wgLanguageCode, $wgSitename;
 
-               $this->element( 'title', $this->mArticle->mTitle->getText() );
+               $this->element( 'title', $this->mArticle->getTitle()->getText() );
                $this->pageOrString( 'publisher', wfMsg( 'aboutpage' ), $wgSitename );
                $this->element( 'language', $wgLanguageCode );
                $this->element( 'type', 'Text' );
@@ -94,11 +86,12 @@ abstract class RdfMetaData {
                  . substr($timestamp, 6, 2);
        }
 
-       protected function pageOrString( $name, $page, $str ){
-               if( $page instanceof Title )
+       protected function pageOrString( $name, $page, $str ) {
+               if( $page instanceof Title ) {
                        $nt = $page;
-               else
+               } else {
                        $nt = Title::newFromText( $page );
+               }
 
                if( !$nt || $nt->getArticleID() == 0 ){
                        $this->element( $name, $str );
@@ -107,7 +100,11 @@ abstract class RdfMetaData {
                }
        }
 
-       protected function page( $name, $title ){
+       /**
+        * @param $name string
+        * @param $title Title
+        */
+       protected function page( $name, $title ) {
                $this->url( $name, $title->getFullUrl() );
        }
 
@@ -116,7 +113,7 @@ abstract class RdfMetaData {
                print "\t\t<dc:{$name} rdf:resource=\"{$url}\" />\n";
        }
 
-       protected function person($name, User $user ){
+       protected function person( $name, User $user ) {
                if( $user->isAnon() ){
                        $this->element( $name, wfMsgExt( 'anonymous', array( 'parsemag' ), 1 ) );
                } else {
@@ -140,9 +137,9 @@ abstract class RdfMetaData {
                if( $wgRightsPage && ( $nt = Title::newFromText( $wgRightsPage ) )
                        && ($nt->getArticleID() != 0)) {
                        $this->page('rights', $nt);
-               } else if( $wgRightsUrl ){
+               } elseif( $wgRightsUrl ){
                        $this->url('rights', $wgRightsUrl);
-               } else if( $wgRightsText ){
+               } elseif( $wgRightsText ){
                        $this->element( 'rights', $wgRightsText );
                }
        }
@@ -198,125 +195,3 @@ abstract class RdfMetaData {
        }
 }
 
-class DublinCoreRdf extends RdfMetaData {
-
-       public function show(){
-               if( $this->setup() ){
-                       $this->prologue();
-                       $this->basics();
-                       $this->epilogue();
-               }
-       }
-
-       /**
-        * begin of the page
-        */
-       protected function prologue() {
-               global $wgOutputEncoding;
-
-               $url = htmlspecialchars( $this->reallyFullUrl() );
-               print <<<PROLOGUE
-<?xml version="1.0" encoding="{$wgOutputEncoding}" ?>
-<!DOCTYPE rdf:RDF PUBLIC "-//DUBLIN CORE//DCMES DTD 2002/07/31//EN" "http://dublincore.org/documents/2002/07/31/dcmes-xml/dcmes-xml-dtd.dtd">
-<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-       xmlns:dc="http://purl.org/dc/elements/1.1/">
-       <rdf:Description rdf:about="{$url}">
-
-PROLOGUE;
-       }
-
-       /**
-        * end of the page
-        */
-       protected function epilogue() {
-               print <<<EPILOGUE
-       </rdf:Description>
-</rdf:RDF>
-EPILOGUE;
-       }
-}
-
-class CreativeCommonsRdf extends RdfMetaData {
-
-       public function show(){
-               if( $this->setup() ){
-                       global $wgRightsUrl;
-
-                       $url = $this->reallyFullUrl();
-
-                       $this->prologue();
-                       $this->subPrologue('Work', $url);
-
-                       $this->basics();
-                       if( $wgRightsUrl ){
-                               $url = htmlspecialchars( $wgRightsUrl );
-                               print "\t\t<cc:license rdf:resource=\"$url\" />\n";
-                       }
-
-                       $this->subEpilogue('Work');
-
-                       if( $wgRightsUrl ){
-                               $terms = $this->getTerms( $wgRightsUrl );
-                               if( $terms ){
-                                       $this->subPrologue( 'License', $wgRightsUrl );
-                                       $this->license( $terms );
-                                       $this->subEpilogue( 'License' );
-                               }
-                       }
-               }
-
-               $this->epilogue();
-       }
-
-       protected function prologue() {
-               global $wgOutputEncoding;
-               echo <<<PROLOGUE
-<?xml version='1.0'  encoding="{$wgOutputEncoding}" ?>
-<rdf:RDF xmlns:cc="http://web.resource.org/cc/"
-       xmlns:dc="http://purl.org/dc/elements/1.1/"
-       xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
-
-PROLOGUE;
-       }
-
-       protected function subPrologue( $type, $url ){
-               $url = htmlspecialchars( $url );
-               echo "\t<cc:{$type} rdf:about=\"{$url}\">\n";
-       }
-
-       protected function subEpilogue($type) {
-               echo "\t</cc:{$type}>\n";
-       }
-
-       protected function license($terms) {
-
-               foreach( $terms as $term ){
-                       switch( $term ) {
-                        case 're':
-                               $this->term('permits', 'Reproduction'); break;
-                        case 'di':
-                               $this->term('permits', 'Distribution'); break;
-                        case 'de':
-                               $this->term('permits', 'DerivativeWorks'); break;
-                        case 'nc':
-                               $this->term('prohibits', 'CommercialUse'); break;
-                        case 'no':
-                               $this->term('requires', 'Notice'); break;
-                        case 'by':
-                               $this->term('requires', 'Attribution'); break;
-                        case 'sa':
-                               $this->term('requires', 'ShareAlike'); break;
-                        case 'sc':
-                               $this->term('requires', 'SourceCode'); break;
-                       }
-               }
-       }
-
-       protected function term( $term, $name ){
-               print "\t\t<cc:{$term} rdf:resource=\"http://web.resource.org/cc/{$name}\" />\n";
-       }
-
-       protected function epilogue() {
-               echo "</rdf:RDF>\n";
-       }
-}
\ No newline at end of file