public static function clone_contributors($new_post_id, $old_post_object) { $old_episode = Episode::find_one_by_post_id($old_post_object->ID); $new_episode = Episode::find_or_create_by_post_id($new_post_id); $old_contributions = EpisodeContribution::find_all_by_episode_id($old_episode->id); foreach ($old_contributions as $old_contribution) { $c = new EpisodeContribution(); $c->contributor_id = $old_contribution->contributor_id; $c->episode_id = $new_episode->id; $c->role_id = $old_contribution->role_id; $c->group_id = $old_contribution->group_id; $c->position = $old_contribution->position; $c->comment = $old_contribution->comment; $c->save(); } }
public function update_contributors($post_id) { if (!$post_id || !isset($_POST["episode_contributor"])) { return; } $episode = Episode::find_one_by_post_id($post_id); if (!$episode) { return; } foreach (\Podlove\Modules\Contributors\Model\EpisodeContribution::find_all_by_episode_id($episode->id) as $contribution) { $contribution->delete(); } $position = 0; foreach ($_POST["episode_contributor"] as $contributor_appearance) { foreach ($contributor_appearance as $contributor_id => $contributor) { if (!$contributor_id) { continue; } $c = new \Podlove\Modules\Contributors\Model\EpisodeContribution(); if (!empty($contributor['role'])) { $c->role_id = \Podlove\Modules\Contributors\Model\ContributorRole::find_one_by_slug($contributor['role'])->id; } if (!empty($contributor['group'])) { $c->group_id = \Podlove\Modules\Contributors\Model\ContributorGroup::find_one_by_slug($contributor['group'])->id; } $c->episode_id = $episode->id; $c->contributor_id = $contributor_id; $c->comment = $contributor['comment']; $c->position = $position++; $c->save(); } } }