コード例 #1
0
 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();
     }
 }
コード例 #2
0
 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();
         }
     }
 }