award??null; } public function setAward(array|string $award):void { if (is_array($award)){ $award = $this->stringArray('award',$award); } $this->award = $award; } public function setAwardField(Fields $fields):void { $fields->addField('awards', [ 'type' => 'tagList', 'label' => __('Award(s)', 'jvb'), 'hint' => 'List any awards won by this Thing.', 'fields' => [ 'name' => [ 'type' => 'text', 'label' => __('Award Name', 'jvb'), 'required' => true, ], 'presenter' => [ 'type' => 'text', 'label' => __('Presenter', 'jvb'), ], 'year' => [ 'type' => 'number', 'label' => __('Year', 'jvb') ] ] ]); } public function formatAwardField(Meta $meta):void { $awards = $meta->get('awards'); $out = []; if (!empty($awards)) { foreach ($awards as $a) { $award = false; if (!empty($a['name'])) { $award = '"'.$a['name'].'"'; }else { continue; } if (!empty($a['presenter'])) { $award .= ', presented by '.$a['presenter']; } if (!empty($a['year'])) { $award .= ' - '.$a['year']; } if ($award) { $out[] = $award; } } } if (!empty ($out)) { $this->setAward($out); } } }