From 8166c5ad6afdf3e25a4ffae9f76f968f87982cf3 Mon Sep 17 00:00:00 2001 From: Samuel Georges Date: Tue, 4 Aug 2015 20:03:24 +1000 Subject: [PATCH] Add encodeArrayValue | decodeArrayValue helpers --- modules/backend/models/ExportModel.php | 20 ++++++++++++++++++++ modules/backend/models/ImportModel.php | 18 ++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/modules/backend/models/ExportModel.php b/modules/backend/models/ExportModel.php index cd496dfaa..84b0d43d8 100644 --- a/modules/backend/models/ExportModel.php +++ b/modules/backend/models/ExportModel.php @@ -183,4 +183,24 @@ abstract class ExportModel extends Model return $results; } + /** + * Implodes a single dimension array using pipes (|) + * Multi dimensional arrays are not allowed. + * @return string + */ + protected function encodeArrayValue($data, $delimeter = '|') + { + $newData = []; + foreach ($data as $value) { + if (is_array($value)) { + $newData[] = 'Array'; + } + else { + $newData[] = str_replace($delimeter, '\\'.$delimeter, $value); + } + } + + return implode($delimeter, $newData); + } + } \ No newline at end of file diff --git a/modules/backend/models/ImportModel.php b/modules/backend/models/ImportModel.php index f3659a7a4..253e5485d 100644 --- a/modules/backend/models/ImportModel.php +++ b/modules/backend/models/ImportModel.php @@ -129,6 +129,24 @@ abstract class ImportModel extends Model return $newRow; } + /** + * Explodes a string using pipes (|) to a single dimension array + * @return array + */ + protected function decodeArrayValue($value, $delimeter = '|') + { + if (strpos($value, $delimeter) === false) return $value; + + $data = preg_split('~(?