public function map($format, $value) { switch ($format) { case "name": $semester = Semester::findOneByName($value); return $semester ? $semester['beginn'] : null; break; case "timestamp": if (!is_numeric($value)) { $value = strtotime($value); } $semester = Semester::findByTimestamp($value); return $semester ? $semester['beginn'] : null; break; case "current": $semester = Semester::findCurrent(); return $semester ? $semester['beginn'] : null; case "next": $semester = Semester::findCurrent(); return $semester ? $semester['beginn'] : null; } }