Example #1
0
 /**
  * Sets the penalties on a session instance
  * @param  Sesssion  $session
  */
 protected function setPenalties(Session $session)
 {
     // No penalties by default
     $penalties = array();
     // Loop each penalty (if any)
     /* @var $penalty_xml \DOMNode */
     foreach ($this->dom->getElementsByTagName('Penalty') as $penalty_xml) {
         // Create new penalty
         $penalty = new Penalty();
         // Set message
         $penalty->setMessage($penalty_xml->nodeValue);
         // Clone session date
         $date = clone $session->getDate();
         // Add the seconds to date, ignoring any decimals
         $date->modify(sprintf('+%d seconds', (int) $penalty_xml->getAttribute('et')));
         // Set real estimated seconds
         $penalty->setElapsedSeconds((double) $penalty_xml->getAttribute('et'));
         // Add date to penalty
         $penalty->setDate($date);
         // Add penalty to penalties
         $penalties[] = $penalty;
     }
     // Set penalties on session
     $session->setPenalties($penalties);
 }