/** * Update power */ protected function updatePower() { if ($this->hasChanged(Entity::SPORTID)) { if (\Runalyze\Context::Factory()->sport($this->NewObject->sportid())->hasPower() && null !== $this->Trackdata && $this->Trackdata->has(Model\Trackdata\Entity::TIME) && $this->Trackdata->has(Model\Trackdata\Entity::DISTANCE)) { $Calculator = new \Runalyze\Calculation\Power\Calculator($this->Trackdata, $this->Route); $Calculator->calculate(); $this->updatePowerForTrackdata($Calculator->powerData()); $this->NewObject->set(Entity::POWER, $Calculator->average()); } else { $this->updatePowerForTrackdata(array()); $this->NewObject->set(Entity::POWER, 0); } } }
/** * Calculate trimp * @return int */ public function calculateTrimp() { if ($this->knowsTrackdata() && $this->Trackdata->has(Model\Trackdata\Object::HEARTRATE)) { $Collector = new Trimp\DataCollector($this->Trackdata->heartRate(), $this->Trackdata->time()); $data = $Collector->result(); } elseif ($this->Activity->hrAvg() > 0) { $data = array($this->Activity->hrAvg() => $this->Activity->duration()); } else { $Factory = Context::Factory(); if ($this->Activity->typeid() > 0) { $data = array($Factory->type($this->Activity->typeid())->hrAvg() => $this->Activity->duration()); } else { $data = array($Factory->sport($this->Activity->sportid())->avgHR() => $this->Activity->duration()); } } $Athlete = Context::Athlete(); $Calculator = new Trimp\Calculator($Athlete, $data); return round($Calculator->value()); }
/** * Calculate power */ protected function calculatePower() { if (\Runalyze\Context::Factory()->sport($this->Object->sportid())->hasPower() && Configuration::ActivityForm()->computePower() && NULL !== $this->Trackdata) { $Calculator = new \Runalyze\Calculation\Power\Calculator($this->Trackdata, $this->Route); $Calculator->calculate(); $this->Trackdata->set(Model\Trackdata\Object::POWER, $Calculator->powerData()); $this->Object->set(Object::POWER, $Calculator->average()); } }
/** * Update object in database */ public function update() { $OldData = isset($_POST['old-data']) ? unserialize(base64_decode($_POST['old-data'])) : array(); if (!is_array($OldData)) { $OldData = array(); } $UpdaterActivity = new \Runalyze\Model\Activity\Updater(DB::getInstance(), $this->newActivityObject(), new \Runalyze\Model\Activity\Object($OldData)); if (isset($OldData['routeid'])) { $UpdaterActivity->setRoute(\Runalyze\Context::Factory()->route($OldData['routeid'])); } $UpdaterActivity->setTrackdata(\Runalyze\Context::Factory()->trackdata($this->id())); $UpdaterActivity->setAccountID(SessionAccountHandler::getId()); $UpdaterActivity->update(); if (isset($OldData['routeid']) && isset($OldData['route'])) { $UpdaterRoute = new \Runalyze\Model\Route\Updater(DB::getInstance(), new Runalyze\Model\Route\Object(array('id' => $OldData['routeid'], Runalyze\Model\Route\Object::NAME => $this->get('route'), Runalyze\Model\Route\Object::CITIES => $this->get('route'))), new Runalyze\Model\Route\Object(array('id' => $OldData['routeid'], Runalyze\Model\Route\Object::NAME => $OldData['route'], Runalyze\Model\Route\Object::CITIES => $OldData['route']))); $UpdaterRoute->setAccountID(SessionAccountHandler::getId()); $UpdaterRoute->update(); } }
/** * Update power */ protected function updatePower() { if ($this->hasChanged(Object::SPORTID)) { if (\Runalyze\Context::Factory()->sport($this->NewObject->sportid())->hasPower()) { $Calculator = new \Runalyze\Calculation\Power\Calculator($this->Trackdata, $this->Route); $Calculator->calculate(); $this->updatePowerForTrackdata($Calculator->powerData()); $this->NewObject->set(Object::POWER, $Calculator->average()); } else { $this->updatePowerForTrackdata(array()); $this->NewObject->set(Object::POWER, 0); } } }
/** * Construct preview * @param \Runalyze\Model\Activity\Object $activity */ public function __construct(Activity\Object $activity) { $this->Activity = $activity; $this->Dataview = new Dataview($activity); $this->Sport = Context::Factory()->sport($this->Activity->sportid()); }
/** * 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\Object($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\Object(array(Runalyze\Model\Route\Object::NAME => $this->get('route'), Runalyze\Model\Route\Object::CITIES => $this->get('route'), Runalyze\Model\Route\Object::DISTANCE => $this->get('distance')))); $InserterRoute->setAccountID($AccountID); $InserterRoute->insert(); $NewActivity->set(Runalyze\Model\Activity\Object::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->setAccountID($AccountID); $UpdaterActivity->update(); if (isset($OldData['routeid']) && isset($OldData['route'])) { $UpdaterRoute = new \Runalyze\Model\Route\Updater($DB, new Runalyze\Model\Route\Object(array('id' => $OldData['routeid'], Runalyze\Model\Route\Object::NAME => $this->get('route'), Runalyze\Model\Route\Object::CITIES => $this->get('route'))), new Runalyze\Model\Route\Object(array('id' => $OldData['routeid'], Runalyze\Model\Route\Object::NAME => $OldData['route'], Runalyze\Model\Route\Object::CITIES => $OldData['route']))); $UpdaterRoute->setAccountID($AccountID); $UpdaterRoute->update(); } }
<?php /** * File for correction the elevation data of this training. * Call: call/call.Training.elevationCorrection.php?id= */ require '../inc/class.Frontend.php'; use Runalyze\Context; use Runalyze\Model\Activity; use Runalyze\Model\Route; use Runalyze\Calculation\Route\Calculator; use Runalyze\View\Activity\Linker; use Runalyze\Data\Elevation\Correction\NoValidStrategyException; $Frontend = new Frontend(); $Factory = Context::Factory(); $Activity = $Factory->activity(Request::sendId()); $ActivityOld = clone $Activity; $Route = $Factory->route($Activity->get(Activity\Object::ROUTEID)); $RouteOld = clone $Route; try { $Calculator = new Calculator($Route); $result = $Calculator->tryToCorrectElevation(Request::param('strategy')); } catch (NoValidStrategyException $Exception) { $result = false; } if ($result) { $Calculator->calculateElevation(); $Activity->set(Activity\Object::ELEVATION, $Route->elevation()); $UpdaterRoute = new Route\Updater(DB::getInstance(), $Route, $RouteOld); $UpdaterRoute->setAccountID(SessionAccountHandler::getId()); $UpdaterRoute->update();