Ver Fonte

Fix CSS selector for removing elements (#7037)

fix https://github.com/FreshRSS/FreshRSS/issues/7014
Case of negative filter matching the positive filter
Alexandre Alapetite há 1 ano atrás
pai
commit
d89563ab40
1 ficheiros alterados com 4 adições e 1 exclusões
  1. 4 1
      app/Models/Entry.php

+ 4 - 1
app/Models/Entry.php

@@ -842,8 +842,11 @@ HTML;
 				$path_entries_filter = trim($path_entries_filter, ', ');
 				foreach ($nodes as $node) {
 					if ($path_entries_filter !== '') {
-						$filterednodes = $xpath->query((new Gt\CssXPath\Translator($path_entries_filter))->asXPath(), $node) ?: [];
+						$filterednodes = $xpath->query((new Gt\CssXPath\Translator($path_entries_filter, 'descendant-or-self::'))->asXPath(), $node) ?: [];
 						foreach ($filterednodes as $filterednode) {
+							if ($filterednode === $node) {
+								continue 2;
+							}
 							if (!($filterednode instanceof DOMElement) || $filterednode->parentNode === null) {
 								continue;
 							}