openrat-cms

# OpenRat Content Management System
git clone http://git.code.weiherhei.de/openrat-cms.git
Log | Files | Refs

commit 50c5e9ee8dd124eb32af52133b0c65ad75cc2648
parent f830dd9556859526c5040f56b8653da3c952b1b4
Author: Jan Dankert <develop@jandankert.de>
Date:   Fri, 15 Nov 2019 00:50:32 +0100

Fix: Catch exception of failed filters.

Diffstat:
modules/cms-core/model/File.class.php | 15++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/modules/cms-core/model/File.class.php b/modules/cms-core/model/File.class.php @@ -19,6 +19,7 @@ namespace cms\model; // Standard Mime-Type +use cms\publish\filter\AbstractFilter; use cms\publish\PublishEdit; use cms\publish\PublishPreview; use cms\publish\PublishPublic; @@ -549,6 +550,7 @@ EOF continue; } + /** @var AbstractFilter $filter */ $filter = new $filterClassNameWithNS(); // Copy filter configuration to filter instance. @@ -560,7 +562,18 @@ EOF // Execute the filter. Logger::debug("Filtering '$this->filename' with filter '$filterName'."); - $this->value = $filter->filter( $this->value ); + + try { + + $this->value = $filter->filter( $this->value ); + } catch( \Exception $e ) { + // Filter has some undefined error. + Logger::warn( $e->getTraceAsString() ); + if ( $this->publisher instanceof PublishPublic ) + return ''; // Do not show errors on public publishing. + else + return $e->getMessage()."\n".$e->getTraceAsString(); + } } // Store in cache.