示例#1
0
 /**
  * Update object in database
  */
 public function update()
 {
     $DB = DB::getInstance();
     $AccountID = SessionAccountHandler::getId();
     $OldData = isset($_POST['old-data']) ? unserialize(base64_decode($_POST['old-data'])) : array();
     if (!is_array($OldData)) {
         $OldData = array();
     }
     $NewActivity = $this->newActivityObject();
     $UpdaterActivity = new \Runalyze\Model\Activity\Updater($DB, $NewActivity, new \Runalyze\Model\Activity\Entity($OldData));
     if (isset($OldData['routeid']) && $OldData['routeid'] > 0) {
         $UpdaterActivity->setRoute(\Runalyze\Context::Factory()->route($OldData['routeid']));
     } elseif ($this->get('route') != '') {
         $InserterRoute = new Runalyze\Model\Route\Inserter($DB, new Runalyze\Model\Route\Entity(array(Runalyze\Model\Route\Entity::NAME => $this->get('route'), Runalyze\Model\Route\Entity::CITIES => $this->get('route'), Runalyze\Model\Route\Entity::DISTANCE => $this->get('distance'))));
         $InserterRoute->setAccountID($AccountID);
         $InserterRoute->insert();
         $NewActivity->set(Runalyze\Model\Activity\Entity::ROUTEID, $InserterRoute->insertedID());
     }
     $UpdaterActivity->setTrackdata(\Runalyze\Context::Factory()->trackdata($this->id()));
     $UpdaterActivity->setEquipmentIDs(TrainingFormular::readEquipmentFromPost($NewActivity->sportid()), isset($_POST['equipment_old']) ? explode(',', $_POST['equipment_old']) : array());
     $UpdaterActivity->setTagIDs(TrainingFormular::readTagFromPost(), isset($_POST['tag_old']) ? explode(',', $_POST['tag_old']) : array());
     $UpdaterActivity->setAccountID($AccountID);
     $UpdaterActivity->update();
     if (isset($OldData['routeid']) && isset($OldData['route'])) {
         $UpdaterRoute = new \Runalyze\Model\Route\Updater($DB, new Runalyze\Model\Route\Entity(array('id' => $OldData['routeid'], Runalyze\Model\Route\Entity::NAME => $this->get('route'), Runalyze\Model\Route\Entity::CITIES => $this->get('route'))), new Runalyze\Model\Route\Entity(array('id' => $OldData['routeid'], Runalyze\Model\Route\Entity::NAME => $OldData['route'], Runalyze\Model\Route\Entity::CITIES => $OldData['route'])));
         $UpdaterRoute->setAccountID($AccountID);
         $UpdaterRoute->update();
     }
 }