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:
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.', '.