/**
  * Get the previous lesson in row, or in the course, if specified
  *
  * @param EfrontLesson $lesson The lesson to account
  * @param mixed $course The course to regard, or false
  * @return int The id of the previous lesson in row
  * @since 3.6.3
  * @access public
  */
 public function getPreviousLesson($lesson, $course = false)
 {
     $previousLesson = false;
     if ($course) {
         $course instanceof EfrontCourse or $course = new EfrontCourse($course);
         $eligibility = new ArrayIterator($course->checkRules($_SESSION['s_login']));
         while ($eligibility->valid() && ($key = $eligibility->key()) != $lesson->lesson['id']) {
             $previous = $key;
             $eligibility->next();
         }
         if (isset($previous) && $previous) {
             $previousLesson = $previous;
         }
     } else {
         $directionsTree = new EfrontDirectionsTree();
         $userLessons = new ArrayIterator($directionsTree->getLessonsList($this->getUserLessons()));
         while ($userLessons->valid() && ($key = $userLessons->current()) != $lesson->lesson['id']) {
             $previous = $key;
             $userLessons->next();
         }
         if (isset($previous) && $previous) {
             $previousLesson = $previous;
         }
     }
     return $previousLesson;
 }