ShowBuilder.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <?php
  2. class Application_Form_ShowBuilder extends Zend_Form_SubForm
  3. {
  4. public function init()
  5. {
  6. $user = Application_Model_User::getCurrentUser();
  7. $this->setDecorators(array(
  8. array('ViewScript', array('viewScript' => 'form/showbuilder.phtml'))
  9. ));
  10. // Add start date element
  11. $startDate = new Zend_Form_Element_Text('sb_date_start');
  12. $startDate->class = 'input_text';
  13. $startDate->setRequired(true)
  14. ->setLabel(_('Date Start:'))
  15. ->setValue(date("Y-m-d"))
  16. ->setFilters(array('StringTrim'))
  17. ->setValidators(array(
  18. 'NotEmpty',
  19. array('date', false, array('YYYY-MM-DD'))))
  20. ->setDecorators(array('ViewHelper'));
  21. $startDate->setAttrib('alt', 'date');
  22. $this->addElement($startDate);
  23. // Add start time element
  24. $startTime = new Zend_Form_Element_Text('sb_time_start');
  25. $startTime->class = 'input_text';
  26. $startTime->setRequired(true)
  27. ->setValue('00:00')
  28. ->setFilters(array('StringTrim'))
  29. ->setValidators(array(
  30. 'NotEmpty',
  31. array('date', false, array('HH:mm')),
  32. array('regex', false, array('/^[0-2]?[0-9]:[0-5][0-9]$/', 'messages' => _('Invalid character entered')))))
  33. ->setDecorators(array('ViewHelper'));
  34. $startTime->setAttrib('alt', 'time');
  35. $this->addElement($startTime);
  36. // Add end date element
  37. $endDate = new Zend_Form_Element_Text('sb_date_end');
  38. $endDate->class = 'input_text';
  39. $endDate->setRequired(true)
  40. ->setLabel(_('Date End:'))
  41. ->setValue(date("Y-m-d"))
  42. ->setFilters(array('StringTrim'))
  43. ->setValidators(array(
  44. 'NotEmpty',
  45. array('date', false, array('YYYY-MM-DD'))))
  46. ->setDecorators(array('ViewHelper'));
  47. $endDate->setAttrib('alt', 'date');
  48. $this->addElement($endDate);
  49. // Add end time element
  50. $endTime = new Zend_Form_Element_Text('sb_time_end');
  51. $endTime->class = 'input_text';
  52. $endTime->setRequired(true)
  53. ->setValue('01:00')
  54. ->setFilters(array('StringTrim'))
  55. ->setValidators(array(
  56. 'NotEmpty',
  57. array('date', false, array('HH:mm')),
  58. array('regex', false, array('/^[0-2]?[0-9]:[0-5][0-9]$/', 'messages' => _('Invalid character entered')))))
  59. ->setDecorators(array('ViewHelper'));
  60. $endTime->setAttrib('alt', 'time');
  61. $this->addElement($endTime);
  62. // add a select to choose a show.
  63. $showSelect = new Zend_Form_Element_Select("sb_show_filter");
  64. $showSelect->setLabel(_("Show:"));
  65. $showSelect->setMultiOptions($this->getShowNames());
  66. $showSelect->setValue(null);
  67. $showSelect->setDecorators(array('ViewHelper'));
  68. $this->addElement($showSelect);
  69. if ($user->getType() === 'H') {
  70. $myShows = new Zend_Form_Element_Checkbox('sb_my_shows');
  71. $myShows->setLabel(_('All My Shows:'))
  72. ->setDecorators(array('ViewHelper'));
  73. $this->addElement($myShows);
  74. }
  75. }
  76. private function getShowNames()
  77. {
  78. $showNames = array("0" => "-------------------------");
  79. $shows = CcShowQuery::create()
  80. ->setFormatter(ModelCriteria::FORMAT_ON_DEMAND)
  81. ->orderByDbName()
  82. ->find();
  83. foreach ($shows as $show) {
  84. $showNames[$show->getDbId()] = $show->getDbName();
  85. }
  86. return $showNames;
  87. }
  88. }