diff --git a/app/Models/PersonModel.php b/app/Models/PersonModel.php index 50f1fa4f..a730783d 100644 --- a/app/Models/PersonModel.php +++ b/app/Models/PersonModel.php @@ -280,8 +280,8 @@ class PersonModel extends Model /** * Add persons to podcast * - * @param array $personIds - * @param array $roles + * @param int[] $personIds + * @param string[] $roles * * @return bool|int Number of rows inserted or FALSE on failure */ @@ -300,9 +300,12 @@ class PersonModel extends Model $data = []; foreach ($personIds as $personId) { if ($roles === []) { + // add to default group (cast) and role (host), see https://podcastindex.org/namespace/1.0#person $data[] = [ - 'podcast_id' => $podcastId, - 'person_id' => $personId, + 'podcast_id' => $podcastId, + 'person_id' => $personId, + 'person_group' => 'cast', + 'person_role' => 'host', ]; } @@ -347,16 +350,12 @@ class PersonModel extends Model * Add persons to episode * * @param int[] $personIds - * @param string[] $groupsRoles + * @param string[] $roles * * @return bool|int Number of rows inserted or FALSE on failure */ - public function addEpisodePersons( - int $podcastId, - int $episodeId, - array $personIds, - array $groupsRoles - ): bool | int { + public function addEpisodePersons(int $podcastId, int $episodeId, array $personIds, array $roles): bool | int + { if ($personIds !== []) { cache() ->delete("podcast#{$podcastId}_episode#{$episodeId}_persons"); @@ -366,22 +365,24 @@ class PersonModel extends Model $data = []; foreach ($personIds as $personId) { - if ($groupsRoles !== []) { - foreach ($groupsRoles as $groupRole) { - $groupRole = explode(',', $groupRole); - $data[] = [ - 'podcast_id' => $podcastId, - 'episode_id' => $episodeId, - 'person_id' => $personId, - 'person_group' => $groupRole[0], - 'person_role' => $groupRole[1], - ]; - } - } else { + if ($roles === []) { $data[] = [ - 'podcast_id' => $podcastId, - 'episode_id' => $episodeId, - 'person_id' => $personId, + 'podcast_id' => $podcastId, + 'episode_id' => $episodeId, + 'person_id' => $personId, + 'person_group' => 'cast', + 'person_role' => 'host', + ]; + } + + foreach ($roles as $role) { + $groupRole = explode(',', $role); + $data[] = [ + 'podcast_id' => $podcastId, + 'episode_id' => $episodeId, + 'person_id' => $personId, + 'person_group' => $groupRole[0], + 'person_role' => $groupRole[1], ]; } } diff --git a/themes/cp_admin/episode/persons.php b/themes/cp_admin/episode/persons.php index d29b2d5f..16bfcde0 100644 --- a/themes/cp_admin/episode/persons.php +++ b/themes/cp_admin/episode/persons.php @@ -41,7 +41,6 @@ hint="" options="" selected="" - required="true" /> diff --git a/themes/cp_admin/podcast/persons.php b/themes/cp_admin/podcast/persons.php index b87bcccb..6d66001d 100644 --- a/themes/cp_admin/podcast/persons.php +++ b/themes/cp_admin/podcast/persons.php @@ -31,7 +31,7 @@ options="" selected="" required="true" /> - + + />