2015-02-23 11:20:05 +01:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace level2;
|
|
|
|
|
|
|
|
use Silex\Application;
|
|
|
|
use Silex\ControllerProviderInterface;
|
|
|
|
|
2015-03-01 14:35:04 +01:00
|
|
|
class EventsControllerProvider implements ControllerProviderInterface {
|
2015-02-23 11:20:05 +01:00
|
|
|
|
|
|
|
public function connect ( Application $app ) {
|
|
|
|
|
|
|
|
$ctr = $app['controllers_factory'];
|
|
|
|
|
|
|
|
$ctr->get('/', function() use ( $app ) {
|
|
|
|
|
2015-02-23 23:34:54 +01:00
|
|
|
return $app['twig']->render(
|
2015-03-01 00:29:33 +01:00
|
|
|
'event-list.twig',
|
2015-02-23 23:34:54 +01:00
|
|
|
array(
|
2015-02-26 23:10:22 +01:00
|
|
|
'page' => 'events',
|
|
|
|
'level2' => Level2::getStatus( $app ),
|
2015-03-01 20:15:33 +01:00
|
|
|
'events' => array_slice(
|
|
|
|
Level2::getEvents( $app ),
|
|
|
|
0,
|
|
|
|
25
|
|
|
|
)
|
2015-02-27 01:24:08 +01:00
|
|
|
)
|
|
|
|
);
|
|
|
|
|
|
|
|
});
|
|
|
|
|
2015-03-01 14:35:04 +01:00
|
|
|
$ctr->get('/{year}/{month}', function( $year, $month ) use ( $app ) {
|
2015-02-27 01:24:08 +01:00
|
|
|
|
2015-02-27 01:43:19 +01:00
|
|
|
if ( strpos( $month, '.' ) !== false ) {
|
|
|
|
|
|
|
|
$arguments = explode( '.', $month );
|
|
|
|
$month = $arguments[ 0 ];
|
|
|
|
$format = $arguments[ 1 ];
|
|
|
|
|
|
|
|
if ( $format == 'json' ) {
|
|
|
|
|
|
|
|
return $app->json(
|
|
|
|
Level2::getEventsByMonth(
|
|
|
|
Level2::getEvents( $app ),
|
|
|
|
$year,
|
|
|
|
$month
|
|
|
|
)
|
|
|
|
);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2015-02-27 01:24:08 +01:00
|
|
|
return $app['twig']->render(
|
2015-03-01 00:29:33 +01:00
|
|
|
'event-list.twig',
|
2015-02-27 01:24:08 +01:00
|
|
|
array(
|
|
|
|
'page' => 'events',
|
|
|
|
'level2' => Level2::getStatus( $app ),
|
|
|
|
'events' => Level2::getEventsByMonth(
|
|
|
|
Level2::getEvents( $app ),
|
|
|
|
$year,
|
|
|
|
$month
|
2015-02-23 15:45:47 +01:00
|
|
|
)
|
2015-02-23 11:44:12 +01:00
|
|
|
)
|
2015-02-23 11:20:05 +01:00
|
|
|
);
|
|
|
|
|
|
|
|
});
|
|
|
|
|
2015-03-01 14:35:04 +01:00
|
|
|
$ctr->get('/{parameter}', function( $parameter ) use ( $app ) {
|
2015-02-27 01:43:19 +01:00
|
|
|
|
2015-03-01 12:33:18 +01:00
|
|
|
if ( $parameter == 'json' ) {
|
|
|
|
|
|
|
|
return $app->json(
|
|
|
|
Level2::getEvents( $app )
|
|
|
|
);
|
|
|
|
|
2015-03-01 14:35:04 +01:00
|
|
|
} else if ( $parameter == 'ical' ) {
|
|
|
|
|
|
|
|
header('Content-type: text/calendar; charset=utf-8');
|
|
|
|
header('Content-Disposition: attachment; filename=calendar.ics');
|
|
|
|
|
|
|
|
return file_get_contents( $app[ 'cache' ][ 'calendar' ][ 'ical' ] );
|
|
|
|
|
2015-03-01 12:33:18 +01:00
|
|
|
} else if ( strpos( $parameter, '.' ) !== false ) {
|
|
|
|
|
|
|
|
$arguments = explode( '.', $parameter );
|
|
|
|
$parameter = $arguments[ 0 ];
|
2015-02-27 01:43:19 +01:00
|
|
|
$format = $arguments[ 1 ];
|
|
|
|
|
|
|
|
if ( $format == 'json' ) {
|
|
|
|
|
|
|
|
return $app->json(
|
|
|
|
array_slice(
|
|
|
|
Level2::getEvents( $app ),
|
|
|
|
0,
|
2015-03-01 12:33:18 +01:00
|
|
|
$parameter
|
2015-02-27 01:43:19 +01:00
|
|
|
)
|
|
|
|
);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return $app['twig']->render(
|
2015-03-01 00:29:33 +01:00
|
|
|
'event-list.twig',
|
2015-02-27 01:43:19 +01:00
|
|
|
array(
|
|
|
|
'page' => 'events',
|
|
|
|
'level2' => Level2::getStatus( $app ),
|
|
|
|
'events' => array_slice(
|
|
|
|
Level2::getEvents( $app ),
|
|
|
|
0,
|
2015-03-01 12:33:18 +01:00
|
|
|
$parameter
|
2015-02-27 01:43:19 +01:00
|
|
|
)
|
|
|
|
)
|
|
|
|
);
|
|
|
|
|
|
|
|
});
|
|
|
|
|
2015-02-23 11:20:05 +01:00
|
|
|
return $ctr;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|