From 166ece6ac017456247e459b196f38cf242cd0505 Mon Sep 17 00:00:00 2001 From: oliver Date: Sat, 21 Mar 2015 16:24:37 +0100 Subject: [PATCH] set moodpics for Seminary copy --- models/SeminariesModel.inc | 77 +++++++++++++++++++++++++++++++++++++- 1 file changed, 76 insertions(+), 1 deletion(-) diff --git a/models/SeminariesModel.inc b/models/SeminariesModel.inc index 47173693..6ee716f1 100644 --- a/models/SeminariesModel.inc +++ b/models/SeminariesModel.inc @@ -202,6 +202,63 @@ } + /** + * Set the moodpic for the Character groups of a Seminary. + * + * @param int $seminaryId ID of Seminary to set moodpic for Character groups for + * @param int $seminaryMediaId ID of Seminarymedia to set as moodpic + */ + public function setMoodpicForCharactergroups($seminaryId, $seminaryMediaId) + { + $this->db->query( + 'UPDATE seminaries '. + 'SET charactergroups_seminarymedia_id = ? '. + 'WHERE id = ?', + 'ii', + $seminaryMediaId, + $seminaryId + ); + } + + + /** + * Set the moodpic for the Achievements of a Seminary. + * + * @param int $seminaryId ID of Seminary to set moodpic for Achievements for + * @param int $seminaryMediaId ID of Seminarymedia to set as moodpic + */ + public function setMoodpicForAchievements($seminaryId, $seminaryMediaId) + { + $this->db->query( + 'UPDATE seminaries '. + 'SET achievements_seminarymedia_id = ? '. + 'WHERE id = ?', + 'ii', + $seminaryMediaId, + $seminaryId + ); + } + + + /** + * Set the moodpic for the library of a Seminary. + * + * @param int $seminaryId ID of Seminary to set moodpic for Library for + * @param int $seminaryMediaId ID of Seminarymedia to set as moodpic + */ + public function setMoodpicForLibrary($seminaryId, $seminaryMediaId) + { + $this->db->query( + 'UPDATE seminaries '. + 'SET library_seminarymedia_id = ? '. + 'WHERE id = ?', + 'ii', + $seminaryMediaId, + $seminaryId + ); + } + + /** * (Re-) Calculate the amount of achievable XPs for a Seminary. * @@ -273,6 +330,10 @@ */ public function copySeminary($userId, $sourceSeminaryId, $title, $course, $description, $copySeminaryfields, $copyMedia, $copyQuestgroupshierarchy, $copyQuestgroups, $copyQuests, $copyQuesttopics, $copyCharactertypes, $copyXPlevels, $copyAvatars, $copyAchievements, $copyCharactergroupsgroups, $copyCharactergroupsquests) { + // Get Seminary + $seminary = $this->getSeminaryById($sourceSeminaryId); + + // Copy Seminary $this->db->setAutocommit(false); try { // Create new Seminary @@ -285,8 +346,22 @@ // Copy media $seminaryMediaIds = null; - if($copyMedia) { + if($copyMedia) + { $seminaryMediaIds = $this->Media->copySeminaryMedia($userId, $sourceSeminaryId, $targetSeminaryId); + // Set Seminary media + if(!is_null($seminary['seminarymedia_id'])) { + $this->setMoodpicForSeminary($targetSeminaryId, $seminaryMediaIds[$seminary['seminarymedia_id']]); + } + if(!is_null($seminary['charactergroups_seminarymedia_id'])) { + $this->setMoodpicForCharactergroups($targetSeminaryId, $seminaryMediaIds[$seminary['charactergroups_seminarymedia_id']]); + } + if(!is_null($seminary['achievements_seminarymedia_id'])) { + $this->setMoodpicForAchievements($targetSeminaryId, $seminaryMediaIds[$seminary['achievements_seminarymedia_id']]); + } + if(!is_null($seminary['library_seminarymedia_id'])) { + $this->setMoodpicForLibrary($targetSeminaryId, $seminaryMediaIds[$seminary['library_seminarymedia_id']]); + } } // Copy Quest content