From 3dbe487698eeb65f0555cc546921bbd88bb1c50a Mon Sep 17 00:00:00 2001 From: Samuel Georges Date: Thu, 27 Nov 2014 19:02:23 +1100 Subject: [PATCH] Various fixes to datepicker and form widget --- modules/backend/classes/FormWidgetBase.php | 7 ++++++- modules/backend/formwidgets/DatePicker.php | 8 ++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/modules/backend/classes/FormWidgetBase.php b/modules/backend/classes/FormWidgetBase.php index 39cf80d66..aa88c5b17 100644 --- a/modules/backend/classes/FormWidgetBase.php +++ b/modules/backend/classes/FormWidgetBase.php @@ -110,7 +110,12 @@ abstract class FormWidgetBase extends WidgetBase public function getLoadData() { list($model, $attribute) = $this->getModelArrayAttribute($this->valueFrom); - return $model->{$attribute}; + + if (!is_null($model)) { + return $model->{$attribute}; + } + + return null; } /** diff --git a/modules/backend/formwidgets/DatePicker.php b/modules/backend/formwidgets/DatePicker.php index 79867b149..7b2d1aa44 100644 --- a/modules/backend/formwidgets/DatePicker.php +++ b/modules/backend/formwidgets/DatePicker.php @@ -60,6 +60,7 @@ class DatePicker extends FormWidgetBase $this->vars['name'] = $this->formField->getName(); $this->vars['timeName'] = self::TIME_PREFIX.$this->formField->getName(false); + $this->vars['timeValue'] = null; if ($value = $this->getLoadData()) { @@ -67,12 +68,11 @@ class DatePicker extends FormWidgetBase * Date / Time */ if ($this->mode == 'datetime') { - if (is_string($value)) { - $dateTime = explode(' ', $value); - } - elseif (is_object($value)) { + if (is_object($value)) { $value = $value->toDateTimeString(); } + + $dateTime = explode(' ', $value); $value = $dateTime[0]; $this->vars['timeValue'] = isset($dateTime[1]) ? substr($dateTime[1], 0, 5) : ''; }