From 2979dcb8e146a7f628e81e5e81c3aedba75da0e3 Mon Sep 17 00:00:00 2001 From: Nic Date: Tue, 5 Feb 2019 15:24:06 -0600 Subject: [PATCH] ENHANCEMENT SlideType default value task (#158) * ENHANCEMENT SlideType default value task BUGFIX check if LinkLabel isset in SlideLinkTask * UPDATE phpcs fix --- src/Task/DefaultSlideTypeTask.php | 72 +++++++++++++++++++++++++++++++ src/Task/SlideLinkTask.php | 2 +- 2 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 src/Task/DefaultSlideTypeTask.php diff --git a/src/Task/DefaultSlideTypeTask.php b/src/Task/DefaultSlideTypeTask.php new file mode 100644 index 0000000..9cfaec4 --- /dev/null +++ b/src/Task/DefaultSlideTypeTask.php @@ -0,0 +1,72 @@ +setDefaults(); + } + + /** + * + */ + protected function setDefaults() + { + $default = SlideImage::singleton()->config()->get('defaults'); + + if (isset($default['SlideType'])) { + $baseTable = SlideImage::singleton()->baseTable(); + + $tables = [ + $baseTable, + "{$baseTable}_Versions", + "{$baseTable}_Live", + ]; + + foreach ($tables as $table) { + $query = DB::query("SELECT * FROM \"{$table}\" WHERE \"SlideType\" IS NULL"); + + foreach ($this->yieldSingle($query) as $record) { + DB::prepared_query( + "UPDATE \"{$table}\" SET \"SlideType\" = ? WHERE \"ID\" = ?", + [$default['SlideType'], $record['ID']] + ); + } + } + } + } + + /** + * @param $list + * @return \Generator + */ + protected function yieldSingle($list) + { + foreach ($list as $item) { + yield $item; + } + } +} diff --git a/src/Task/SlideLinkTask.php b/src/Task/SlideLinkTask.php index d75ada1..5695bed 100644 --- a/src/Task/SlideLinkTask.php +++ b/src/Task/SlideLinkTask.php @@ -54,7 +54,7 @@ protected function migrateLinks() foreach ($tables as $table) { foreach ($this->yieldSingle(DB::query("SELECT * FROM \"{$table}\"")) as $record) { $linkID = $record['PageLinkID']; - $linkLabel = $record['LinkLabel']; + $linkLabel = isset($record['LinkLabel']) ? $record['LinkLabel'] : null; $slideLink = $this->findOrMakeLink($linkID, $linkLabel);