data['kind']) && !empty($this->data['title']) && !empty($this->data['entityId']); } /** * Return an array describing what kind of data the creator needs in * addition to the one it already has */ public function formSpecs(): ?array { $specs = []; if (empty($this->data['kind'])) { $specs['kind'] = fn () => select('Media kind', $this->listKinds()); } if (empty($this->data['title'])) { $specs['title'] = fn () => text('Work title', '', '', true); } if (empty($this->data['entityId'])) { $specs['entityId'] = fn () => text('Entity ID', '', '', true); } return $specs; } private function listKinds() { $kinds = [ 'Film' => 'films', 'Série TV' => 'series', 'Jeu vidéo' => 'jeux-video', 'Livre' => 'livres', ]; return $kinds; } /** * Return a boolean value indicating if this creator in particular can * create bundles for specified section */ public static function handles(string $section, ?array $data = []): bool { return $section === 'critiques'; } }