2015-02-23 11:20:05 +01:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace level2;
|
|
|
|
|
|
|
|
use Silex\Application;
|
|
|
|
use Silex\ControllerProviderInterface;
|
|
|
|
|
|
|
|
class WebControllerProvider implements ControllerProviderInterface {
|
|
|
|
|
|
|
|
public function connect ( Application $app ) {
|
|
|
|
|
|
|
|
$ctr = $app['controllers_factory'];
|
|
|
|
|
|
|
|
$ctr->get('/', function() use ( $app ) {
|
|
|
|
|
|
|
|
return $app['twig']->render(
|
2015-02-23 11:44:12 +01:00
|
|
|
'level2.twig',
|
|
|
|
array(
|
2015-02-26 23:10:22 +01:00
|
|
|
'page' => 'home',
|
|
|
|
'level2' => Level2::getStatus( $app ),
|
|
|
|
'events' => array_slice(
|
2015-02-23 15:45:47 +01:00
|
|
|
Level2::getEvents( $app ),
|
|
|
|
0,
|
2015-02-23 23:34:54 +01:00
|
|
|
1
|
|
|
|
)
|
|
|
|
)
|
|
|
|
);
|
|
|
|
|
|
|
|
});
|
|
|
|
|
2015-02-27 01:24:08 +01:00
|
|
|
$ctr->get('/events/', function() use ( $app ) {
|
2015-02-23 23:34:54 +01:00
|
|
|
|
2015-02-27 01:43:19 +01:00
|
|
|
$eventsToReturn = Level2::getEventsByMonth(
|
|
|
|
Level2::getEvents( $app ),
|
|
|
|
date( 'Y' ),
|
|
|
|
date( 'm' )
|
|
|
|
);
|
|
|
|
|
2015-02-23 23:34:54 +01:00
|
|
|
return $app['twig']->render(
|
2015-02-27 00:40:08 +01:00
|
|
|
'events.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-02-27 01:43:19 +01:00
|
|
|
'events' => $eventsToReturn
|
2015-02-27 01:24:08 +01:00
|
|
|
)
|
|
|
|
);
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
$ctr->get('/events/{year}/{month}', function( $year, $month ) use ( $app ) {
|
|
|
|
|
2015-02-27 01:43:19 +01:00
|
|
|
if ( strpos( $month, '.' ) !== false ) {
|
|
|
|
|
|
|
|
$arguments = explode( '.', $month );
|
|
|
|
$month = $arguments[ 0 ];
|
|
|
|
$format = $arguments[ 1 ];
|
|
|
|
|
|
|
|
if ( $format == 'json' ) {
|
|
|
|
|
|
|
|
print_r( $eventsToReturn );
|
|
|
|
|
|
|
|
return $app->json(
|
|
|
|
Level2::getEventsByMonth(
|
|
|
|
Level2::getEvents( $app ),
|
|
|
|
$year,
|
|
|
|
$month
|
|
|
|
)
|
|
|
|
);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2015-02-27 01:24:08 +01:00
|
|
|
return $app['twig']->render(
|
|
|
|
'events.twig',
|
|
|
|
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-02-27 01:43:19 +01:00
|
|
|
$ctr->get('/events/{count}', function( $count ) use ( $app ) {
|
|
|
|
|
|
|
|
if ( strpos( $count, '.' ) !== false ) {
|
|
|
|
|
|
|
|
$arguments = explode( '.', $count );
|
|
|
|
$count = $arguments[ 0 ];
|
|
|
|
$format = $arguments[ 1 ];
|
|
|
|
|
|
|
|
if ( $format == 'json' ) {
|
|
|
|
|
|
|
|
print_r( $eventsToReturn );
|
|
|
|
|
|
|
|
return $app->json(
|
|
|
|
array_slice(
|
|
|
|
Level2::getEvents( $app ),
|
|
|
|
0,
|
|
|
|
$count
|
|
|
|
)
|
|
|
|
);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return $app['twig']->render(
|
|
|
|
'events.twig',
|
|
|
|
array(
|
|
|
|
'page' => 'events',
|
|
|
|
'level2' => Level2::getStatus( $app ),
|
|
|
|
'events' => array_slice(
|
|
|
|
Level2::getEvents( $app ),
|
|
|
|
0,
|
|
|
|
$count
|
|
|
|
)
|
|
|
|
)
|
|
|
|
);
|
|
|
|
|
|
|
|
});
|
|
|
|
|
2015-02-26 23:10:22 +01:00
|
|
|
$ctr->get('/scrape', function() use ( $app ) {
|
|
|
|
|
|
|
|
Helpers::saveFile ( json_encode( Level2::getJSONCalendar( $app ) ), 'cache/calendar.json' );
|
|
|
|
Helpers::saveFile ( file_get_contents( $app[ 'google' ][ 'ical' ] ) , 'cache/calendar.ics' );
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
|
|
|
});
|
|
|
|
|
2015-02-23 11:20:05 +01:00
|
|
|
return $ctr;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|