Răsfoiți Sursa

Add try catch to avoid error when loading a invalid URL see #14784

Julio 6 ani în urmă
părinte
comite
8bbcd6affe
2 a modificat fișierele cu 15 adăugiri și 11 ștergeri
  1. 14 11
      plugin/rss/index.php
  2. 1 0
      plugin/rss/lang/english.php

+ 14 - 11
plugin/rss/index.php

@@ -16,17 +16,20 @@ if (empty($url)) {
 
     return;
 }
-
-$channel = Reader::import($url);
-
-if (!empty($channel)) {
-    /** @var FeedInterface $item */
-    foreach ($channel as $item) {
-        $title = $item->getTitle();
-        $link = $item->getLink();
-        if (!empty($link)) {
-            $title = Display::url($title, $link, ['target' => '_blank']);
+try {
+    $channel = Reader::import($url);
+    if (!empty($channel)) {
+        /** @var FeedInterface $item */
+        foreach ($channel as $item) {
+            $title = $item->getTitle();
+            $link = $item->getLink();
+            if (!empty($link)) {
+                $title = Display::url($title, $link, ['target' => '_blank']);
+            }
+            echo Display::panel($item->getDescription(), $title);
         }
-        echo Display::panel($item->getDescription(), $title);
     }
+} catch (Exception $e) {
+    echo Display::return_message($plugin->get_lang('no_valid_rss'), 'warning');
+    error_log($e->getMessage());
 }

+ 1 - 0
plugin/rss/lang/english.php

@@ -13,3 +13,4 @@ $strings['block_title'] = "Block title";
 
 $strings['title'] = "Title";
 $strings['no_rss'] = "There is no RSS configured. Please add a RSS";
+$strings['no_valid_rss'] = "Please check if the URL contains a valid RSS URL";