sintonia/legacy/application/forms/ShowBuilder.php

109 lines
3.7 KiB
PHP
Raw Permalink Normal View History

<?php
class Application_Form_ShowBuilder extends Zend_Form_SubForm
{
public function init()
{
$user = Application_Model_User::getCurrentUser();
2021-10-11 16:10:47 +02:00
$this->setDecorators([
['ViewScript', ['viewScript' => 'form/showbuilder.phtml']],
]);
// Add start date element
$startDate = new Zend_Form_Element_Text('sb_date_start');
$startDate->class = 'input_text';
$startDate->setRequired(true)
2021-10-11 16:10:47 +02:00
->setLabel(_('Date Start:'))
->setValue(date('Y-m-d'))
->setFilters(['StringTrim'])
->setValidators([
'NotEmpty',
2022-07-07 20:01:15 +02:00
['date', false, ['YYYY-MM-DD']],
])
->setDecorators(['ViewHelper']);
$startDate->setAttrib('alt', 'date');
$this->addElement($startDate);
// Add start time element
$startTime = new Zend_Form_Element_Text('sb_time_start');
$startTime->class = 'input_text';
$startTime->setRequired(true)
2021-10-11 16:10:47 +02:00
->setValue('00:00')
->setFilters(['StringTrim'])
->setValidators([
'NotEmpty',
['date', false, ['HH:mm']],
2022-07-07 20:01:15 +02:00
['regex', false, ['/^[0-2]?[0-9]:[0-5][0-9]$/', 'messages' => _('Invalid character entered')]],
])
->setDecorators(['ViewHelper']);
$startTime->setAttrib('alt', 'time');
$this->addElement($startTime);
// Add end date element
$endDate = new Zend_Form_Element_Text('sb_date_end');
$endDate->class = 'input_text';
$endDate->setRequired(true)
2021-10-11 16:10:47 +02:00
->setLabel(_('Date End:'))
->setValue(date('Y-m-d'))
->setFilters(['StringTrim'])
->setValidators([
'NotEmpty',
2022-07-07 20:01:15 +02:00
['date', false, ['YYYY-MM-DD']],
])
->setDecorators(['ViewHelper']);
$endDate->setAttrib('alt', 'date');
$this->addElement($endDate);
// Add end time element
$endTime = new Zend_Form_Element_Text('sb_time_end');
$endTime->class = 'input_text';
$endTime->setRequired(true)
2021-10-11 16:10:47 +02:00
->setValue('01:00')
->setFilters(['StringTrim'])
->setValidators([
'NotEmpty',
['date', false, ['HH:mm']],
2022-07-07 20:01:15 +02:00
['regex', false, ['/^[0-2]?[0-9]:[0-5][0-9]$/', 'messages' => _('Invalid character entered')]],
])
->setDecorators(['ViewHelper']);
$endTime->setAttrib('alt', 'time');
$this->addElement($endTime);
// add a select to choose a show.
2021-10-11 16:10:47 +02:00
$showSelect = new Zend_Form_Element_Select('sb_show_filter');
$showSelect->setLabel(_('Filter by Show'));
$showSelect->setMultiOptions($this->getShowNames());
$showSelect->setValue(null);
2021-10-11 16:10:47 +02:00
$showSelect->setDecorators(['ViewHelper']);
$this->addElement($showSelect);
if ($user->getType() === 'H') {
$myShows = new Zend_Form_Element_Checkbox('sb_my_shows');
$myShows->setLabel(_('All My Shows:'))
->setDecorators(['ViewHelper']);
$this->addElement($myShows);
}
}
private function getShowNames()
{
$user = Application_Model_User::getCurrentUser();
2021-10-11 16:10:47 +02:00
$showNames = ['0' => _('Filter by Show')];
if ($user->getType() === 'H') {
2021-10-11 16:10:47 +02:00
$showNames['-1'] = _('My Shows');
}
$shows = CcShowQuery::create()
->setFormatter(ModelCriteria::FORMAT_ON_DEMAND)
->orderByDbName()
->find();
foreach ($shows as $show) {
$showNames[$show->getDbId()] = $show->getDbName();
}
return $showNames;
}
}