setDecorators(array( array('ViewScript', array('viewScript' => 'form/player.phtml')) )); $title = new Zend_Form_Element_Text('player_title'); $title->setValue(_('Now Playing')); $title->setLabel(_('Title:')); $title->setDecorators(array( 'ViewHelper', 'Errors', 'Label' )); $title->addDecorator('Label', array('class' => 'player-title')); $this->addElement($title); $streamMode = new Zend_Form_Element_Radio('player_stream_mode'); $streamMode->setLabel(_('Select Stream:')); $streamMode->setMultiOptions( array( "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 = Array(); 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 += 1; $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; } else { $streamURL->setValue($o); break; } } $streamURL->setAttrib('numberOfEnabledStreams', sizeof($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(array( 'ViewHelper', 'Errors', 'Label' )); $previewLabel->addDecorator('Label', array('class' => 'preview-label')); $this->addElement($previewLabel); } }