X-Git-Url: https://git.ao2.it/tweeper.git/blobdiff_plain/da9250bb9572c83ed397d3bfda0e44fa13016efb..4b5f17e2b3d0851f7f038e84cbcf9b5a97b0e9e9:/src/Tweeper.php diff --git a/src/Tweeper.php b/src/Tweeper.php index b75409b..09bd7cc 100644 --- a/src/Tweeper.php +++ b/src/Tweeper.php @@ -49,10 +49,15 @@ class Tweeper { * Enables showing the username in front of the content for multi-user * sites (enabled by default). Only some stylesheets supports this * functionality (twitter, instagram, pump.io). + * @param bool $show_multimedia + * Enables showing multimedia content (images, videos) directly in the + * item description (enabled by default). Only some stylesheets supports + * this functionality (twitter, instagram, dilbert). */ - public function __construct($generate_enclosure = FALSE, $show_usernames = TRUE) { + public function __construct($generate_enclosure = FALSE, $show_usernames = TRUE, $show_multimedia = TRUE) { $this->generate_enclosure = $generate_enclosure; $this->show_usernames = $show_usernames; + $this->show_multimedia = $show_multimedia; } /** @@ -201,10 +206,17 @@ class Tweeper { // See http://sourceforge.net/p/feedvalidator/bugs/72/ $http_url = preg_replace("/^https/", "http", $url_info['url']); + // When the server does not provide a Content-Length header, + // curl_getinfo() would return a negative value for + // "download_content_length", however RSS recommends to use 0 when the + // enclosure's size cannot be determined. + // See: https://www.feedvalidator.org/docs/error/UseZeroForUnknown.html + $length = max($url_info['download_content_length'], 0); + $dom = new DOMDocument(); $enc = $dom->createElement('enclosure'); $enc->setAttribute('url', $http_url); - $enc->setAttribute('length', $url_info['download_content_length']); + $enc->setAttribute('length', $length); $enc->setAttribute('type', $url_info['content_type']); return $enc; @@ -362,6 +374,7 @@ class Tweeper { $xsltProcessor->registerPHPFunctions(); $xsltProcessor->setParameter('', 'generate-enclosure', $this->generate_enclosure); $xsltProcessor->setParameter('', 'show-usernames', $this->show_usernames); + $xsltProcessor->setParameter('', 'show-multimedia', $this->show_multimedia); $xsltProcessor->importStylesheet($xslDoc); return $xsltProcessor;