public function updateCMSFields(FieldList $fields) { if ($this->stat('box_limit')) { $fields->insertAfter(new Tab('PromoBoxes'), 'Main'); //content boxes $boxes = PromoBox::get(); $aBoxes = $this->PromoBoxes()->toArray(); $dropBoxes = $boxes->map(); for ($i = 0; $i < $this->stat('box_limit'); $i++) { $value = !empty($aBoxes[$i]) ? $aBoxes[$i]->ID : null; $fields->addFieldToTab('Root.PromoBoxes', new DropdownField("PromoBoxes[{$i}]", 'Promo Box ' . ($i + 1), $dropBoxes, $value, null, 'No Box')); } } }