PageRenderTime 53ms CodeModel.GetById 25ms RepoModel.GetById 0ms app.codeStats 0ms

/index.php

https://bitbucket.org/hermescarretero/simon-iniesta
PHP | 519 lines | 450 code | 61 blank | 8 comment | 18 complexity | a5c913ec09a8d86d079d1566e0fed719 MD5 | raw file
Possible License(s): LGPL-3.0, BSD-3-Clause
  1. <?php
  2. require_once __DIR__ . '/vendor/autoload.php';
  3. use Symfony\Component\HttpFoundation\Request;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Undf\Repository\RepositoryFactory;
  6. use Undf\Controller\Controller;
  7. use Undf\Form\CodeType;
  8. use Undf\Form\UserType;
  9. $app = new Silex\Application();
  10. $app['debug'] = true;
  11. $app->register(new Silex\Provider\ServiceControllerServiceProvider());
  12. //Register the security provider
  13. $app->register(new Silex\Provider\SessionServiceProvider());
  14. $app->register(new Silex\Provider\SecurityServiceProvider(), array(
  15. 'security.firewalls' => array(
  16. 'admin' => array(
  17. 'pattern' => '^/admin/',
  18. 'form' => array('login_path' => '/login', 'check_path' => '/admin/login_check', 'default_target_path' => '/admin/lista.html'),
  19. 'logout' => array('logout_path' => '/admin/logout'),
  20. 'users' => array(
  21. 'simoniniesta' => array('ROLE_ADMIN', 'NNWdTa9JRVAR3f7kHrDm5Uql1EPz5fDogKwL2qA7/vxAW5zeZNemtLkPfHDkhnT9oUPos2gZzR7YQnIcpUGvDw=='),
  22. ),
  23. ),
  24. )
  25. ));
  26. //Register the database
  27. $app->register(new Silex\Provider\DoctrineServiceProvider(), array(
  28. 'db.options' => array(
  29. 'driver' => 'pdo_mysql',
  30. 'dbname' => 'simoniniesta',
  31. 'host' => 'localhost',
  32. 'user' => 'simoniniesta',
  33. 'password' => 'EilAcyobEik5',
  34. 'charset' => 'utf8',
  35. 'driverOptions' => array(
  36. 1002 => 'SET NAMES utf8'
  37. )
  38. )
  39. ));
  40. //Register the form service
  41. $app->register(new Silex\Provider\ValidatorServiceProvider());
  42. $app->register(new Silex\Provider\FormServiceProvider());
  43. $app->register(new Silex\Provider\TranslationServiceProvider(), array(
  44. 'locale_fallback' => 'es',
  45. ));
  46. //Register the twig service
  47. $app->register(new Silex\Provider\TwigServiceProvider(), array(
  48. 'twig.path' => __DIR__ . '/src/Undf/Resources/views',
  49. ));
  50. //Register the mailing service
  51. $app->register(new Silex\Provider\SwiftmailerServiceProvider(), array(
  52. 'swiftmailer.options' => array(
  53. 'host' => 'smtp.gmail.com',
  54. 'port' => '465',
  55. 'username' => 'developer@undefined.es',
  56. 'password' => 'd3v3lopm3nt',
  57. 'encryption' => 'ssl',
  58. 'auth_mode' => 'login'
  59. )
  60. ));
  61. $app['repository.factory'] = $app->share(function() use ($app) {
  62. return new RepositoryFactory($app['db']);
  63. });
  64. $app['controller'] = $app->share(function() use ($app) {
  65. return new Controller($app);
  66. });
  67. /**
  68. * Routing
  69. */
  70. $app->match('/', function() use ($app) {
  71. $codeform = $app["form.factory"]->create(new CodeType());
  72. return $app['twig']->render('home.twig', array(
  73. 'codeForm' => $codeform->createView(),
  74. ));
  75. });
  76. $app->post('/code.json', "controller:postCodeAction");
  77. $app->post('/secondcode.json', "controller:postSecondCodeAction");
  78. $app->post('/ranking.html', "controller:postRankingAction");
  79. $app->post('/cuestionario.html', "controller:postUserAction");
  80. $app->get('/cuestionario.html', "controller:getFormAction");
  81. $app->get('/cuestionario-tablet.html', function() use ($app) {
  82. $form = $app['form.factory']->create(new Undf\Form\UserType);
  83. return $app['twig']->render('form_tablet.twig', array(
  84. 'userForm' => $form->createView(),
  85. 'error' => false
  86. ));
  87. });
  88. $app->post('/cuestionario-tablet.html', "controller:postTabletUserAction");
  89. $app->get('/modal.html', function(Request $request) use ($app) {
  90. $firstCode = $request->query->get('code');
  91. $codeform = $app["form.factory"]->create(new CodeType());
  92. return $app['twig']->render('modal-content.twig', array(
  93. 'codeForm' => $codeform->createView(),
  94. 'firstCode' => $firstCode,
  95. 'error' => false
  96. ));
  97. });
  98. $app->get('/bases', function() use ($app) {
  99. return $app['twig']->render('bases.twig');
  100. });
  101. $app->get('/bases_balon', function() use ($app) {
  102. return $app['twig']->render('bases_balon.twig');
  103. });
  104. $app->get('/bases_tablet', function() use ($app) {
  105. return $app['twig']->render('bases_tablet.twig');
  106. });
  107. $app->get('/bases_descubre', function() use ($app) {
  108. return $app['twig']->render('bases_descubre.twig');
  109. });
  110. $app->get('/packs', function() use ($app) {
  111. return $app['twig']->render('packs.twig');
  112. });
  113. $app->get('/pack_camiseta', function() use ($app) {
  114. return $app['twig']->render('pack_camiseta.twig');
  115. });
  116. $app->get('/pack_balon', function() use ($app) {
  117. return $app['twig']->render('pack_balon.twig');
  118. });
  119. $app->get('/ranking.html', function() use ($app) {
  120. return $app['twig']->render('ranking.twig');
  121. });
  122. $app->get('/login', function(Request $request) use ($app) {
  123. return $app['twig']->render('login.twig', array(
  124. 'error' => $app['security.last_error']($request),
  125. 'last_username' => $app['session']->get('_security.last_username'),
  126. ));
  127. });
  128. $app->get('/admin/lista.html', function() use ($app) {
  129. if(null !== $activeFilter = $app['request']->get('active')) {
  130. $activeFilter = (int)$activeFilter;
  131. }
  132. $table = $app['repository.factory']->get('User')->findBigCodeParticipants($activeFilter);
  133. return $app['twig']->render('admin/list-bigcode.twig', array(
  134. 'table' => $table,
  135. 'linkToExport' => 'exportar-camiseta-experiencia.php'.(is_null($activeFilter) ? '' : '?active='.$activeFilter),
  136. 'title' => 'Listado de personas que han canjeado un codigo grande',
  137. 'activeList' => 1,
  138. 'activeZone' => 'Todo',
  139. 'zones' => Undf\Repository\DelegationsRepository::getZones(),
  140. 'activeFilter' => $activeFilter
  141. ));
  142. });
  143. $app->get('/admin/lista.html/{zone}', function($zone) use ($app) {
  144. if(null !== $activeFilter = $app['request']->get('active')) {
  145. $activeFilter = (int)$activeFilter;
  146. }
  147. $delegations = array_keys(Undf\Repository\DelegationsRepository::getZoneDelegations($zone));
  148. $table = $app['repository.factory']->get('User')->findBigCodeParticipantsByZone($zone, $activeFilter);
  149. return $app['twig']->render('admin/list-bigcode.twig', array(
  150. 'table' => $table,
  151. 'linkToExport' => "/admin/exportar-camiseta-experiencia.php/$zone".(is_null($activeFilter) ? '' : '?active='.$activeFilter),
  152. 'title' => 'Listado de personas que han canjeado un codigo grande',
  153. 'activeList' => 1,
  154. 'activeZone' => $zone,
  155. 'zones' => Undf\Repository\DelegationsRepository::getZones(),
  156. 'delegations' => $delegations,
  157. 'activeDelegation' => 'Todo',
  158. 'activeFilter' => $activeFilter
  159. ));
  160. });
  161. $app->get('/admin/lista.html/{zone}/{delegation}', function($zone, $delegation) use ($app) {
  162. if(null !== $activeFilter = $app['request']->get('active')) {
  163. $activeFilter = (int)$activeFilter;
  164. }
  165. $delegations = array_keys(Undf\Repository\DelegationsRepository::getZoneDelegations($zone));
  166. $table = $app['repository.factory']->get('User')->findBigCodeParticipantsByDelegation($delegation, $activeFilter);
  167. return $app['twig']->render('admin/list-bigcode.twig', array(
  168. 'table' => $table,
  169. 'linkToExport' => "/admin/exportar-camiseta-experiencia.php/$zone/$delegation".(is_null($activeFilter) ? '' : '?active='.$activeFilter),
  170. 'title' => 'Listado de personas que han canjeado un codigo grande',
  171. 'activeList' => 1,
  172. 'activeZone' => $zone,
  173. 'zones' => Undf\Repository\DelegationsRepository::getZones(),
  174. 'delegations' => $delegations,
  175. 'activeDelegation' => $delegation,
  176. 'activeFilter' => $activeFilter
  177. ));
  178. });
  179. $app->get('/admin/lista-camiseta.html', function() use ($app) {
  180. if(null !== $activeFilter = $app['request']->get('active')) {
  181. $activeFilter = (int)$activeFilter;
  182. }
  183. $table = $app['repository.factory']->get('User')->findDoubleCodeParticipants($activeFilter);
  184. return $app['twig']->render('admin/list-doublecode.twig', array(
  185. 'table' => $table,
  186. 'linkToExport' => 'exportar-camiseta.php'.(is_null($activeFilter) ? '' : '?active='.$activeFilter),
  187. 'title' => 'Listado de personas que han canjeado dos codigos pequeños',
  188. 'activeList' => 2,
  189. 'activeZone' => 'Todo',
  190. 'zones' => Undf\Repository\DelegationsRepository::getZones(),
  191. 'activeFilter' => $activeFilter
  192. ));
  193. });
  194. $app->get('/admin/lista-camiseta.html/{zone}', function($zone) use ($app) {
  195. if(null !== $activeFilter = $app['request']->get('active')) {
  196. $activeFilter = (int)$activeFilter;
  197. }
  198. $delegations = array_keys(Undf\Repository\DelegationsRepository::getZoneDelegations($zone));
  199. $table = $app['repository.factory']->get('User')->findDoubleCodeParticipantsByZone($zone, $activeFilter);
  200. return $app['twig']->render('admin/list-doublecode.twig', array(
  201. 'table' => $table,
  202. 'linkToExport' => "/admin/exportar-camiseta.php/$zone".(is_null($activeFilter) ? '' : '?active='.$activeFilter),
  203. 'title' => 'Listado de personas que han canjeado un codigo grande',
  204. 'activeList' => 2,
  205. 'activeZone' => $zone,
  206. 'zones' => Undf\Repository\DelegationsRepository::getZones(),
  207. 'delegations' => $delegations,
  208. 'activeDelegation' => 'Todo',
  209. 'activeFilter' => $activeFilter
  210. ));
  211. });
  212. $app->get('/admin/lista-camiseta.html/{zone}/{delegation}', function($zone, $delegation) use ($app) {
  213. if(null !== $activeFilter = $app['request']->get('active')) {
  214. $activeFilter = (int)$activeFilter;
  215. }
  216. $delegations = array_keys(Undf\Repository\DelegationsRepository::getZoneDelegations($zone));
  217. $table = $app['repository.factory']->get('User')->findDoubleCodeParticipantsByDelegation($delegation, $activeFilter);
  218. return $app['twig']->render('admin/list-doublecode.twig', array(
  219. 'table' => $table,
  220. 'linkToExport' => "/admin/exportar-camiseta.php/$zone/$delegation".(is_null($activeFilter) ? '' : '?active='.$activeFilter),
  221. 'title' => 'Listado de personas que han canjeado un codigo grande',
  222. 'activeList' => 2,
  223. 'activeZone' => $zone,
  224. 'zones' => Undf\Repository\DelegationsRepository::getZones(),
  225. 'delegations' => $delegations,
  226. 'activeDelegation' => $delegation,
  227. 'activeFilter' => $activeFilter
  228. ));
  229. });
  230. $app->get('/admin/lista-balon.html', function() use ($app) {
  231. if(null !== $activeFilter = $app['request']->get('active')) {
  232. $activeFilter = (int)$activeFilter;
  233. }
  234. $table = $app['repository.factory']->get('User')->findSmallCodeParticipants($activeFilter);
  235. return $app['twig']->render('admin/list-smallcode.twig', array(
  236. 'table' => $table,
  237. 'linkToExport' => 'exportar-balon.php'.(is_null($activeFilter) ? '' : '?active='.$activeFilter),
  238. 'title' => 'Listado de personas que han canjeado un codigo pequeño',
  239. 'activeList' => 3,
  240. 'activeZone' => 'Todo',
  241. 'zones' => Undf\Repository\DelegationsRepository::getZones(),
  242. 'activeFilter' => $activeFilter
  243. ));
  244. });
  245. $app->get('/admin/lista-balon.html/{zone}', function($zone) use ($app) {
  246. if(null !== $activeFilter = $app['request']->get('active')) {
  247. $activeFilter = (int)$activeFilter;
  248. }
  249. $delegations = array_keys(Undf\Repository\DelegationsRepository::getZoneDelegations($zone));
  250. $table = $app['repository.factory']->get('User')->findSmallCodeParticipantsByZone($zone, $activeFilter);
  251. return $app['twig']->render('admin/list-smallcode.twig', array(
  252. 'table' => $table,
  253. 'linkToExport' => "/admin/exportar-balon.php/$zone".(is_null($activeFilter) ? '' : '?active='.$activeFilter),
  254. 'title' => 'Listado de personas que han canjeado un codigo grande',
  255. 'activeList' => 3,
  256. 'activeZone' => $zone,
  257. 'zones' => Undf\Repository\DelegationsRepository::getZones(),
  258. 'delegations' => $delegations,
  259. 'activeDelegation' => 'Todo',
  260. 'activeFilter' => $activeFilter
  261. ));
  262. });
  263. $app->get('/admin/lista-balon.html/{zone}/{delegation}', function($zone, $delegation) use ($app) {
  264. if(null !== $activeFilter = $app['request']->get('active')) {
  265. $activeFilter = (int)$activeFilter;
  266. }
  267. $delegations = array_keys(Undf\Repository\DelegationsRepository::getZoneDelegations($zone));
  268. $table = $app['repository.factory']->get('User')->findSmallCodeParticipantsByDelegation($delegation, $activeFilter);
  269. return $app['twig']->render('admin/list-smallcode.twig', array(
  270. 'table' => $table,
  271. 'linkToExport' => "/admin/exportar-balon.php/$zone/$delegation".(is_null($activeFilter) ? '' : '?active='.$activeFilter),
  272. 'title' => 'Listado de personas que han canjeado un codigo grande',
  273. 'activeList' => 3,
  274. 'activeZone' => $zone,
  275. 'zones' => Undf\Repository\DelegationsRepository::getZones(),
  276. 'delegations' => $delegations,
  277. 'activeDelegation' => $delegation,
  278. 'activeFilter' => $activeFilter
  279. ));
  280. });
  281. $app->get('/admin/lista-tablet.html', function() use ($app) {
  282. $table = $app['repository.factory']->get('User')->findTabletPromoParticipants();
  283. return $app['twig']->render('admin/list-tablet.twig', array(
  284. 'table' => $table,
  285. 'linkToExport' => 'exportar-tablet.php',
  286. 'title' => 'Listado de participantes en la promocion TABLET',
  287. 'activeList' => 4,
  288. 'activeFilter' => null
  289. ));
  290. });
  291. $app->get('/admin/exportar-camiseta-experiencia.php', function() use ($app) {
  292. if(null !== $activeFilter = $app['request']->get('active')) {
  293. $activeFilter = (int)$activeFilter;
  294. }
  295. $table = $app['repository.factory']->get('User')->findBigCodeParticipants($activeFilter);
  296. $response = $app['twig']->render('admin/export-bigcode.twig', array(
  297. 'table' => $table,
  298. ));
  299. $headers = array(
  300. 'Content-Encoding' => 'UTF-8',
  301. 'Content-Type' => 'application/csv; charset=UTF-8',
  302. 'Expires' => '0',
  303. 'Cache-Control' => 'must-revalidate, post-check=0, pre-check=0',
  304. 'content-disposition' => 'attachment;filename=lista-camiseta-experiencia.csv'
  305. );
  306. return new Response($response, 200, $headers);
  307. });
  308. $app->get('/admin/exportar-camiseta-experiencia.php/{zone}', function($zone) use ($app) {
  309. if(null !== $activeFilter = $app['request']->get('active')) {
  310. $activeFilter = (int)$activeFilter;
  311. }
  312. $table = $app['repository.factory']->get('User')->findBigCodeParticipantsByZone($zone, $activeFilter);
  313. $response = $app['twig']->render('admin/export-bigcode.twig', array(
  314. 'table' => $table,
  315. ));
  316. $headers = array(
  317. 'Content-Encoding' => 'UTF-8',
  318. 'Content-Type' => 'application/csv; charset=UTF-8',
  319. 'Expires' => '0',
  320. 'Cache-Control' => 'must-revalidate, post-check=0, pre-check=0',
  321. 'content-disposition' => 'attachment;filename=lista-camiseta-experiencia.csv'
  322. );
  323. return new Response($response, 200, $headers);
  324. });
  325. $app->get('/admin/exportar-camiseta-experiencia.php/{zone}/{delegation}', function($zone, $delegation) use ($app) {
  326. if(null !== $activeFilter = $app['request']->get('active')) {
  327. $activeFilter = (int)$activeFilter;
  328. }
  329. $table = $app['repository.factory']->get('User')->findBigCodeParticipantsByDelegation($delegation, $activeFilter);
  330. $response = $app['twig']->render('admin/export-bigcode.twig', array(
  331. 'table' => $table,
  332. ));
  333. $headers = array(
  334. 'Content-Encoding' => 'UTF-8',
  335. 'Content-Type' => 'application/csv; charset=UTF-8',
  336. 'Expires' => '0',
  337. 'Cache-Control' => 'must-revalidate, post-check=0, pre-check=0',
  338. 'content-disposition' => 'attachment;filename=lista-camiseta-experiencia.csv'
  339. );
  340. return new Response($response, 200, $headers);
  341. });
  342. $app->get('/admin/exportar-camiseta.php', function() use ($app) {
  343. if(null !== $activeFilter = $app['request']->get('active')) {
  344. $activeFilter = (int)$activeFilter;
  345. }
  346. $table = $app['repository.factory']->get('User')->findDoubleCodeParticipants($activeFilter);
  347. $response = $app['twig']->render('admin/export-doublecode.twig', array(
  348. 'table' => $table,
  349. ));
  350. $headers = array(
  351. 'Content-Encoding' => 'UTF-8',
  352. 'Content-Type' => 'application/csv; charset=UTF-8',
  353. 'Expires' => '0',
  354. 'Cache-Control' => 'must-revalidate, post-check=0, pre-check=0',
  355. 'content-disposition' => 'attachment;filename=lista-camiseta.csv'
  356. );
  357. return new Response($response, 200, $headers);
  358. });
  359. $app->get('/admin/exportar-camiseta.php/{zone}', function($zone) use ($app) {
  360. if(null !== $activeFilter = $app['request']->get('active')) {
  361. $activeFilter = (int)$activeFilter;
  362. }
  363. $table = $app['repository.factory']->get('User')->findDoubleCodeParticipantsByZone($zone, $activeFilter);
  364. $response = $app['twig']->render('admin/export-doublecode.twig', array(
  365. 'table' => $table,
  366. ));
  367. $headers = array(
  368. 'Content-Encoding' => 'UTF-8',
  369. 'Content-Type' => 'application/csv; charset=UTF-8',
  370. 'Expires' => '0',
  371. 'Cache-Control' => 'must-revalidate, post-check=0, pre-check=0',
  372. 'content-disposition' => 'attachment;filename=lista-camiseta-experiencia.csv'
  373. );
  374. return new Response($response, 200, $headers);
  375. });
  376. $app->get('/admin/exportar-camiseta.php/{zone}/{delegation}', function($zone, $delegation) use ($app) {
  377. if(null !== $activeFilter = $app['request']->get('active')) {
  378. $activeFilter = (int)$activeFilter;
  379. }
  380. $table = $app['repository.factory']->get('User')->findDoubleCodeParticipantsByDelegation($delegation, $activeFilter);
  381. $response = $app['twig']->render('admin/export-doublecode.twig', array(
  382. 'table' => $table,
  383. ));
  384. $headers = array(
  385. 'Content-Encoding' => 'UTF-8',
  386. 'Content-Type' => 'application/csv; charset=UTF-8',
  387. 'Expires' => '0',
  388. 'Cache-Control' => 'must-revalidate, post-check=0, pre-check=0',
  389. 'content-disposition' => 'attachment;filename=lista-camiseta-experiencia.csv'
  390. );
  391. return new Response($response, 200, $headers);
  392. });
  393. $app->get('/admin/exportar-balon.php', function() use ($app) {
  394. if(null !== $activeFilter = $app['request']->get('active')) {
  395. $activeFilter = (int)$activeFilter;
  396. }
  397. $table = $app['repository.factory']->get('User')->findSmallCodeParticipants($activeFilter);
  398. $response = $app['twig']->render('admin/export-smallcode.twig', array(
  399. 'table' => $table,
  400. ));
  401. $headers = array(
  402. 'Content-Encoding' => 'UTF-8',
  403. 'Content-Type' => 'application/csv; charset=UTF-8',
  404. 'Expires' => '0',
  405. 'Cache-Control' => 'must-revalidate, post-check=0, pre-check=0',
  406. 'content-disposition' => 'attachment;filename=lista-balon.csv'
  407. );
  408. return new Response($response, 200, $headers);
  409. });
  410. $app->get('/admin/exportar-balon.php/{zone}', function($zone) use ($app) {
  411. if(null !== $activeFilter = $app['request']->get('active')) {
  412. $activeFilter = (int)$activeFilter;
  413. }
  414. $table = $app['repository.factory']->get('User')->findSmallCodeParticipantsByZone($zone, $activeFilter);
  415. $response = $app['twig']->render('admin/export-smallcode.twig', array(
  416. 'table' => $table,
  417. ));
  418. $headers = array(
  419. 'Content-Encoding' => 'UTF-8',
  420. 'Content-Type' => 'application/csv; charset=UTF-8',
  421. 'Expires' => '0',
  422. 'Cache-Control' => 'must-revalidate, post-check=0, pre-check=0',
  423. 'content-disposition' => 'attachment;filename=lista-camiseta-experiencia.csv'
  424. );
  425. return new Response($response, 200, $headers);
  426. });
  427. $app->get('/admin/exportar-balon.php/{zone}/{delegation}', function($zone, $delegation) use ($app) {
  428. if(null !== $activeFilter = $app['request']->get('active')) {
  429. $activeFilter = (int)$activeFilter;
  430. }
  431. $table = $app['repository.factory']->get('User')->findSmallCodeParticipantsByDelegation($delegation, $activeFilter);
  432. $response = $app['twig']->render('admin/export-smallcode.twig', array(
  433. 'table' => $table,
  434. ));
  435. $headers = array(
  436. 'Content-Encoding' => 'UTF-8',
  437. 'Content-Type' => 'application/csv; charset=UTF-8',
  438. 'Expires' => '0',
  439. 'Cache-Control' => 'must-revalidate, post-check=0, pre-check=0',
  440. 'content-disposition' => 'attachment;filename=lista-camiseta-experiencia.csv'
  441. );
  442. return new Response($response, 200, $headers);
  443. });
  444. $app->get('/admin/exportar-tablet.php', function() use ($app) {
  445. $table = $app['repository.factory']->get('User')->findTabletPromoParticipants();
  446. $response = $app['twig']->render('admin/export-tablet.twig', array(
  447. 'table' => $table,
  448. ));
  449. $headers = array(
  450. 'Content-Encoding' => 'UTF-8',
  451. 'Content-Type' => 'application/csv; charset=UTF-8',
  452. 'Expires' => '0',
  453. 'Cache-Control' => 'must-revalidate, post-check=0, pre-check=0',
  454. 'content-disposition' => 'attachment;filename=lista-tablet.csv'
  455. );
  456. return new Response($response, 200, $headers);
  457. });
  458. $app->run();