/** * @param Exercise $exercise * @return Workout */ public function addExercise(Exercise $exercise) { $this->exercises[] = $exercise; $this->totalSeconds += $exercise->getSeconds(); $this->totalReps += $exercise->getReps(); if (!$this->type) { $this->type = str_replace(array(' Primary', ' Secondary', ' 6 reps', ' 8 reps', ' 10 reps'), '', $exercise->getType()); } $exercise->setWorkout($this); return $this; }
/** * Creates and returns the HTML for the previous exercises. * * @param Exercise $currentExercise The current exercise * @param int $amount How many previous exercises should be rendered * @return string HTML of the previous exercises */ protected function renderPreviousExercises(Exercise $currentExercise, $amount = 5) { $previousExercises = $currentExercise->getPreviousExercises(); if (empty($previousExercises)) { return ''; } $html = '<li class="list-group-item list-previous-exercises"><ul class="list-unstyled">'; $date = $currentExercise->getWorkout()->getDate(); foreach ($previousExercises as $previousExercise) { $previousWorkout = $previousExercise->getWorkout(); $html .= sprintf('<li>%s  <a class="workout-link" href="#workout-%d" title="Jump to this workout">' . '%s</a> <span class="text-muted">(%s): %d reps</span></li>', $this->renderRepsDelta($currentExercise->getReps(), $previousExercise->getReps()), $previousWorkout->getId(), $previousWorkout->getLabel(), $this->renderRelativeDate($previousWorkout->getDate(), $date), $previousExercise->getReps()); if (--$amount == 0) { break; } } return $html . '</ul></li>'; }