1
0
mirror of https://github.com/RSS-Bridge/rss-bridge.git synced 2025-07-31 05:40:24 +02:00

Corrections

* Corrected GoogleBridge (URI extraction was incorrect)
* Corrected ATOM format:
* mime-type was incorrect
* Hyperlinks were not clickable.
* non-UTF8 characters are now properly filtered.
* Corrected HTML format output:
* Hyperlinks were not clickable.
* Corrected error message when SimpleHtmlDom library is not installed.
* Added changelog.
This commit is contained in:
Sebastien SAUVAGE
2013-08-12 22:37:19 +02:00
parent a84f111d8f
commit 4bf90735ef
7 changed files with 70 additions and 24 deletions

View File

@@ -26,7 +26,8 @@ class AtomFormat extends FormatAbstract{
$entryTitle = is_null($data->title) ? '' : $data->title;
$entryUri = is_null($data->uri) ? '' : $data->uri;
$entryTimestamp = is_null($data->timestamp) ? '' : date(DATE_ATOM, $data->timestamp);
$entryContent = is_null($data->content) ? '' : '<![CDATA[' . htmlentities($data->content) . ']]>';
// We prevent content from closing the CDATA too early.
$entryContent = is_null($data->content) ? '' : '<![CDATA[' . $this->sanitizeHtml(str_replace(']]>','',$data->content)) . ']]>';
$entries .= <<<EOD
@@ -65,14 +66,22 @@ EOD;
{$entries}
</feed>
EOD;
// Remove invalid non-UTF8 characters
// We cannot use iconv because of a bug in some versions of iconv.
// See http://www.php.net/manual/fr/function.iconv.php#108643
//$toReturn = iconv("UTF-8", "UTF-8//IGNORE", $toReturn);
// So we use mb_convert_encoding instead:
ini_set('mbstring.substitute_character', 'none');
$toReturn= mb_convert_encoding($toReturn, 'UTF-8', 'UTF-8');
return $toReturn;
}
public function display(){
// $this
// ->setContentType('application/atom+xml; charset=' . $this->getCharset())
// ->callContentType();
$this
->setContentType('application/atom+xml; charset=utf8') // We force UTF-8 in ATOM output.
->callContentType();
return parent::display();
}

View File

@@ -16,10 +16,9 @@ class HtmlFormat extends FormatAbstract{
$entries = '';
foreach($this->getDatas() as $data){
$entryUri = is_null($data->uri) ? $uri : $data->uri;
$entryTitle = is_null($data->title) ? '' : htmlspecialchars(strip_tags($data->title));
$entryTitle = is_null($data->title) ? '' : $this->sanitizeHtml(strip_tags($data->title));
$entryTimestamp = is_null($data->timestamp) ? '' : '<small>' . date(DATE_ATOM, $data->timestamp) . '</small>';
$entryContent = is_null($data->content) ? '' : '<p>' . $data->content . '</p>';
$entryContent = is_null($data->content) ? '' : '<p>' . $this->sanitizeHtml($data->content). '</p>';
$entries .= <<<EOD
<div class="rssitem">
@@ -52,7 +51,7 @@ EOD;
return $toReturn;
}
public function display(){
public function display() {
$this
->setContentType('text/html; charset=' . $this->getCharset())
->callContentType();