diff --git a/src/Mmi/Bundle/ChallengeBundle/Controller/DefaultController.php b/src/Mmi/Bundle/ChallengeBundle/Controller/DefaultController.php index 9f3bafc..b94fc71 100644 --- a/src/Mmi/Bundle/ChallengeBundle/Controller/DefaultController.php +++ b/src/Mmi/Bundle/ChallengeBundle/Controller/DefaultController.php @@ -5,6 +5,7 @@ namespace Mmi\Bundle\ChallengeBundle\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; +use Mmi\Bundle\ChallengeBundle\Resources\Model\ChallengePeer; class DefaultController extends Controller { @@ -14,6 +15,12 @@ class DefaultController extends Controller */ public function indexAction() { - return []; + $challengePeer = new ChallengePeer(); + $challenges = $challengePeer->getChallenges(); + + return [ + 'challenge_peer' => $challengePeer, + 'challenges' => $challenges, + ]; } } diff --git a/src/Mmi/Bundle/ChallengeBundle/Resources/Model/Challenge.php b/src/Mmi/Bundle/ChallengeBundle/Resources/Model/Challenge.php new file mode 100644 index 0000000..e318d98 --- /dev/null +++ b/src/Mmi/Bundle/ChallengeBundle/Resources/Model/Challenge.php @@ -0,0 +1,103 @@ + + */ +class Challenge +{ + /** + * @var int L'heure du défi + */ + protected $hour; + + /** + * @var string Le titre du défi + */ + protected $title; + + + /** + * @var string La description du défi + */ + protected $description; + + /** + * @return Challenge + * @param int $hour L'heure du défi + */ + public function setHour($hour) + { + $this->hour = (int) $hour; + + return $this; + } + + /** + * @return int L'heure du défi + */ + public function getHour() + { + return $this->hour; + } + + /** + * @return Challenge + * @param int $day Le jour du défi + */ + public function setDay($day) + { + $this->day = (int) $day; + + return $this; + } + + /** + * @return int Le jour du défi + */ + public function getDay() + { + return $this->day; + } + + /** + * @return Challenge + * @param string $title Le titre du défi + */ + public function setTitle($title) + { + $this->title = (string) $title; + + return $this; + } + + /** + * @return Le titre du défi + */ + public function getTitle() + { + return $this->title; + } + + /** + * @return Challenge + * @param string $description La description du défi + */ + public function setDescription($description) + { + $this->description = (string) $description; + + return $this; + } + + /** + * @return La description du défi + */ + public function getDescription() + { + return $this->description; + } +} + diff --git a/src/Mmi/Bundle/ChallengeBundle/Resources/Model/ChallengePeer.php b/src/Mmi/Bundle/ChallengeBundle/Resources/Model/ChallengePeer.php new file mode 100644 index 0000000..73c290b --- /dev/null +++ b/src/Mmi/Bundle/ChallengeBundle/Resources/Model/ChallengePeer.php @@ -0,0 +1,77 @@ + + */ +class ChallengePeer +{ + /** + * @var Generator $challenges Les défis + */ + protected $challenges; + + public function __construct() + { + $this->challenges = $this->initChallenges(); + } + + public function getChallenges() + { + return $this->challenges; + } + + protected function initChallenges() + { + $data = []; + + for ($i = 18; $i < 25; $i++) { + $data[] = (new Challenge()) + ->setTitle('Mon titre '.$i) + ->setDescription('Ma description '.$i) + ->setDay(1) + ->setHour($i); + } + + for ($i = 1; $i < 19; $i++) { + $data[] = (new Challenge()) + ->setTitle('Mon titre '.$i) + ->setDescription('Ma description '.$i) + ->setDay(2) + ->setHour($i); + } + + return $data; + } + + public function isPreviousChallenge(Challenge $challenge) + { + return !$this->isActiveChallenge($challenge) && !$this->isNextChallenge($challenge); + } + + public function isActiveChallenge(Challenge $challenge) + { + $day = (int) date('d') === 12 ? 1 : 2; + $hour = (int) date('H'); + + return $challenge->getDay() === $day && $hour === $challenge->getHour(); + } + + public function isNextChallenge(Challenge $challenge) + { + $day = (int) date('d') === 12 ? 1 : 2; + $hour = (int) date('H'); + + if ($day < $challenge->getDay()) { + return true; + } + + if ($day === $challenge->getDay() && $hour < $challenge->getHour()) { + return true; + } + + return false; + } +} diff --git a/src/Mmi/Bundle/ChallengeBundle/Resources/views/Default/base.html.twig b/src/Mmi/Bundle/ChallengeBundle/Resources/views/Default/base.html.twig index 8b1ddac..13611c5 100644 --- a/src/Mmi/Bundle/ChallengeBundle/Resources/views/Default/base.html.twig +++ b/src/Mmi/Bundle/ChallengeBundle/Resources/views/Default/base.html.twig @@ -33,69 +33,9 @@
- + {% block challenges %} + + {% endblock %}