Commit b1860e1f authored by François Agneray's avatar François Agneray
Browse files

Intégration des pages html

parent 0161d29b
<?php
// -----------------------------------------------------------------------------
// Action factories
// -----------------------------------------------------------------------------
$container[App\Action\HomeAction::class] = function ($c) {
return new App\Action\HomeAction($c->get('view'), $c->get('logger'));
};
$container[App\Action\ProgrammeAction::class] = function ($c) {
return new App\Action\ProgrammeAction($c->get('view'), $c->get('logger'));
};
$container[App\Action\ContactAction::class] = function ($c) {
return new App\Action\ContactAction($c->get('view'), $c->get('logger'));
};
$container[App\Action\InfoAccesAction::class] = function ($c) {
return new App\Action\InfoAccesAction($c->get('view'), $c->get('logger'));
};
$container[App\Action\InfoHebergementAction::class] = function ($c) {
return new App\Action\InfoHebergementAction($c->get('view'), $c->get('logger'));
};
$container[App\Action\InfoGeneralesAction::class] = function ($c) {
return new App\Action\InfoGeneralesAction($c->get('view'), $c->get('logger'));
};
$container[App\Action\InscriptionAction::class] = function ($c) {
return new App\Action\InscriptionAction($c->get('view'), $c->get('logger'), $c->get('em'), $c->get('mailer'));
};
$container[App\Action\ConfirmInscriptionAction::class] = function ($c) {
return new App\Action\ConfirmInscriptionAction($c->get('view'), $c->get('logger'), $c->get('em'), $c->get('mailer'));
};
$container[App\Action\ConnexionAction::class] = function ($c) {
return new App\Action\ConnexionAction($c->get('view'), $c->get('logger'), $c->get('em'));
};
\ No newline at end of file
......@@ -47,21 +47,3 @@ $container['mailer'] = function ($c) {
return $mailer;
};
// -----------------------------------------------------------------------------
// Action factories
// -----------------------------------------------------------------------------
$container[App\Action\HomeAction::class] = function ($c) {
return new App\Action\HomeAction($c->get('view'), $c->get('logger'));
};
$container[App\Action\InscriptionAction::class] = function ($c) {
return new App\Action\InscriptionAction($c->get('view'), $c->get('logger'), $c->get('em'), $c->get('mailer'));
};
$container[App\Action\ConfirmInscriptionAction::class] = function ($c) {
return new App\Action\ConfirmInscriptionAction($c->get('view'), $c->get('logger'), $c->get('em'), $c->get('mailer'));
};
$container[App\Action\ConnexionAction::class] = function ($c) {
return new App\Action\ConnexionAction($c->get('view'), $c->get('logger'), $c->get('em'));
};
......@@ -3,6 +3,21 @@
$app->get('/', App\Action\HomeAction::class)
->setName('homepage');
$app->get('/programme', App\Action\ProgrammeAction::class)
->setName('programme');
$app->get('/contact', App\Action\ContactAction::class)
->setName('contact');
$app->get('/info-acces', App\Action\InfoAccesAction::class)
->setName('info_acces');
$app->get('/info-hebergement', App\Action\InfoHebergementAction::class)
->setName('info_hebergement');
$app->get('/info-generales', App\Action\InfoGeneralesAction::class)
->setName('info_generales');
$app->map(['GET', 'POST'], '/inscription', App\Action\InscriptionAction::class)
->setName('inscription');
......
<?php
namespace App\Action;
use Slim\Views\Twig;
use Psr\Log\LoggerInterface;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
final class ContactAction
{
private $view;
private $logger;
public function __construct(Twig $view, LoggerInterface $logger)
{
$this->view = $view;
$this->logger = $logger;
}
public function __invoke(Request $request, Response $response, $args)
{
$this->logger->info("contact page action dispatched");
$this->view->render($response, 'contact.twig', [
'page' => 'contact'
]);
return $response;
}
}
<?php
namespace App\Action;
use Slim\Views\Twig;
use Psr\Log\LoggerInterface;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
final class InfoAccesAction
{
private $view;
private $logger;
public function __construct(Twig $view, LoggerInterface $logger)
{
$this->view = $view;
$this->logger = $logger;
}
public function __invoke(Request $request, Response $response, $args)
{
$this->logger->info("Info acces page action dispatched");
$this->view->render($response, 'info_acces.twig', [
'page' => 'info_acces'
]);
return $response;
}
}
<?php
namespace App\Action;
use Slim\Views\Twig;
use Psr\Log\LoggerInterface;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
final class InfoGeneralesAction
{
private $view;
private $logger;
public function __construct(Twig $view, LoggerInterface $logger)
{
$this->view = $view;
$this->logger = $logger;
}
public function __invoke(Request $request, Response $response, $args)
{
$this->logger->info("Info generales page action dispatched");
$this->view->render($response, 'info_generales.twig', [
'page' => 'info_generales'
]);
return $response;
}
}
<?php
namespace App\Action;
use Slim\Views\Twig;
use Psr\Log\LoggerInterface;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
final class InfoHebergementAction
{
private $view;
private $logger;
public function __construct(Twig $view, LoggerInterface $logger)
{
$this->view = $view;
$this->logger = $logger;
}
public function __invoke(Request $request, Response $response, $args)
{
$this->logger->info("Info hebergement page action dispatched");
$this->view->render($response, 'info_hebergement.twig', [
'page' => 'info_hebergement'
]);
return $response;
}
}
<?php
namespace App\Action;
use Slim\Views\Twig;
use Psr\Log\LoggerInterface;
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
final class ProgrammeAction
{
private $view;
private $logger;
public function __construct(Twig $view, LoggerInterface $logger)
{
$this->view = $view;
$this->logger = $logger;
}
public function __invoke(Request $request, Response $response, $args)
{
$this->logger->info("Programme page action dispatched");
$this->view->render($response, 'programme.twig', [
'page' => 'programme'
]);
return $response;
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="../../favicon.ico">
<html>
<head>
<title>JDEV 2017</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/png" href="images/favicon.png" />
<link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.min.css">
<link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap-theme.min.css">
<link rel="stylesheet" href="bower_components/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="styles/style.css">
</head>
<body>
<header>
<div class="navbar-jdev navbar-jdev-fixed">
<!-- Logo -->
<a href="/" class="navbar-jdev-brand">
<img src="images/jdevlogo2017.png" />
</a>
<title>JDEV 2017 - {% block title %}{% endblock %}</title>
<!-- Right Navigation -->
<div class="navbar-jdev-right hidden-xs hidden-sm">
<a href="inscription" class="navbar-jdev-item navbar-jdev-link">Inscription</a>
<a href="programme" class="navbar-jdev-item navbar-jdev-link">Programme</a>
<a href="contact" class="navbar-jdev-item navbar-jdev-link">Contact</a>
<a href="connexion" class="navbar-jdev-item navbar-jdev-btn btn-treehouse">Connexion</a>
</div>
<!-- Bootstrap core CSS -->
<link href="bower_components/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet">
<!-- Dropdown appearing on mobile only -->
<div class="navbar-jdev-item hidden-md hidden-lg">
<div class="dropdown">
<i class="fa fa-bars dropdown-toggle" data-toggle="dropdown"></i>
<ul class="dropdown-menu dropdown-menu-right navbar-jdev-dropdown-menu">
<li><a href="inscription">Inscription</a></li>
<li><a href="programme">Programme</a></li>
<li><a href="contact">Contact</a></li>
<li class="divider" role="separator"></li>
<li><a href="connexion" class="btn-treehouse">Connexion</a></li>
</ul>
</div>
</div>
</div>
</header>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<link href="css/ie10-viewport-bug-workaround.css" rel="stylesheet">
<main>
{% block content %}{% endblock %}
</main>
<!-- Custom styles for this template -->
<link href="css/justified-nav.css" rel="stylesheet">
<footer>
<img src="images/CNRSfr.jpg" alt="">
<img src="images/INRA_logo.jpg" alt="">
<img src="images/Logo_inria_fr.jpg" alt="">
<img src="images/Irstea.png" alt="">
<img src="images/ird.jpg" alt="">
<img src="images/amu.png" alt="">
<img src="images/cnam.gif" alt="">
<img src="images/cppm.png" alt="">
<img src="images/devlog_gd.png" alt="">
<img src="images/prodev-logo.png" alt="">
<img src="images/paca.jpg" alt="">
<img src="images/bdr.jpg" alt="">
<img src="images/marseille_logo.png" alt="">
<img src="images/genci.jpg" alt="">
<img src="images/french_tech.jpg" alt="">
</footer>
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container">
<!-- The justified navigation menu is meant for single line per list item.
Multiple lines will require custom code not provided by Bootstrap. -->
<div class="masthead">
<h3 class="text-muted">JDEV 2017</h3>
<nav>
<ul class="nav nav-justified">
<li {% if page == 'home' %}class="active"{% endif %}><a href="/">Home</a></li>
<li {% if page == 'inscription' %}class="active"{% endif %}><a href="{{ path_for('inscription') }}">Inscription</a></li>
<li {% if page == 'confirm_inscription' %}class="active"{% endif %}><a href="{{ path_for('confirm_inscription') }}">Confirmation</a></li>
<li {% if page == 'connexion' %}class="active"{% endif %}><a href="{{ path_for('connexion') }}">Connexion</a></li>
<li><a href="#">Admin</a></li>
</ul>
</nav>
</div>
{% block content %}{% endblock %}
<!-- Site footer -->
<footer class="footer">
<p>&copy; 2017 JDEV, CNRS</p>
</footer>
</div> <!-- /container -->
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="bower_components/bootstrap3-ie10-viewport-bug-workaround/ie10-viewport-bug-workaround.js"></script>
</body>
<script src="bower_components/jquery/dist/jquery.slim.min.js"></script>
<script src="bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
<script src="bower_components/bootstrap-validator/dist/validator.min.js"></script>
<script src="js/inscription.js"></script>
</body>
</html>
......@@ -2,34 +2,25 @@
{% block title %}Connexion{% endblock %}
{% block content %}
<div class="row">
<div class="col-md-offset-2 col-md-8">
<h1>Connexion</h1>
</div>
</div>
<form action="connexion" method="POST">
<div class="row">
<div class="col-md-offset-2 col-md-7">
<div class="form-group">
<label for="Email">E-mail</label>
<input type="text" class="form-control" name="email" id="email" placeholder="E-mail">
<div class="container">
<h2 class="text-center">Connexion</h2>
<hr>
<div class="row sign-in">
<div class="col-xs-10 col-sm-8 col-md-5 sign-in-form">
<form action="">
<div class="form-group">
<label for="email">E-mail</label>
<input type="email" class="form-control" id="email" name="email">
</div>
<div class="form-group">
<label for="password">Password</label>
<input type="password" class="form-control" id="password" name="password">
</div>
<p class="text-center">
<button class="btn btn-primary">Connexion</button>
</p>
</form>
</div>
</div>
</div>
<div class="row">
<div class="col-md-offset-2 col-md-3">
<div class="form-group">
<label for="password">Mot de passe</label>
<input type="text" class="form-control" name="password" id="password" placeholder="Mot de passe">
</div>
</div>
</div>
<div class="row">
<div class="col-md-offset-5 col-md-1">
<input type="submit" class="btn btn-primary" value="Connexion">
</div>
</div>
</form>
{% endblock %}
{% extends "base.twig" %}
{% block title %}Contact{% endblock %}
{% block content %}
<div class="container">
<h2><i class="fa fa-envelope-square"></i> Contact</h2>
<hr>
<p>
<a href="mailto:jdev2017-cp@services.cnrs.fr">
<i class="fa fa-envelope"></i> Contact du Comité d'Organisation
</a>
</p>
<p>
<a href="mailto:jdev2017-sponsor@services.cnrs.fr">
<i class="fa fa-envelope"></i> Contact Sponsors et Stands
</a>
</p>
<p>
<i class="fa fa-envelope"></i> Contact Poster <i>(pas encore ouvert)</i>
</p>
<p>
<a href="mailto:jdev2017-programme@services.cnrs.fr">
<i class="fa fa-envelope"></i> Contact Comité de Programme
</a>
</p>
<p>
<i class="fa fa-envelope"></i> Inscrivez-vous à la liste d'information <i>(pas encore ouvert)</i>
</p>
</div>
{% endblock %}
......@@ -2,29 +2,135 @@
{% block title %}Home{% endblock %}
{% block content %}
<!-- Jumbotron -->
<div class="jumbotron">
<h1>Les JDEV débarquent à Marseille !</h1>
<p class="lead">Ouverte à tout acteur intéressé et impliqué dans le développement de logiciels, dans le monde du numérique, cette manifestation s'est donnée pour objectif d’améliorer la qualité et la pérennité de nos productions logicielles, ainsi que d’ouvrir de nouvelles perspectives avec la présentation des derniers outils et méthodes existants. Les pratiques adaptées au contexte scientifique ont été privilégiées.</p>
<p><a class="btn btn-lg btn-success" href="#" role="button">Inscription</a></p>
<div class="banner">
<div class="banner-content">
<h1>JDEV 2017</h1>
<p>4ème édition, Marseille</p>
</div>
<div class="banner-inscription">
<a href="inscription" class="btn-treehouse btn-inscription">Inscription</a>
</div>
</div>
<!-- Example row of columns -->
<div class="row">
<div class="col-lg-4">
<h2>Heading</h2>
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
<p><a class="btn btn-primary" href="#" role="button">View details &raquo;</a></p>
<div class="container">
<div class="row banner-info">
<div class="col-md-12">
<div>
<h4><i class="fa fa-map-marker"></i> Où ?</h4>
<h5>Faculté de droit, La Canebière</h5>
</div>
<div>
<h4><i class="fa fa-calendar"></i> Quand ?</h4>
<h5>Le 4, 5, 6, 7 juillet 2017</h5>
</div>
<div>
<h4><i class="fa fa-users"></i> Qui ?</h4>
<h5>Agents CNRS, Université...</h5>
</div>
</div>
</div>
<div class="col-lg-4">
<h2>Heading</h2>
<p>Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Etiam porta sem malesuada magna mollis euismod. Donec sed odio dui. </p>
<p><a class="btn btn-primary" href="#" role="button">View details &raquo;</a></p>
</div>
<div class="col-lg-4">
<h2>Heading</h2>
<p>Donec sed odio dui. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Vestibulum id ligula porta felis euismod semper. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa.</p>
<p><a class="btn btn-primary" href="#" role="button">View details &raquo;</a></p>
<div class="row news">
<div class="col-md-12">
<p class="text-center">
<img src="images/news.png">
<i class="fa fa-arrow-circle-o-right"></i>
Inscriptions ouvertes aux JDEV-2017. Inscriptions possible jusqu'au 3 juillet 2017, avec des phases de tarifs progressifs
</p>
</div>
</div>
<div class="row intro-jdev">
<div class="col-md-6">
<h2>A propos des JDEV</h2>
<p>Les JDEVs ont pour vocation à contribuer à l'amélioration de la production de logiciels indispensables à la société de la connaissance et à l'innovation.
Elles facilitent la transition numérique des entités de recherche et sont vecteur d'accélération pour la compréhension des évolutions technologiques et scientifiques, l'identification des technologies, des méthodes et des bonnes pratiques appelées à impacter les laboratoires.
C'est un lieu pour tisser son réseau professionnel en participant à des communautés et rencontrer des experts.</p>
<hr>
<p>Dates Clés :</p>
<ul>
<li>1ere phase des inscriptions <span>15/03/2017</span></li>
<li>2nde phase des inscriptions <span>15/05/2017</span></li>
<li>3ème phase des inscriptions <span>15/06/2017</span></li>
</ul>
</div>
<div class="col-md-6 img">
<img src="images/aff-jdev-2017_v03.png" alt="">
</div>
</div>
<div class="row tickets">
<h2 class="title">Tickets</h2>
<div class="col-xs-12 col-sm-4">
<div class="ticket">
<p class="ticket-titre">PASS COMPLET</p>
<p class="ticket-prix">
Académique 250€ TTC<br>
Etudiant 200€ TTC<br>
Industriel 500€ TTC<br>
</p>
<a href="inscription" class="btn-treehouse btn-inscription ticket-inscription">S'inscrire</a>
<p class="ticket-description">
Conférences, Groupes de travail et Ateliers
</p>
</div>
</div>
<div class="col-xs-12 col-sm-4">
<div class="ticket">
<p class="ticket-titre">PASS LIBRE</p>
<p class="ticket-prix">
Industriel 350€ TTC<br>
</p>
<a href="inscription" class="btn-treehouse btn-inscription ticket-inscription">S'inscrire</a>
<p class="ticket-description">
Conférences et Groupes de travail
</p>
</div>
</div>
<div class="col-xs-12 col-sm-4">
<div class="ticket">
<p class="ticket-titre">PASS ACCOMPAGNANT</p>
<p class="ticket-prix">40€ TTC</p>
<a href="inscription" class="btn-treehouse btn-inscription ticket-inscription">S'inscrire</a>
<p class="ticket-description">
Seulement Buffet dînatoire et Spectacle
</p>
</div>
</div>
</div>
<div class="row info-pratiques">
<h2 class="title">Informations pratiques</h2>
<div class="col-xs-12 col-sm-4">
<div class="info-pratique">
<div class="info-pratique-img" style="background-image: linear-gradient(rgba(0,0,0,0.3), rgba(0,0,0,0.2)), url('images/mrs-acces.png');">
</div>
<div class="info-pratique-text">
<p>La faculté de droit se situe sur le haut de la Canebière (Transports M2, T2)</p>
<a href="info-acces" class="btn btn-info">Informations Accès</a>
</div>
</div>
</div>
<div class="col-xs-12 col-sm-4">
<div class="info-pratique">
<div class="info-pratique-img" style="background-image: linear-gradient(rgba(0,0,0,0.3), rgba(0,0,0,0.2)), url('images/hotel2.png');">
</div>
<div class="info-pratique-text">
<p>Les JDEV vous propose une liste d'hotels situés proches de la conférence.</p>
<a href="info-hebergement" class="btn btn-info">Informations Hébergement</a>
</div>
</div>
</div>
<div class="col-xs-12 col-sm-4">
<div class="info-pratique">
<div class="info-pratique-img" style="background-image: linear-gradient(rgba(0,0,0,0.3), rgba(0,0,0,0.2)), url('images/mrs-2.png');">
</div>
<div class="info-pratique-text">
<p>Retrouvez ici les informations pratiques sur la ville de Marseille</p>
<a href="info-generales" class="btn btn-info">Informations générales</a>
</div>
</div>
</div>
</div>
</div>
{% endblock %}