X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2FFeed.php;h=1674b1317428021b982f8ce04b9848e2e8548773;hb=0971c0aca2b66cb0d7a33c6db49694b4fae506fd;hp=a30ba5cecbfbf8afdf9efcadfbf53cd2cc99f7a0;hpb=d514374a0062202d680af131a8479eace677be70;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/Feed.php b/includes/Feed.php index a30ba5cecb..1674b13174 100644 --- a/includes/Feed.php +++ b/includes/Feed.php @@ -6,7 +6,7 @@ * Available feeds are defined in Defines.php * * Copyright © 2004 Brion Vibber - * http://www.mediawiki.org/ + * https://www.mediawiki.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 @@ -36,28 +36,32 @@ * @ingroup Feed */ class FeedItem { - /** - * @var Title - */ - var $title; + /** @var Title */ + protected $title; + + protected $description; + + protected $url; + + protected $date; - var $description; - var $url; - var $date; - var $author; - var $uniqueId; - var $comments; - var $rssIsPermalink = false; + protected $author; + + protected $uniqueId; + + protected $comments; + + public $rssIsPermalink = false; /** * Constructor * * @param string|Title $title Item's title - * @param $description String + * @param string $description * @param string $url URL uniquely designating the item. * @param string $date Item's date * @param string $author Author's user name - * @param $comments String + * @param string $comments */ function __construct( $title, $description, $url, $date = '', $author = '', $comments = '' ) { $this->title = $title; @@ -72,8 +76,8 @@ class FeedItem { /** * Encode $string so that it can be safely embedded in a XML document * - * @param string $string string to encode - * @return String + * @param string $string String to encode + * @return string */ public function xmlEncode( $string ) { $string = str_replace( "\r\n", "\n", $string ); @@ -84,7 +88,7 @@ class FeedItem { /** * Get the unique id of this item * - * @return String + * @return string */ public function getUniqueId() { if ( $this->uniqueId ) { @@ -93,10 +97,10 @@ class FeedItem { } /** - * set the unique id of an item + * Set the unique id of an item * - * @param string $uniqueId unique id for the item - * @param $rssIsPermalink Boolean: set to true if the guid (unique id) is a permalink (RSS feeds only) + * @param string $uniqueId Unique id for the item + * @param bool $rssIsPermalink Set to true if the guid (unique id) is a permalink (RSS feeds only) */ public function setUniqueId( $uniqueId, $rssIsPermalink = false ) { $this->uniqueId = $uniqueId; @@ -106,7 +110,7 @@ class FeedItem { /** * Get the title of this item; already xml-encoded * - * @return String + * @return string */ public function getTitle() { return $this->xmlEncode( $this->title ); @@ -115,7 +119,7 @@ class FeedItem { /** * Get the URL of this item; already xml-encoded * - * @return String + * @return string */ public function getUrl() { return $this->xmlEncode( $this->url ); @@ -124,7 +128,7 @@ class FeedItem { /** * Get the description of this item; already xml-encoded * - * @return String + * @return string */ public function getDescription() { return $this->xmlEncode( $this->description ); @@ -133,7 +137,7 @@ class FeedItem { /** * Get the language of this item * - * @return String + * @return string */ public function getLanguage() { global $wgLanguageCode; @@ -141,9 +145,9 @@ class FeedItem { } /** - * Get the title of this item + * Get the date of this item * - * @return String + * @return string */ public function getDate() { return $this->date; @@ -152,7 +156,7 @@ class FeedItem { /** * Get the author of this item; already xml-encoded * - * @return String + * @return string */ public function getAuthor() { return $this->xmlEncode( $this->author ); @@ -161,7 +165,7 @@ class FeedItem { /** * Get the comment of this item; already xml-encoded * - * @return String + * @return string */ public function getComments() { return $this->xmlEncode( $this->comments ); @@ -171,7 +175,7 @@ class FeedItem { * Quickie hack... strip out wikilinks to more legible form from the comment. * * @param string $text wikitext - * @return String + * @return string */ public static function stripComment( $text ) { return preg_replace( '/\[\[([^]]*\|)?([^]]+)\]\]/', '\2', $text ); @@ -190,7 +194,6 @@ abstract class ChannelFeed extends FeedItem { * @code * print ""; * @endcode - * @param $item */ abstract public function outHeader(); @@ -200,7 +203,7 @@ abstract class ChannelFeed extends FeedItem { * @code * print "..."; * @endcode - * @param $item + * @param FeedItem $item */ abstract public function outItem( $item ); @@ -239,27 +242,35 @@ abstract class ChannelFeed extends FeedItem { * Return an internet media type to be sent in the headers. * * @return string - * @private */ - function contentType() { + private function contentType() { global $wgRequest; + $ctype = $wgRequest->getVal( 'ctype', 'application/xml' ); - $allowedctypes = array( 'application/xml', 'text/xml', 'application/rss+xml', 'application/atom+xml' ); - return (in_array( $ctype, $allowedctypes ) ? $ctype : 'application/xml'); + $allowedctypes = array( + 'application/xml', + 'text/xml', + 'application/rss+xml', + 'application/atom+xml' + ); + + return ( in_array( $ctype, $allowedctypes ) ? $ctype : 'application/xml' ); } /** * Output the initial XML headers with a stylesheet for legibility * if someone finds it in a browser. - * @private */ - function outXmlHeader() { + protected function outXmlHeader() { global $wgStylePath, $wgStyleVersion; $this->httpHeaders(); echo '' . "\n"; echo '\n"; } } @@ -274,15 +285,15 @@ class RSSFeed extends ChannelFeed { /** * Format a date given a timestamp * - * @param $ts Integer: timestamp - * @return String: date string + * @param int $ts Timestamp + * @return string Date string */ function formatTime( $ts ) { return gmdate( 'D, d M Y H:i:s \G\M\T', wfTimestamp( TS_UNIX, $ts ) ); } /** - * Ouput an RSS 2.0 header + * Output an RSS 2.0 header */ function outHeader() { global $wgVersion; @@ -301,24 +312,26 @@ class RSSFeed extends ChannelFeed { /** * Output an RSS 2.0 item - * @param $item FeedItem: item to be output + * @param FeedItem $item Item to be output */ function outItem( $item ) { + // @codingStandardsIgnoreStart Ignore long lines and formatting issues. ?> - <?php print $item->getTitle() ?> - getUrl(), PROTO_CURRENT ) ?> - rssIsPermalink ) print ' isPermaLink="false"' ?>>getUniqueId() ?> + <?php print $item->getTitle(); ?> + getUrl(), PROTO_CURRENT ); ?> + rssIsPermalink ) { print ' isPermaLink="false"'; } ?>>getUniqueId(); ?> getDescription() ?> - getDate() ) { ?>formatTime( $item->getDate() ) ?> - getAuthor() ) { ?>getAuthor() ?> - getComments() ) { ?>getComments(), PROTO_CURRENT ) ?> + getDate() ) { ?>formatTime( $item->getDate() ); ?> + getAuthor() ) { ?>getAuthor(); ?> + getComments() ) { ?>getComments(), PROTO_CURRENT ); ?> @@ -349,6 +362,7 @@ class AtomFeed extends ChannelFeed { global $wgVersion; $this->outXmlHeader(); + // @codingStandardsIgnoreStart Ignore long lines and formatting issues. ?> getFeedId() ?> <?php print $this->getTitle() ?> @@ -359,48 +373,48 @@ class AtomFeed extends ChannelFeed { MediaWiki getSelfUrl(); } /** * Atom 1.0 requests a self-reference to the feed. * @return string - * @private */ - function getSelfUrl() { + private function getSelfUrl() { global $wgRequest; return htmlspecialchars( $wgRequest->getFullRequestURL() ); } /** * Output a given item. - * @param $item + * @param FeedItem $item */ function outItem( $item ) { global $wgMimeType; + // @codingStandardsIgnoreStart Ignore long lines and formatting issues. ?> - getUniqueId() ?> - <?php print $item->getTitle() ?> - - getDate() ) { ?> - formatTime( $item->getDate() ) ?>Z + getUniqueId(); ?> + <?php print $item->getTitle(); ?> + + getDate() ) { ?> + formatTime( $item->getDate() ); ?>Z getDescription() ?> - getAuthor() ) { ?>getAuthor() ?> + getAuthor() ) { ?>getAuthor(); ?> '). + * Outputs the footer for Atom 1.0 feed (basically '\'). */ function outFooter() {?>