PageRenderTime 26ms CodeModel.GetById 23ms RepoModel.GetById 0ms app.codeStats 0ms

/apps/editar/modules/events/actions/components.class.php

http://pumukit.googlecode.com/
PHP | 137 lines | 96 code | 26 blank | 15 comment | 18 complexity | 8aefe9b7671fb6be417cd609cf212c95 MD5 | raw file
Possible License(s): LGPL-2.1
  1. <?php
  2. /**
  3. * MODULO EVENTS COMPONENTS.
  4. * Modulo de configuracion de los noticias y eventos que aparecen en el portal web.
  5. *
  6. * @package pumukit
  7. * @subpackage events
  8. * @author Ruben Gonzalez Gonzalez <rubenrua ar uvigo dot es>
  9. * @version 1.0
  10. **/
  11. class eventsComponents extends sfComponents
  12. {
  13. /**
  14. * Executes index component
  15. *
  16. */
  17. public function executePreview()
  18. {
  19. if ($this->getUser()->hasAttribute('id', 'tv_admin/event')){
  20. $this->event = EventPeer::retrieveByPk($this->getUser()->getAttribute('id', null, 'tv_admin/event'));
  21. //$this->event->setCulture( $this->getUser()->getCulture() );
  22. //$this->forward404Unless($this->event);
  23. }
  24. }
  25. public function executeArray()
  26. {
  27. $limit = 15;
  28. $offset = 0;
  29. $c = new Criteria();
  30. $c->addDescendingOrderByColumn(EventPeer::DATE);
  31. $c->addAscendingOrderByColumn(EventPeer::ID);
  32. $this->processFilters($c);
  33. $cTotal = clone $c;
  34. if ($this->hasRequestParameter('page'))
  35. {
  36. $this->getUser()->setAttribute('page', $this->getRequestParameter('page'), 'tv_admin/event');
  37. }
  38. if ($this->getUser()->hasAttribute('page', 'tv_admin/event') )
  39. {
  40. $this->page = $this->getUser()->getAttribute('page', null, 'tv_admin/event');
  41. $offset = ($this->page - 1) * $limit;
  42. $c->setLimit($limit);
  43. $c->setOffset($offset);
  44. }
  45. $this->total_event_all = EventPeer::doCount(new Criteria());
  46. $this->total_event = EventPeer::doCount($cTotal);
  47. $this->total = ceil($this->total_event / $limit);
  48. if ($this->total < $this->page)
  49. {
  50. $this->getUser()->setAttribute('page',1);
  51. $this->page = 1;
  52. $c->setOffset(0);
  53. }
  54. $this->events = EventPeer::doSelect($c);
  55. }
  56. public function executeCalendar()
  57. {
  58. $this->total_event_all = EventPeer::doCount(new Criteria());
  59. if ($this->getRequestParameter('mes') == "mas")
  60. {
  61. $m = $this->getUser()->getAttribute('mes', date('m'), 'tv_admin/event');
  62. $y = $this->getUser()->getAttribute('ano', date('Y'), 'tv_admin/event');
  63. $fecha_cambiada = mktime(0,0,0,$m+1,1,$y);
  64. $this->getUser()->setAttribute('ano', date("Y", $fecha_cambiada), 'tv_admin/event');
  65. $this->getUser()->setAttribute('mes', date("m", $fecha_cambiada), 'tv_admin/event');
  66. }elseif ($this->getRequestParameter('mes') == "menos"){
  67. $m = $this->getUser()->getAttribute('mes', date('m'), 'tv_admin/event');
  68. $y = $this->getUser()->getAttribute('ano', date('Y'), 'tv_admin/event');
  69. $fecha_cambiada = mktime(0,0,0,$m-1,1,$y);
  70. $this->getUser()->setAttribute('ano', date("Y", $fecha_cambiada), 'tv_admin/event');
  71. $this->getUser()->setAttribute('mes', date("m", $fecha_cambiada), 'tv_admin/event');
  72. }elseif ($this->getRequestParameter('mes') == "hoy"){
  73. $this->getUser()->setAttribute('ano', date("Y"), 'tv_admin/event');
  74. $this->getUser()->setAttribute('mes', date("m"), 'tv_admin/event');
  75. }
  76. $this->m = $this->getUser()->getAttribute('mes', date('m'), 'tv_admin/event');
  77. $this->y = $this->getUser()->getAttribute('ano', date('Y'), 'tv_admin/event');
  78. $this->cal = calendar::generate_array($this->m, $this->y);
  79. }
  80. protected function processFilters($c)
  81. {
  82. if ($this->getRequest()->hasParameter('filter')){
  83. $filters = $this->getRequestParameter('filters');
  84. $this->getUser()->getAttributeHolder()->removeNamespace('tv_admin/event/filters');
  85. $this->getUser()->getAttributeHolder()->add($filters, 'tv_admin/event/filters');
  86. }
  87. $filters = $this->getUser()->getAttributeHolder()->getAll('tv_admin/event/filters');
  88. if (isset($filters['name']) && $filters['name'] !== ''){
  89. $c->add(EventPeer::NAME, '%' . $filters['name']. '%', Criteria::LIKE);
  90. }
  91. if (isset($filters['date'])){
  92. if (isset($filters['date']['from']) && $filters['date']['from'] !== ''){
  93. list($d, $m, $y) = sfI18N::getDateForCulture($filters['date']['from'], $this->getUser()->getCulture());
  94. $criterion = $c->getNewCriterion(EventPeer::DATE, "$y-$m-$d", Criteria::GREATER_EQUAL);
  95. }
  96. if (isset($filters['date']['to']) && $filters['date']['to'] !== ''){
  97. if (isset($criterion)){
  98. list($d, $m, $y) = sfI18N::getDateForCulture($filters['date']['to'], $this->getUser()->getCulture());
  99. $criterion->addAnd($c->getNewCriterion(EventPeer::DATE, "$y-$m-$d", Criteria::LESS_EQUAL));
  100. }else{
  101. list($d, $m, $y) = sfI18N::getDateForCulture($filters['date']['to'], $this->getUser()->getCulture());
  102. $criterion = $c->getNewCriterion(EventPeer::DATE, "$y-$m-$d", Criteria::LESS_EQUAL);
  103. }
  104. }
  105. if (isset($criterion))
  106. {
  107. $c->add($criterion);
  108. }
  109. }
  110. }
  111. }