openrat-cms

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

commit a11c41513cfa4b1daadd8f51dac89d5b409d5b97
parent c15c31a09a2727e5a0eb55843dcd39e675a5082b
Author: Jan Dankert <develop@jandankert.de>
Date:   Sat, 16 Nov 2019 03:35:27 +0100

Fix: Catch Exception, if value could not be generated. So the rest of the page could be created.

Diffstat:
modules/cms-core/model/Page.class.php | 15+++++++++++++--
modules/cms-core/model/Value.class.php | 45++++++++++++++++++++++++++++++---------------
2 files changed, 43 insertions(+), 17 deletions(-)

diff --git a/modules/cms-core/model/Page.class.php b/modules/cms-core/model/Page.class.php @@ -549,8 +549,19 @@ SQL $val->languageid = $this->languageid; $val->modelid = $this->modelid; $val->page = $this; - $val->generate(); - //$val->page = null; + try { + $val->generate(); + } catch( \Exception $e ) { + // Unrecoverable Error while generating the content. + + Logger::warn('Could not generate Value '.$val->__toString() . ': '.$e->getMessage() ); + + if ( $this->publisher->isPublic() ) + $val->value = ''; + else + $val->value = '[Warning: '.$e->getMessage().']'; + } + $this->values[$elementid] = $val; } } diff --git a/modules/cms-core/model/Value.class.php b/modules/cms-core/model/Value.class.php @@ -1407,75 +1407,90 @@ SQL break; case 'lastch_user_username': $user = $this->page->lastchangeUser; - $user->load(); + if ( $user->userid ) + $user->load(); $inhalt = $user->name; break; case 'lastch_user_fullname': $user = $this->page->lastchangeUser; - $user->load(); + if ( $user->userid ) + $user->load(); $inhalt = $user->fullname; break; case 'lastch_user_mail': $user = $this->page->lastchangeUser; - $user->load(); + if ( $user->userid ) + $user->load(); $inhalt = $user->mail; break; case 'lastch_user_desc': $user = $this->page->lastchangeUser; - $user->load(); + if ( $user->userid ) + $user->load(); $inhalt = $user->desc; break; case 'lastch_user_tel': $user = $this->page->lastchangeUser; - $user->load(); + if ( $user->userid ) + $user->load(); $inhalt = $user->tel; break; case 'create_user_username': $user = $this->page->createUser; - $user->load(); + if ( $user->userid ) + $user->load(); $inhalt = $user->name; break; case 'create_user_fullname': $user = $this->page->createUser; - $user->load(); + if ( $user->userid ) + $user->load(); $inhalt = $user->fullname; break; case 'create_user_mail': $user = $this->page->createUser; - $user->load(); + if ( $user->userid ) + $user->load(); $inhalt = $user->mail; break; case 'create_user_desc': $user = $this->page->createUser; - $user->load(); + if ( $user->userid ) + $user->load(); $inhalt = $user->desc; break; case 'create_user_tel': $user = $this->page->createUser; - $user->load(); + if ( $user->userid ) + $user->load(); $inhalt = $user->tel; break; case 'act_user_username': $user = \Session::getUser(); - $inhalt = $user->name; + if ( $user ) + $inhalt = $user->name; break; case 'act_user_fullname': $user = \Session::getUser(); - $inhalt = $user->fullname; + if ( $user ) + $inhalt = $user->fullname; break; case 'act_user_mail': $user = \Session::getUser(); - $inhalt = $user->mail; + if ( $user ) + $inhalt = $user->mail; break; case 'act_user_desc': $user = \Session::getUser(); - $inhalt = $user->desc; + if ( $user ) + $inhalt = $user->desc; break; case 'act_user_tel': $user = \Session::getUser(); - $inhalt = $user->tel; + if ( $user ) + $inhalt = $user->tel; break; default: Logger::warn('element:'.$this->element->name.', '.