From f72a23d69b5adb44de6e2aeca132d288bf23eaf3 Mon Sep 17 00:00:00 2001 From: Damyon Wiese Date: Fri, 11 Jul 2014 09:43:32 +0800 Subject: [PATCH] MDL-46138 tasks: The adhoc task is being too helpful with json_encoding/decoding. --- lib/classes/task/adhoc_task.php | 17 +++++++++++++++++ lib/classes/task/manager.php | 4 ++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/lib/classes/task/adhoc_task.php b/lib/classes/task/adhoc_task.php index 916b92b31ea..91b55c61f48 100644 --- a/lib/classes/task/adhoc_task.php +++ b/lib/classes/task/adhoc_task.php @@ -64,6 +64,14 @@ abstract class adhoc_task extends task_base { $this->customdata = json_encode($customdata); } + /** + * Alternate setter for $customdata. Expects the data as a json_encoded string. + * @param string json_encoded string + */ + public function set_custom_data_as_string($customdata) { + $this->customdata = $customdata; + } + /** * Getter for $customdata. * @return mixed (anything that can be handled by json_decode). @@ -72,4 +80,13 @@ abstract class adhoc_task extends task_base { return json_decode($this->customdata); } + /** + * Alternate getter for $customdata. + * @return string (this is the raw json encoded version). + */ + public function get_custom_data_as_string() { + return $this->customdata; + } + + } diff --git a/lib/classes/task/manager.php b/lib/classes/task/manager.php index be60ee2a9a1..e2ec497a3fb 100644 --- a/lib/classes/task/manager.php +++ b/lib/classes/task/manager.php @@ -220,7 +220,7 @@ class manager { $record->blocking = $task->is_blocking(); $record->nextruntime = $task->get_next_run_time(); $record->faildelay = $task->get_fail_delay(); - $record->customdata = $task->get_custom_data(); + $record->customdata = $task->get_custom_data_as_string(); return $record; } @@ -254,7 +254,7 @@ class manager { $task->set_fail_delay($record->faildelay); } if (isset($record->customdata)) { - $task->set_custom_data($record->customdata); + $task->set_custom_data_as_string($record->customdata); } return $task;