Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- error_reporting(E_ALL);
- ini_set('display_errors', 'On');
- require_once __DIR__ . '/../vendor/autoload.php';
- require_once __DIR__ . '/includes/Twig/Autoloader.php';
- Twig_Autoloader::register();
- $router = new \Bramus\Router\Router();
- function createQueryBuilder()
- {
- $connectionParams = array(
- 'url' => 'mysql://root:Azerty123@mysqldb/2017concerts',
- );
- try {
- $conn = \Doctrine\DBAL\DriverManager::getConnection($connectionParams);
- } catch (\Doctrine\DBAL\DBALException $e) {
- echo 'Could not create a connection';
- }
- $queryBuilder = $conn->createQueryBuilder();
- return $queryBuilder;
- }
- function renderEvents($zoekterm)
- {
- $queryBuilder = createQueryBuilder();
- if ($zoekterm === '') {
- $queryBuilder->select('*')->from('concerts');
- $stm = $queryBuilder->execute();
- $data = $stm->fetchAll();
- $events = $data;
- } else {
- $queryBuilder
- ->select('*')
- ->from('concerts')
- ->where(
- $queryBuilder->expr()->like('title', ':zoekterm')
- )
- ->setParameter(':zoekterm', '%' . $zoekterm . '%');
- $stm = $queryBuilder->execute();
- $events = $stm->fetchAll();
- }
- $loader = new Twig_Loader_Filesystem(__DIR__ . '/../templates');
- $twig = new Twig_Environment($loader);
- $template = $twig->loadTemplate('index.twig');
- echo $template->render(array(
- 'events' => $events,
- 'search' => $zoekterm
- ));
- }
- $router->get('/', function () {
- if (isset($_GET['search'])) {
- renderEvents($_GET['search']);
- } else {
- renderEvents('');
- }
- });
- $router->post('/', function () {
- $queryBuilder = createQueryBuilder();
- if (isset($_POST['moduleAction']) && ($_POST['moduleAction'] == 'switch')) {
- $queryBuilder
- ->update('concerts', 'c')
- ->set('c.fav', ':fav')
- ->where('c.id = :id')
- ->setParameter(':id', $_POST['event_id'])
- ->setParameter(':fav', (int)$_POST['fav'] === 0 ? 1 : 0);;
- }
- $queryBuilder->execute();
- renderEvents('');
- });
- $router->run();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement