setDecorators([ ['ViewScript', ['viewScript' => 'form/player.phtml']], ]); $title = new Zend_Form_Element_Text('player_title'); $title->setValue(_('Now Playing')); $title->setLabel(_('Title:')); $title->setDecorators([ 'ViewHelper', 'Errors', 'Label', ]); $title->addDecorator('Label', ['class' => 'player-title']); $this->addElement($title); $streamMode = new Zend_Form_Element_Radio('player_stream_mode'); $streamMode->setLabel(_('Select Stream:')); $streamMode->setMultiOptions( [ 'auto' => _('Auto detect the most appropriate stream to use.'), 'manual' => _('Select a stream:'), ] ); $streamMode->setValue('auto'); $this->addElement($streamMode); $streamURL = new Zend_Form_Element_Radio('player_stream_url'); $opusStreamCount = 0; $urlOptions = []; foreach (Application_Model_StreamSetting::getEnabledStreamData() as $stream => $data) { $urlOptions[$stream] = strtoupper($data['codec']) . ' - ' . $data['bitrate'] . 'kbps'; if ($data['mobile']) { $urlOptions[$stream] .= _(' - Mobile friendly'); } if ($data['codec'] == OPUS) { ++$opusStreamCount; $urlOptions[$stream] .= _(' - The player does not support Opus streams.'); } } $streamURL->setMultiOptions( $urlOptions ); // Set default value to the first non-opus stream we find foreach ($urlOptions as $o => $v) { if (strpos(strtolower($v), OPUS) !== false) { continue; } $streamURL->setValue($o); break; } $streamURL->setAttrib('numberOfEnabledStreams', count($urlOptions) - $opusStreamCount); $streamURL->removeDecorator('label'); $this->addElement($streamURL); $embedSrc = new Zend_Form_Element_Textarea('player_embed_src'); $embedSrc->setAttrib('readonly', 'readonly'); $embedSrc->setAttrib('class', 'embed-player-text-box'); $embedSrc->setAttrib('cols', '40') ->setAttrib('rows', '4'); $embedSrc->setLabel(_('Embeddable code:')); $embedSrc->setDescription(_("Copy this code and paste it into your website's HTML to embed the player in your site.")); $embedSrc->setValue(''); $this->addElement($embedSrc); $previewLabel = new Zend_Form_Element_Text('player_preview_label'); $previewLabel->setLabel(_('Preview:')); $previewLabel->setDecorators([ 'ViewHelper', 'Errors', 'Label', ]); $previewLabel->addDecorator('Label', ['class' => 'preview-label']); $this->addElement($previewLabel); } }