From d27ffbd1c427061915865ff5cfe6783b1b9042f7 Mon Sep 17 00:00:00 2001 From: Catcherdev Date: Fri, 6 Sep 2013 15:28:48 -0600 Subject: [PATCH] Wrap getCMSFields additions in beforeUpdateCMSFields for decorator overrides --- model/BlogPost.php | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/model/BlogPost.php b/model/BlogPost.php index 3fb71ff..bef9bd1 100755 --- a/model/BlogPost.php +++ b/model/BlogPost.php @@ -61,8 +61,12 @@ class BlogPost extends Page { public function getCMSFields() { - $fields = parent::getCMSFields(); + // Assign to variable & pass for PHP <= 5.4 closure compatibility + $data['TagsMap'] = $this->Parent()->Tags()->map()->toArray(); + $data['CategoryMap'] = $this->Parent()->Categories()->map()->toArray(); + + $this->beforeUpdateCMSFields(function($fields) use ($data) { // Add Publish date fields $fields->insertAfter( $publishDate = DatetimeField::create("PublishDate", _t("BlogPost.PublishDate", "Publish Date")), @@ -71,13 +75,11 @@ class BlogPost extends Page { $publishDate->getDateField()->setConfig("showcalendar", true); // Add Categories & Tags fields - $categories = $this->Parent()->Categories()->map()->toArray(); - $categoriesField = ListboxField::create("Categories", _t("BlogPost.Categories", "Categories"), $categories) + $categoriesField = ListboxField::create("Categories", _t("BlogPost.Categories", "Categories"), $data['CategoryMap']) ->setMultiple(true); $fields->insertAfter($categoriesField, "PublishDate"); - $tags = $this->Parent()->Tags()->map()->toArray(); - $tagsField = ListboxField::create("Tags", _t("BlogPost.Tags", "Tags"), $tags) + $tagsField = ListboxField::create("Tags", _t("BlogPost.Tags", "Tags"), $data['TagsMap']) ->setMultiple(true); $fields->insertAfter($tagsField, "Categories"); @@ -87,7 +89,9 @@ class BlogPost extends Page { "Content" ); $uploadField->getValidator()->setAllowedExtensions(array('jpg', 'jpeg', 'png', 'gif')); + }); + $fields = parent::getCMSFields(); return $fields; }