X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FMetadata.php;h=e5e3296b3ba2c3ed1725f82dcf030b007d59d87f;hb=88bdda41b1d31b76543f813f6f2e98fd8b40749f;hp=5f9a13bb5a0ec952801b9f91ce7f3fa5548c8d19;hpb=15df9a9d5cd3c217ed90c99e4c094e3c985468f0;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/Metadata.php b/includes/Metadata.php index 5f9a13bb5a..e5e3296b3b 100644 --- a/includes/Metadata.php +++ b/includes/Metadata.php @@ -1,6 +1,5 @@ . * @@ -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' ); @@ -95,10 +87,11 @@ abstract class RdfMetaData { } protected function pageOrString( $name, $page, $str ) { - if( $page instanceof Title ) + if( $page instanceof Title ) { $nt = $page; - else + } else { $nt = Title::newFromText( $page ); + } if( !$nt || $nt->getArticleID() == 0 ){ $this->element( $name, $str ); @@ -107,6 +100,10 @@ abstract class RdfMetaData { } } + /** + * @param $name string + * @param $title Title + */ protected function page( $name, $title ) { $this->url( $name, $title->getFullUrl() ); } @@ -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,122 +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() { - $url = htmlspecialchars( $this->reallyFullUrl() ); - print << - - - - -PROLOGUE; - } - - /** - * end of the page - */ - protected function epilogue() { - print << - -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\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() { - echo << - - -PROLOGUE; - } - - protected function subPrologue( $type, $url ){ - $url = htmlspecialchars( $url ); - echo "\t\n"; - } - - protected function subEpilogue($type) { - echo "\t\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\n"; - } - - protected function epilogue() { - echo "\n"; - } -}