public function addTripLines($tripCount = 1, $startDate, $buses = array()) { // create subform $tripLinePanel = new Zend_Form_SubForm(); $tripLinePanel->setDecorators($this->_displayGroupDecorators)->addAttribs(array('class' => 'fieldsetForm span-8')); for ($i = 1; $i <= $tripCount; ++$i) { // create bus element $bus = $this->_createBusElement($buses); // create departure time element $departureTime = $this->_createElement('text', 'departureTime', 'Ngày giờ đi', 'Làm ơn nhập ngày giờ đi', true); $departureTime->setValue($startDate . ' 00:00:00'); $departureTime->addValidator(new TBB_Validate_DepartureTime($startDate)); // create arrival time element $arrivalTime = $this->_createElement('text', 'arrivalTime', 'Ngày giờ đến', 'Làm ơn nhập ngày giờ đến', true); $arrivalTime->setValue($startDate . ' 00:00:00'); $arrivalTime->addValidator(new TBB_Validate_ArrivalTime()); $fare = $this->_createElement('text', 'fare', 'Giá vé', 'Làm ơn nhập giá vé', false, true); // create trip line $tripLine = new Zend_Form_SubForm(); $tripLine->setDecorators($this->_displayGroupDecorators)->addAttribs(array('class' => 'span-7'))->setLegend('Chuyến #' . $i); // add elements to the tripline $tripLine->addElements(array($bus, $departureTime, $arrivalTime, $fare)); $tripLinePanel->addSubForm($tripLine, $i); } // add submit button $submit = $this->_createSubmitButton(); $tripLinePanel->addElement($submit); $this->addSubForm($tripLinePanel, 'tripLines'); }
public function init() { $this->setAttrib('id', 'customAttribute'); // Create and configure username element: $label = $this->createElement('text', 'label', array('label' => 'Label:')); $label->setRequired(true)->addFilter('StringTrim')->addFilter('StripTags'); $description = $this->createElement('text', 'description', array('label' => 'Description:')); $description->addFilter('StringTrim')->addFilter('StripTags'); $required = $this->createElement('select', 'required', array('label' => 'Required?')); $required->setRequired(true)->setMultiOptions(array('1' => 'Yes', '0' => 'No'))->setAllowEmpty(false); $rowCt = $this->createElement('hidden', 'rowCt'); $rowCt->setValue($this->_numberOfOptions); $rowCt->setDecorators(array('ViewHelper')); $this->addElements(array($label, $description, $required, $rowCt)); if ($this->_numberOfOptions != 0) { $container = new Zend_Form_SubForm(); $container->setDescription('Options:'); $container->setDecorators(array(array('Description', array('tag' => 'label', 'class' => 'control-label')), array('FormElements'), array(array('controlsWrapper' => 'HtmlTag'), array('tag' => 'div', 'class' => 'control-group', 'id' => 'optionElement')))); $container->setElementDecorators(array('ViewHelper', 'FormElements')); $this->addSubForm($container, 'options'); for ($i = 0; $i < $this->_numberOfOptions; $i++) { $optionSubform = new Ot_Form_CustomAttributeOption(); $container->addSubForm($optionSubform, $i); } $this->addElement('button', 'addElement', array('buttonType' => Twitter_Bootstrap_Form_Element_Submit::BUTTON_SUCCESS, 'label' => 'Add Option', 'icon' => 'plus', 'whiteIcon' => true, 'iconPosition' => Twitter_Bootstrap_Form_Element_Button::ICON_POSITION_LEFT)); } $this->addElement('submit', 'submit', array('buttonType' => Twitter_Bootstrap_Form_Element_Submit::BUTTON_PRIMARY, 'label' => 'Save Attribute')); $this->addElement('button', 'cancel', array('label' => 'form-button-cancel', 'type' => 'button')); $this->addDisplayGroup(array('submit', 'cancel'), 'actions', array('disableLoadDefaultDecorators' => true, 'decorators' => array('Actions'))); return $this; }
public function init() { $this->setAction('/core/submit/new'); $type = new Zend_Form_Element_MultiCheckbox('submission_type'); $type->setLabel('')->setRequired(false)->setAttrib('class', 'tiny')->addMultiOptions($this->_getFieldValues('submission_type'))->setSeparator('<br />')->setDecorators(array('Composite')); $title = new Zend_Form_Element_Text('title'); $title->setLabel('Title')->setRequired(true)->addValidator('StringLength', true, array(2, 64, 'messages' => array(Zend_Validate_StringLength::TOO_SHORT => 'Please provide a longer title', Zend_Validate_StringLength::TOO_LONG => 'Your title is too long')))->setAttrib('class', 'medium')->setDescription('Must be between 2 and 64 characters')->setAttrib('maxLength', 64)->setDecorators(array('Composite')); $audience = new Zend_Form_Element_Radio('target_audience'); $audience->setLabel('Please mark the target audience for your presentation')->setRequired(true)->setAttrib('class', 'tiny')->addMultiOptions($this->_getFieldValues('target_audience'))->setSeparator('<br />')->setDecorators(array('Composite')); $publish = new Zend_Form_Element_Radio('publish_paper'); $publish->setLabel('Please indicate whether you wish to prepare a full paper for possible publication')->setRequired(true)->setAttrib('class', 'tiny')->addMultiOptions($this->_getFieldValues('publish_paper', 'submit'))->setSeparator('<br />')->setDecorators(array('Composite')); $topicModel = new Core_Model_Topic(); $topicsForSelect = $topicModel->getTopicsForSelect(); $topicsel = new Zend_Form_Element_MultiCheckbox('topic'); $topicsel->setLabel('Topic')->setRequired(false)->setAttrib('class', 'tiny')->setMultiOptions($topicsForSelect)->setSeparator('<br />')->setDecorators(array('Composite')); $keywords = new Zend_Form_Element_Text('keywords'); $keywords->setLabel('Keywords')->setRequired(false)->addValidator('StringLength', true, array(2, 500, 'messages' => array(Zend_Validate_StringLength::TOO_SHORT => 'Please provide longer keywords', Zend_Validate_StringLength::TOO_LONG => 'Your keywords are too long')))->setAttrib('class', 'medium')->setDescription('Must be between 2 and 500 characters')->setDecorators(array('Composite')); $abstract = new Zend_Form_Element_Textarea('abstract'); $abstract->setLabel('Submission Summary (If your submission is accepted, this will be publicly visible!)')->setAttrib('class', 'small')->setDescription('Must be between 5 and 2000 characters')->setRequired(false)->addValidator('StringLength', true, array(5, 2000, 'messages' => array(Zend_Validate_StringLength::TOO_SHORT => 'Please provide a longer abstract', Zend_Validate_StringLength::TOO_LONG => 'Your abstract is too long')))->setDecorators(array('Composite')); $comment = new Zend_Form_Element_Textarea('comment'); $comment->setLabel('Information for Reviewers')->setAttrib('class', 'small')->setDescription('Must be between 5 and 1000 characters')->setRequired(false)->addValidator('StringLength', true, array(5, 1000, 'messages' => array(Zend_Validate_StringLength::TOO_SHORT => 'Please provide a longer description', Zend_Validate_StringLength::TOO_LONG => 'Your description is too long')))->setDecorators(array('Composite')); $file = new TA_Form_Element_MagicFile('file'); $file->setLabel('Your submission (File must be pdf and no bigger than 10Mb) *')->setRequired(false)->addDecorators($this->_magicFileElementDecorator)->addValidators(array(array('Count', true, 1), array('Size', true, 10000000), array('Extension', true, array('pdf', 'case' => true)), array('MimeType', false, array('application/pdf')))); $file->getValidator('Extension')->setMessage('Only pdf files are allowed!'); $subform = new Zend_Form_SubForm(); $subform->setDecorators(array('FormElements')); $subform->addElements(array($type, $file, $title, $audience, $topicsel, $keywords, $abstract, $comment)); $this->addSubForm($subform, 'submission'); $this->addElement('submit', 'submit', array('label' => 'Submit', 'decorators' => $this->_buttonElementDecorator)); }
public function indexAction() { // action body $idEncuesta = $this->getParam("idEncuesta"); $encuesta = $this->encuestaDAO->obtenerEncuesta($idEncuesta); $secciones = $this->seccionDAO->obtenerSecciones($idEncuesta); $formulario = new Zend_Form($encuesta->getHash()); //debemos agregar a este formulario campos para identificar quien es el que esta llenando esta encuesta $eSubCabecera = new Zend_Form_SubForm(); $eSubCabecera->setLegend("Datos Personales: "); $eEncuesta = new Zend_Form_Element_Hidden("idEncuesta"); $eEncuesta->setValue($idEncuesta); $eReferencia = new Zend_Form_Element_Text("referencia"); $eReferencia->setLabel("Boleta o Clave : "); $eReferencia->setAttrib("class", "form-control"); $eReferencia->setDecorators($this->decoratorsPregunta); $eSubCabecera->addElements(array($eEncuesta, $eReferencia)); $eSubCabecera->setDecorators($this->decoratorsSeccion); $formulario->addSubForm($eSubCabecera, "referencia"); //============================================= Iteramos a traves de las secciones del grupo foreach ($secciones as $seccion) { //============================================= Cada seccion es una subforma $subFormSeccion = new Zend_Form_SubForm($seccion->getHash()); $subFormSeccion->setLegend("Sección: " . $seccion->getNombre()); //============================================= Obtenemos los elemntos de la seccion $elementos = $this->seccionDAO->obtenerElementos($seccion->getIdSeccion()); foreach ($elementos as $elemento) { //============================================= Verificamos que tipo de elemento es if ($elemento instanceof Encuesta_Model_Pregunta) { //============================================= Aqui ya la agregamos a la seccion $this->agregarPregunta($subFormSeccion, $elemento); } elseif ($elemento instanceof Encuesta_Model_Grupo) { //============================================= un grupo es otra subform $subFormGrupo = new Zend_Form_SubForm($elemento->getHash()); $subFormGrupo->setLegend("Grupo: " . $elemento->getNombre()); $preguntasGrupo = $this->grupoDAO->obtenerPreguntas($elemento->getIdGrupo()); foreach ($preguntasGrupo as $pregunta) { //============================================= Aqui ya la agregamos al grupo $this->agregarPregunta($subFormGrupo, $pregunta); } $subFormGrupo->setDecorators($this->decoratorsGrupo); $subFormSeccion->addSubForm($subFormGrupo, $elemento->getIdGrupo()); } } $subFormSeccion->setDecorators($this->decoratorsSeccion); $formulario->addSubForm($subFormSeccion, $seccion->getIdSeccion()); } $eSubmit = new Zend_Form_Element_Submit("submit"); $eSubmit->setLabel("Enviar Encuesta"); $eSubmit->setAttrib("class", "btn btn-success"); $formulario->addElement($eSubmit); $formulario->setDecorators($this->formDecorators); $this->view->encuesta = $encuesta; $this->view->formulario = $formulario; }
protected function addItemXpathsToExtend($itemXpathsToExtend) { if (count($itemXpathsToExtend) == 0) { $itemXpathsToExtend = array(new Kaltura_Client_Type_ExtendingItemMrssParameter()); } $mainSubForm = new Zend_Form_SubForm(); $mainSubForm->setLegend('Item XPaths To Extend'); $mainSubForm->setDecorators(array('FormElements', array('ViewScript', array('viewScript' => 'distribution-item-xpath-to-extend.phtml', 'placement' => 'APPEND')), 'Fieldset')); $i = 1; $extendCategory = false; $extendParentCategory = false; foreach ($itemXpathsToExtend as $itemXPath) { /* @var $itemXPath Kaltura_Client_Type_ExtendingItemMrssParameter */ //if it a category identifier if ($itemXPath->identifier instanceof Kaltura_Client_Type_CategoryIdentifier) { /* @var $identifier Kaltura_Client_Type_CategoryIdentifier */ $identifier = $itemXPath->identifier; //if the parameters are set exactly as the admin console sets. if ($itemXPath->xpath == '//category' && $itemXPath->extensionMode == Kaltura_Client_Enum_MrssExtensionMode::REPLACE && $identifier->identifier == Kaltura_Client_Enum_CategoryIdentifierField::FULL_NAME) { foreach (explode(',', $identifier->extendedFeatures) as $extendedFeature) { if ($extendedFeature == Kaltura_Client_Enum_ObjectFeatureType::METADATA) { $extendCategory = true; } elseif ($extendedFeature == Kaltura_Client_Enum_ObjectFeatureType::ANCESTOR_RECURSIVE) { $extendParentCategory = true; } } } continue; } $subForm = new Zend_Form_SubForm(array('disableLoadDefaultDecorators' => true)); $subForm->setDecorators(array('FormElements')); $subForm->addElement('text', 'itemXpathsToExtend', array('decorators' => array('ViewHelper', array('HtmlTag', array('tag' => 'div'))), 'isArray' => true, 'value' => $itemXPath->xpath)); $mainSubForm->addSubForm($subForm, 'itemXpathsToExtend_subform_' . $i++); } //set the extend category metadata checkbox $subForm = new Zend_Form_SubForm(array('disableLoadDefaultDecorators' => true)); $subForm->setDecorators(array('FormElements')); $subForm->addElement('checkbox', 'includeCategoryInMrss', array('label' => 'Include category-level custom metadata in MRSS', 'isArray' => true, 'value' => $extendCategory)); $subForm->getElement('includeCategoryInMrss')->getDecorator('Label')->setOption('placement', 'APPEND'); $subForm->getElement('includeCategoryInMrss')->setChecked($extendCategory); $mainSubForm->addSubForm($subForm, 'itemXpathsToExtend_subform_' . $i++, 99); //set the extend category parent metadata checkbox $subForm = new Zend_Form_SubForm(array('disableLoadDefaultDecorators' => true)); $subForm->setDecorators(array('FormElements')); $subForm->addElement('checkbox', 'includeCategoryParentInMrss', array('label' => 'Include parent categories', 'isArray' => true, 'value' => $extendParentCategory)); $subForm->getElement('includeCategoryParentInMrss')->getDecorator('Label')->setOption('placement', 'APPEND'); $subForm->getElement('includeCategoryParentInMrss')->setChecked($extendParentCategory); $mainSubForm->addSubForm($subForm, 'itemXpathsToExtend_subform_' . $i++, 100); $this->addSubForm($mainSubForm, 'itemXpathsToExtend_group'); }
public function init() { $this->setName('addApplicant'); $id = new Zend_Form_Element_Hidden('id'); $id->addFilter('Int'); $product = new Zend_Form_Element_Text('product'); $product->setLabel('* product:')->setRequired(true)->addFilter('StripTags')->addFilter('stringTrim')->addValidators(array(array('regex', false, array('pattern' => "/^[а,б,в,г,ґ,д,е,є,ж,з,и,ы,і,ї,й,к,л,м,н,о,п,р,с,т,у,ф,х,ц,ч,ш,щ,ь,ю,я,А,Б,В,С,Г,Д,Е,Є,Ж,З,И,Ы,І,Ї,Й,К,Л,М,Н,О,П,Р,С,Т,У,Ф,Х,Ц,Ч,Ш,Щ,Ь,Ю,Я,A,a,B,b,C,c,D,d,E,e,F,f,G,g,H,h,I,i,J,j,K,k,L,l,M,m,N,n,O,o,P,p,Q,q,R,r,S,s,T,t,U,u,V,v,W,w,X,x,Y,y,Z,z,1,2,3,4,5,6,7,8,9,0'.]{2,}\$/", 'messages' => 'В полі присутні заборонені символи!!')))); $category = new Zend_Form_Element_Text('category'); $category->setLabel("* category:")->setRequired(true)->addFilter('StripTags')->addFilter('stringTrim')->addValidators(array(array('regex', false, array('pattern' => "/^[а,б,в,г,ґ,д,е,є,ж,з,и,ы,і,ї,й,к,л,м,н,о,п,р,с,т,у,ф,х,ц,ч,ш,щ,ь,ю,я,А,Б,В,С,Г,Д,Е,Є,Ж,З,И,Ы,І,Ї,Й,К,Л,М,Н,О,П,Р,С,Т,У,Ф,Х,Ц,Ч,Ш,Щ,Ь,Ю,Я,A,a,B,b,C,c,D,d,E,e,F,f,G,g,H,h,I,i,J,j,K,k,L,l,M,m,N,n,O,o,P,p,Q,q,R,r,S,s,T,t,U,u,V,v,W,w,X,x,Y,y,Z,z,1,2,3,4,5,6,7,8,9,0'.]{2,}\$/", 'messages' => 'В полі присутні заборонені символи!!')))); $group = new Zend_Form_Element_Text('group'); $group->setLabel("* group:")->setRequired(true)->addFilter('StripTags')->addFilter('stringTrim')->addValidators(array(array('regex', false, array('pattern' => "/^[а,б,в,г,ґ,д,е,є,ж,з,и,ы,і,ї,й,к,л,м,н,о,п,р,с,т,у,ф,х,ц,ч,ш,щ,ь,ю,я,А,Б,В,С,Г,Д,Е,Є,Ж,З,И,Ы,І,Ї,Й,К,Л,М,Н,О,П,Р,С,Т,У,Ф,Х,Ц,Ч,Ш,Щ,Ь,Ю,Я,A,a,B,b,C,c,D,d,E,e,F,f,G,g,H,h,I,i,J,j,K,k,L,l,M,m,N,n,O,o,P,p,Q,q,R,r,S,s,T,t,U,u,V,v,W,w,X,x,Y,y,Z,z,1,2,3,4,5,6,7,8,9,0'.]{2,}\$/", 'messages' => 'В полі присутні заборонені символи!!')))); $this->addElements(array($id, $product, $category, $group)); //-------------------- add attr $institutions = new Zend_Form_SubForm(); $institutions->setName('attr'); $session = new Zend_Session_Namespace('form'); foreach ($session->attr as $inst) { $rowForm = new Zend_Form_SubForm(); $rowForm->setName($inst); if ($inst === '__template1__') { $rowForm->setAttrib('style', 'display: none;'); } $instName = new Zend_Form_Element_Text('instName'); $instName->setLabel('attribute')->addFilter('StripTags')->addFilter('stringTrim')->setAttrib('class', 'institution')->setAttrib('onfocus', 'institutionAutocomplete(this)'); if ($inst !== '__template1__') { $instName->setRequired(true); } $inst_remove = new Zend_Form_Element_Button('remove'); $inst_remove->setLabel('remove')->setAttrib('class', 'remove')->setAttrib('onclick', 'removeInst(this)'); $elements = array($instName, $inst_remove); foreach ($elements as $element) { if ($inst !== '__template1__' && $element->getName() !== 'remove') { $element->setRequired(true); } } $rowForm->addElements($elements); $rowForm->setElementDecorators($this->getElementDecorators()); $rowForm->getElement('remove')->removeDecorator('Label'); $rowForm->setDecorators($this->getSubFormDecorators()); $institutions->addSubForm($rowForm, $inst); } $institutions->setDecorators($this->getSubFormDecorators()); $inst_add = new Zend_Form_Element_Button('addInst'); $inst_add->setLabel('add attribute')->setAttrib('class', 'addInst'); $institutions->addElement($inst_add); $institutions->setElementDecorators($this->getElementDecorators()); $institutions->getElement('addInst')->removeDecorator('Label'); $this->addSubForm($institutions, 'institutions'); $this->postSetup(); }
protected function addItemXpathsToExtend($itemXpathsToExtend) { if (count($itemXpathsToExtend) == 0) { $itemXpathsToExtend = array(new Kaltura_Client_Type_String()); } $mainSubForm = new Zend_Form_SubForm(); $mainSubForm->setLegend('Item XPaths To Extend'); $mainSubForm->setDecorators(array('FormElements', array('ViewScript', array('viewScript' => 'distribution-item-xpath-to-extend.phtml', 'placement' => 'APPEND')), 'Fieldset')); $i = 1; foreach ($itemXpathsToExtend as $stringObject) { $subForm = new Zend_Form_SubForm(array('disableLoadDefaultDecorators' => true)); $subForm->setDecorators(array('FormElements')); $subForm->addElement('text', 'itemXpathsToExtend', array('decorators' => array('ViewHelper', array('HtmlTag', array('tag' => 'div'))), 'isArray' => true, 'value' => $stringObject->value)); $mainSubForm->addSubForm($subForm, 'itemXpathsToExtend_subform_' . $i++); } $this->addSubForm($mainSubForm, 'itemXpathsToExtend_group'); }
public function init() { parent::init(); $this->setAction('/core/conference/timeslots'); $conferenceId = new Zend_Form_Element_Hidden('conference_id'); $conferenceId->setRequired(true)->addValidators(array('Int'))->setDecorators($this->_hiddenElementDecorator); $timeslot = new TA_Form_Element_Timeslot('timeslot_1'); $timeslot->clearDecorators()->addDecorator(new TA_Form_Decorator_Timeslot())->setIgnore(true)->setAttrib('class', 'hidden'); // since this element will be used as a template, hide it! // add timeslot elements to subform so in isValid() I only have to loop over that form $subform = new Zend_Form_SubForm(); $subform->setDecorators(array('FormElements')); $subform->addElements(array($timeslot)); $this->addSubForm($subform, 'dynamic'); $this->addElements(array($conferenceId)); $this->addElement('button', 'add', array('label' => 'Add new timeslot', 'decorators' => $this->_buttonElementDecorator)); $this->addElement('submit', 'submit', array('label' => 'Submit', 'decorators' => $this->_buttonElementDecorator)); }
public function init() { $this->setAction('/core/submit/new'); $title = new Zend_Form_Element_Text('title'); $title->setLabel('Title of paper')->setRequired(true)->addValidator('StringLength', true, array(2, 150, 'messages' => array(Zend_Validate_StringLength::TOO_SHORT => 'Please provide a longer title', Zend_Validate_StringLength::TOO_LONG => 'Your title is too long')))->setAttrib('class', 'medium')->setDescription('Must be between 2 and 150 characters')->setDecorators(array('Composite')); $audience = new Zend_Form_Element_Radio('target_audience'); $audience->setLabel('Please mark the target audience for your presentation')->setRequired(true)->setAttrib('class', 'tiny')->addMultiOptions($this->_getFieldValues('target_audience'))->setSeparator('<br />')->setDecorators(array('Composite')); $publish = new Zend_Form_Element_Radio('publish_paper'); $publish->setLabel('Please indicate whether you wish to prepare a full paper for possible publication')->setRequired(true)->setAttrib('class', 'tiny')->addMultiOptions($this->_getFieldValues('publish_paper', 'submit'))->setSeparator('<br />')->setDecorators(array('Composite')); $topicsel = new Zend_Form_Element_Radio('topic'); $topicsel->setLabel('Topic')->setRequired(true)->setAttrib('class', 'tiny')->addMultiOptions($this->_getFieldValues('topic'))->setSeparator('<br />')->setDecorators(array('Composite')); $keywords = new Zend_Form_Element_Text('keywords'); $keywords->setLabel('Keywords')->setRequired(false)->addValidator('StringLength', true, array(2, 500, 'messages' => array(Zend_Validate_StringLength::TOO_SHORT => 'Please provide longer keywords', Zend_Validate_StringLength::TOO_LONG => 'Your keywords are too long')))->setAttrib('class', 'medium')->setDescription('Must be between 2 and 500 characters')->setDecorators(array('Composite')); $comment = new Zend_Form_Element_Textarea('comment'); $comment->setLabel('Comment')->setAttrib('class', 'small')->setDescription('Must be between 5 and 1000 characters')->setRequired(false)->addValidator('StringLength', true, array(5, 1000, 'messages' => array(Zend_Validate_StringLength::TOO_SHORT => 'Please provide a longer description', Zend_Validate_StringLength::TOO_LONG => 'Your description is too long')))->setDecorators(array('Composite')); $file = new TA_Form_Element_MagicFile('file'); $file->setLabel('Your submission')->setRequired(true)->addDecorators($this->_magicFileElementDecorator)->setDescription('File must be a maximum of 10Mb')->addValidators(array(array('Count', true, 1), array('Size', true, 10000000))); $subform = new Zend_Form_SubForm(); $subform->setDecorators(array('FormElements')); $subform->addElements(array($title, $audience, $publish, $topicsel, $keywords, $comment, $file)); $this->addSubForm($subform, 'submission'); $this->addElement('submit', 'submit', array('label' => 'Submit', 'decorators' => $this->_buttonElementDecorator)); }
public function setMultiLanguage($key = true) { if ($key) { $languages = new Languages(); $langAll = $languages->fetchAll(); if ($langAll->count()) { $elements = $this->getElements(); $subFrms = array(); foreach ($langAll as $lang) { $sf = new Zend_Form_SubForm(); foreach ($elements as $element) { if (preg_match('/translate/', $element->getAttrib('class'))) { $newElement = clone $element; $newElement->setAttrib('id', $lang->codigo . '-' . $newElement->getName()); $sf->addElement($newElement); } } $sf->setDecorators($this->getDecorators()); $subFrms[$lang->codigo] = $sf; } $this->addSubForms($subFrms); } } return $this; }
public function testPrepareSubFormDecoratorsForTableRendering() { $method = new ReflectionMethod('Admin_Form_Document_MultiSubForm', 'prepareSubFormDecorators'); $method->setAccessible(true); $columns = array(array(), array('label' => 'Number'), array('label' => 'SortOrder')); $form = new Admin_Form_Document_MultiSubForm('Admin_Form_Document_Series', 'Series', null, array('columns' => $columns)); $subform = new Zend_Form_SubForm(); $subform->addPrefixPath('Application_Form_Decorator', 'Application/Form/Decorator', Zend_Form::DECORATOR); $subform->setDecorators(array()); $subform->addElement('text', 'test', array('decorators' => array(array('dataWrapper' => 'HtmlTag'), array('LabelNotEmpty' => 'HtmlTag'), array('ElementHtmlTag' => 'HtmlTag')))); $subform->addElement('hidden', 'Id'); $method->invoke($form, $subform); $this->assertEquals(1, count($subform->getDecorators())); $this->assertNotNull($subform->getDecorator('tableRowWrapper')); $element = $subform->getElement('test'); $this->assertFalse($element->getDecorator('dataWrapper')); $this->assertFalse($element->getDecorator('LabelNotEmpty')); $this->assertFalse($element->getDecorator('ElementHtmlTag')); $this->assertNotNull($element->getDecorator('tableCellWrapper')); $this->assertEquals(0, count($subform->getElement('Id')->getDecorators())); }
public function addRoleCheckboxes($userID = null) { ///////////////////// create role checkboxes ///////////////////// // get role array $roleModel = new Admin_Model_Role(); $roleArray = $roleModel->getRoleArray(); // create subform $subForm = new Zend_Form_SubForm(array('class' => 'roleGroup')); $subForm->setDecorators($this->_displayGroupDecorators); $subForm->setOptions(array('class' => 'fieldsetForm span-7')); // this case is for updating user if ($userID) { $checkboxes = $this->_createCheckboxesForUpdatingUser($userID); } else { $checkboxes = $this->_createCheckboxesForCreatingUser(); } $subForm->addElements($checkboxes); $this->addSubForm($subForm, 'roles'); }
/** * Adds decorators to a subform. * * @param Zend_Form_SubForm $subForm The subform */ protected function _setSubFormDecorators($subForm) { // Get rid of the fieldset tag that wraps subforms by default. $subForm->setDecorators(array('FormElements')); // Each subform is a row in the table. foreach ($subForm->getElements() as $el) { $el->setDecorators(array(array('decorator' => 'ViewHelper'), array('decorator' => 'HtmlTag', 'options' => array('tag' => 'td')))); } }
public function form($values = array()) { $config = Zend_Registry::get('config'); $form = new Zend_Form(); $form->setAttrib('id', 'eventForm')->setDecorators(array('FormElements', array('HtmlTag', array('tag' => 'div', 'class' => 'zend_form')), 'Form')); $workshop = new Workshop(); $where = $workshop->getAdapter()->quoteInto('status = ?', 'enabled'); $workshops = $workshop->fetchAll($where, 'title'); $workshopList = array(); foreach ($workshops as $w) { $workshopList[$w->workshopId] = $w->title; } $workshopElement = $form->createElement('select', 'workshop', array('label' => 'Workshop:')); $workshopElement->setMultiOptions($workshopList)->setValue(isset($values['workshopId']) ? $values['workshopId'] : ''); $location = new Location(); $where = $location->getAdapter()->quoteInto('status = ?', 'enabled'); $locations = $location->fetchAll($where, 'name'); $locationList = array(); $locationCapacity = array(); foreach ($locations as $l) { $locationList[$l->locationId] = $l->name; $locationCapacity['loc_' . $l->locationId] = $l->capacity; } $locationIds = array_keys($locationList); // add the location capacities to the page in js so we can process it as a json object for the "live" max size changing with location selection Zend_Layout::getMvcInstance()->getView()->headScript()->appendScript('var locationCapacitiesString = ' . Zend_Json::encode($locationCapacity) . ';'); $locationElement = $form->createElement('select', 'location', array('label' => 'Location:')); $locationElement->setMultiOptions($locationList)->setValue(isset($values['locationId']) ? $values['locationId'] : $locationCapacity['loc_' . $locationIds[0]]); $date = $form->createElement('text', 'date', array('label' => 'Date:')); $date->setRequired(true)->addFilter('StringTrim')->addFilter('StripTags')->setAttrib('maxlength', '128')->setAttrib('style', 'width: 200px')->setValue(isset($values['date']) ? strftime('%A, %B %e, %Y', strtotime($values['date'])) : ''); $password = $form->createElement('text', 'password', array('label' => 'Event Password:'******'StringTrim')->addFilter('StripTags')->setAttrib('maxlength', '100')->setValue(isset($values['password']) ? $values['password'] : ''); // add the start time selector $startTimeSub = new Zend_Form_SubForm(); $startTimeSub->setDecorators(array('FormElements', array('HtmlTag', array('tag' => 'div', 'class' => 'zend_form')))); $startTimeSub->setAttrib('class', 'sub'); $startTimeHour = $startTimeSub->createElement('select', 'hour', array('label' => 'Start Time:')); for ($i = 1; $i <= 12; $i++) { $startTimeHour->addMultiOption($i, $i); } $startTimeHour->setDecorators(array(array('ViewHelper', array('helper' => 'formSelect')), array('Label'))); $startTimeHour->setValue(isset($values['startTime']) ? date('g', strtotime($values['startTime'])) : date('g')); $startTimeMinute = $startTimeSub->createElement('select', 'minute'); for ($i = 0; $i < 60; $i += 5) { $startTimeMinute->addMultiOption(str_pad($i, 2, '0', STR_PAD_LEFT), str_pad($i, 2, '0', STR_PAD_LEFT)); } $startTimeMinute->setDecorators(array(array('ViewHelper', array('helper' => 'formSelect')))); $startTimeMinute->setValue(isset($values['startTime']) ? date('i', strtotime($values['startTime'])) : date('i')); $startTimeMeridian = $startTimeSub->createElement('select', 'meridian'); $startTimeMeridian->addMultiOption('am', 'AM')->addMultiOption('pm', 'PM')->setDecorators(array(array('ViewHelper', array('helper' => 'formSelect')))); $startTimeMeridian->setValue(isset($values['startTime']) ? date('a', strtotime($values['startTime'])) : date('a')); $startTimeSub->addElements(array($startTimeHour, $startTimeMinute, $startTimeMeridian)); // add the end time selector $endTimeSub = new Zend_Form_SubForm(); $endTimeSub->setDecorators(array('FormElements', array('HtmlTag', array('tag' => 'div', 'class' => 'zend_form')))); $endTimeSub->setAttrib('class', 'sub'); $endTimeHour = $endTimeSub->createElement('select', 'hour', array('label' => 'End Time:')); for ($i = 1; $i <= 12; $i++) { $endTimeHour->addMultiOption($i, $i); } $endTimeHour->setDecorators(array(array('ViewHelper', array('helper' => 'formSelect')), array('Label'))); $endTimeHour->setValue(isset($values['endTime']) ? date('g', strtotime($values['endTime'])) : date('g')); $endTimeMinute = $endTimeSub->createElement('select', 'minute'); for ($i = 0; $i < 60; $i += 5) { $endTimeMinute->addMultiOption(str_pad($i, 2, '0', STR_PAD_LEFT), str_pad($i, 2, '0', STR_PAD_LEFT)); } $endTimeMinute->setDecorators(array(array('ViewHelper', array('helper' => 'formSelect')))); $endTimeMinute->setValue(isset($values['endTime']) ? date('i', strtotime($values['endTime'])) : date('i')); $endTimeMeridian = $endTimeSub->createElement('select', 'meridian'); $endTimeMeridian->addMultiOption('am', 'AM')->addMultiOption('pm', 'PM')->setDecorators(array(array('ViewHelper', array('helper' => 'formSelect')))); $endTimeMeridian->setValue(isset($values['endTime']) ? date('a', strtotime($values['endTime'])) : date('a')); $endTimeSub->addElements(array($endTimeHour, $endTimeMinute, $endTimeMeridian)); // get all the users available for the instructor list $otAccount = new Ot_Account(); $accounts = $otAccount->fetchAll(null, array('lastName', 'firstName'))->toArray(); $instructorList = array(); foreach ($accounts as $a) { $instructorList[$a['accountId']] = $a['lastName'] . ", " . $a['firstName']; } $instructorElement = $form->createElement('multiselect', 'instructors', array('label' => 'Instructor(s):')); $instructorElement->setMultiOptions($instructorList)->setAttrib('size', 10)->setValue(isset($values['instructorIds']) ? $values['instructorIds'] : ''); $minSize = $form->createElement('text', 'minSize', array('label' => 'Min Size:')); $minSize->setRequired(true)->addFilter('StringTrim')->addFilter('StripTags')->setAttrib('maxlength', '64')->setAttrib('style', 'width: 50px;')->setValue(isset($values['minSize']) ? $values['minSize'] : $config->user->defaultMinWorkshopSize->val); $maxSize = $form->createElement('text', 'maxSize', array('label' => 'Max Size:')); $maxSize->setRequired(true)->addFilter('StringTrim')->addFilter('StripTags')->setAttrib('maxlength', '64')->setAttrib('style', 'width: 50px;')->setValue(isset($values['maxSize']) ? $values['maxSize'] : $locationElement->getValue()); $waitlistSize = $form->createElement('text', 'waitlistSize', array('label' => 'Waitlist Size:')); $waitlistSize->setRequired(true)->addFilter('StringTrim')->addFilter('StripTags')->setAttrib('maxlength', '64')->setAttrib('style', 'width: 50px;')->setValue(isset($values['waitlistSize']) ? $values['waitlistSize'] : $config->user->defaultWorkshopWaitlistSize->val); $evaluationType = $form->createElement('select', 'evaluationType', array('label' => 'Evaluation Type:')); $evaluationType->setMultiOptions(array('default' => 'Default', 'google' => 'Google Form'))->setRequired(true)->setValue(isset($values['evaluationType']) ? $values['evaluationType'] : 'default'); $formKey = $form->createElement('textarea', 'formKey', array('label' => 'Google Form Question Key:')); $formKey->setAttribs(array('cols' => '10', 'rows' => '5', 'style' => 'width : 250px;'))->addDecorators(array('ViewHelper', 'Errors', 'HtmlTag', array('Label', array('tag' => 'span')), array(array('elementDiv' => 'HtmlTag'), array('tag' => 'div', 'id' => 'formKey', 'class' => 'elm'))))->setValue(isset($values['formKey']) ? $values['formKey'] : ''); $answerKey = $form->createElement('textarea', 'answerKey', array('label' => 'Google Form Answer Key:')); $answerKey->addFilter('StringTrim')->addFilter('StripTags')->setAttribs(array('cols' => '10', 'rows' => '3', 'style' => 'width : 250px;'))->addDecorators(array('ViewHelper', 'Errors', 'HtmlTag', array('Label', array('tag' => 'span')), array(array('elementDiv' => 'HtmlTag'), array('tag' => 'div', 'id' => 'answerKey', 'class' => 'elm'))))->setValue(isset($values['answerKey']) ? $values['answerKey'] : ''); $submit = $form->createElement('submit', 'submitButton', array('label' => 'Submit')); $submit->setDecorators(array(array('ViewHelper', array('helper' => 'formSubmit')))); $cancel = $form->createElement('button', 'cancel', array('label' => 'Cancel')); $cancel->setAttrib('id', 'cancel'); $cancel->setDecorators(array(array('ViewHelper', array('helper' => 'formButton')))); $form->addElements(array($workshopElement, $locationElement, $password, $date, $evaluationType))->addSubForms(array('startTime' => $startTimeSub, 'endTime' => $endTimeSub))->addElements(array($minSize, $maxSize, $waitlistSize, $instructorElement)); $form->addDisplayGroup(array('instructors'), 'instructors-group', array('legend' => 'Instructors')); $form->addDisplayGroup(array('workshop', 'password', 'location', 'minSize', 'maxSize', 'waitlistSize'), 'generalInformation', array('legend' => 'General Information')); $form->setElementDecorators(array('ViewHelper', 'Errors', array('HtmlTag', array('tag' => 'div', 'class' => 'elm')), array('Label', array('tag' => 'span'))))->addElements(array($submit, $cancel)); $form->addElements(array($evaluationType, $formKey, $answerKey)); $form->addDisplayGroup(array('evaluationType', 'formKey', 'answerKey'), 'evaluationTypes', array('legend' => 'Evaluations')); $form->addDisplayGroup(array('submitButton', 'cancel'), 'buttons'); $form->setDisplayGroupDecorators(array('FormElements', array('HtmlTag', array('tag' => 'div', 'class' => 'widget-content')), array(array('elementDiv' => 'HtmlTag'), array('tag' => 'div', 'class' => array('widget-footer', 'ui-corner-bottom'), 'placement' => Zend_Form_Decorator_Abstract::APPEND)), array('FieldSet', array('class' => 'formField')))); $buttons = $form->getDisplayGroup('buttons'); $buttons->setDecorators(array('FormElements', array('HtmlTag', array('tag' => 'div', 'style' => 'clear : both;')))); if (isset($values['eventId'])) { $eventId = $form->createElement('hidden', 'eventId'); $eventId->setValue($values['eventId']); $eventId->setDecorators(array(array('ViewHelper', array('helper' => 'formHidden')))); $form->addElement($eventId); } return $form; }
public function init() { // Set the form name, method and action $this->setAttrib('name', 'registerForm'); $this->setAttrib('method', 'post'); $this->setAttrib('action', '/error'); /** * Agent Subform */ $agent = new Zend_Form_SubForm(); $agent->setDecorators(array(array('ViewScript', array('viewScript' => 'partials/_agent.phtml')))); // Business Name Element $agent->addElement('text', 'agent_business', array('filters' => array('StringTrim'), 'label' => 'Business Name:', 'required' => true, 'belongsTo' => 'agent', 'validators' => array(array('NotEmpty', true), array('StringLength', true, array(1, 150))))); // First Name Element $agent->addElement('text', 'agent_fname', array('filters' => array('StringTrim'), 'label' => 'First Name:', 'required' => true, 'belongsTo' => 'agent', 'validators' => array(array('NotEmpty', true), array('StringLength', true, array(1, 150))))); // Last Name Element $agent->addElement('text', 'agent_lname', array('filters' => array('StringTrim'), 'label' => 'Last Name:', 'required' => true, 'belongsTo' => 'agent', 'validators' => array(array('NotEmpty', true), array('StringLength', true, array(1, 150))))); // Address1 Element $agent->addElement('text', 'agent_address1', array('filters' => array('StringTrim'), 'label' => 'Address1:', 'required' => true, 'belongsTo' => 'agent', 'validators' => array(array('NotEmpty', true), array('StringLength', true, array(1, 150))))); // Address2 Element $agent->addElement('text', 'agent_address2', array('filters' => array('StringTrim'), 'label' => 'Address2:', 'required' => false, 'belongsTo' => 'agent', 'validators' => array(array('NotEmpty', true), array('StringLength', true, array(1, 150))))); // City Element $agent->addElement('text', 'agent_city', array('filters' => array('StringTrim'), 'label' => 'City:', 'required' => true, 'belongsTo' => 'agent', 'validators' => array(array('NotEmpty', true), array('StringLength', true, array(1, 150))))); // State Element $agent->addElement('text', 'agent_state', array('filters' => array('StringTrim'), 'label' => 'State:', 'required' => true, 'belongsTo' => 'agent', 'validators' => array(new FFR_Form_Validator_ValidUnitedStates(), array('NotEmpty', true), array('StringLength', true, array(1, 50))))); // Zipcode Element $agent->addElement('text', 'agent_zip', array('filters' => array('StringTrim'), 'label' => 'Zipcode:', 'required' => true, 'belongsTo' => 'agent', 'validators' => array(new FFR_Form_Validator_ValidZipCode(), array('NotEmpty', true), array('StringLength', true, array(1, 10))))); // Work Phone Element $agent->addElement('text', 'agent_workphone', array('filters' => array('StringTrim'), 'label' => 'Work Phone:', 'required' => true, 'belongsTo' => 'agent', 'validators' => array(new FFR_Form_Validator_ValidPhone(), array('NotEmpty', true), array('StringLength', true, array(1, 15))))); // Cell Phone Element $agent->addElement('text', 'agent_cellphone', array('filters' => array('StringTrim'), 'label' => 'Cell Phone:', 'required' => false, 'belongsTo' => 'agent', 'validators' => array(new FFR_Form_Validator_ValidPhone(), array('NotEmpty', true), array('StringLength', true, array(1, 15))))); // Fax Element $agent->addElement('text', 'agent_fax', array('filters' => array('StringTrim'), 'label' => 'Fax:', 'required' => false, 'belongsTo' => 'agent', 'validators' => array(new FFR_Form_Validator_ValidPhone(), array('NotEmpty', true), array('StringLength', true, array(1, 15))))); // Email Element $agent->addElement('text', 'agent_email', array('filters' => array('StringTrim', 'StringToLower'), 'label' => 'Email:', 'required' => true, 'belongsTo' => 'agent', 'validators' => array(array('NotEmpty', true), array('StringLength', true, array(1, 150)), array('EmailAddress')))); /** * User Subform */ $user = new Zend_Form_SubForm(); $user->setDecorators(array(array('ViewScript', array('viewScript' => 'partials/_user.phtml')))); // Username Element $user->addElement('text', 'user_username', array('filters' => array('StringTrim', 'StringToLower'), 'label' => 'Username:'******'required' => true, 'belongsTo' => 'user', 'validators' => array(array('NotEmpty', true), 'Alnum', array('Regex', false, array('/^[a-z][a-z0-9]{3,20}$/')), array('Db_NoRecordExists', true, array('table' => 'user', 'field' => 'user_username'))))); $user->getElement('user_username')->getValidator('Db_NoRecordExists')->setMessages(array('recordFound' => 'That username is already taken. Please choose another.')); // Password Element $user->addElement('password', 'user_password', array('filters' => array('StringTrim'), 'label' => 'Password:'******'required' => true, 'belongsTo' => 'user', 'validators' => array(array('NotEmpty', true), array('StringLength', true, array(6))))); // Password Verify Element $user->addElement('password', 'password_confirm', array('filters' => array('StringTrim'), 'label' => 'Confirm Password:'******'required' => true, 'belongsTo' => 'user', 'validators' => array(array('NotEmpty', true), array('StringLength', true, array(6))))); // User Active Element $user->addElement('hidden', 'user_active', array('belongsTo' => 'user', 'required' => true, 'value' => '0')); $user->addElement('hidden', 'user_perms', array('belongsTo' => 'user', 'required' => true, 'value' => 'a:2:{s:5:"roles";a:1:{i:0;s:5:"Agent";}s:13:"acl_resources";a:0:{}}')); /** * Account Subform */ $account = new Zend_Form_SubForm(); $account->setDecorators(array(array('ViewScript', array('viewScript' => 'partials/_account.phtml')))); // Business Name Element $account->addElement('text', 'account_business', array('filters' => array('StringTrim'), 'label' => 'Business Name:', 'required' => true, 'belongsTo' => 'account', 'validators' => array(array('NotEmpty', true), array('StringLength', true, array(1, 150))))); // First Name Element $account->addElement('text', 'account_fname', array('filters' => array('StringTrim'), 'label' => 'First Name:', 'required' => true, 'belongsTo' => 'account', 'validators' => array(array('NotEmpty', true), array('StringLength', true, array(1, 150))))); // Last Name Element $account->addElement('text', 'account_lname', array('filters' => array('StringTrim'), 'label' => 'Last Name:', 'required' => true, 'belongsTo' => 'account', 'validators' => array(array('NotEmpty', true), array('StringLength', true, array(1, 150))))); // Address1 Element $account->addElement('text', 'account_address1', array('filters' => array('StringTrim'), 'label' => 'Address1:', 'required' => true, 'belongsTo' => 'account', 'validators' => array(array('NotEmpty', true), array('StringLength', true, array(1, 150))))); // Address2 Element $account->addElement('text', 'account_address2', array('filters' => array('StringTrim'), 'label' => 'Address2:', 'required' => false, 'belongsTo' => 'account', 'validators' => array(array('NotEmpty', true), array('StringLength', true, array(1, 150))))); // City Element $account->addElement('text', 'account_city', array('filters' => array('StringTrim'), 'label' => 'City:', 'required' => true, 'belongsTo' => 'account', 'validators' => array(array('NotEmpty', true), array('StringLength', true, array(1, 150))))); // State Element $account->addElement('text', 'account_state', array('filters' => array('StringTrim'), 'label' => 'State:', 'required' => true, 'belongsTo' => 'account', 'validators' => array(new FFR_Form_Validator_ValidUnitedStates(), array('NotEmpty', true), array('StringLength', true, array(1, 50))))); // Zipcode Element $account->addElement('text', 'account_zip', array('filters' => array('StringTrim'), 'label' => 'Zipcode:', 'required' => true, 'belongsTo' => 'account', 'validators' => array(new FFR_Form_Validator_ValidZipCode(), array('NotEmpty', true), array('StringLength', true, array(1, 10))))); // Work Phone Element $account->addElement('text', 'account_workphone', array('filters' => array('StringTrim'), 'label' => 'Work Phone:', 'required' => true, 'belongsTo' => 'account', 'validators' => array(new FFR_Form_Validator_ValidPhone(), array('NotEmpty', true), array('StringLength', true, array(1, 15))))); // Cell Phone Element $account->addElement('text', 'account_cellphone', array('filters' => array('StringTrim'), 'label' => 'Cell Phone:', 'required' => false, 'belongsTo' => 'account', 'validators' => array(new FFR_Form_Validator_ValidPhone(), array('NotEmpty', true), array('StringLength', true, array(1, 15))))); // Fax Element $account->addElement('text', 'account_fax', array('filters' => array('StringTrim'), 'label' => 'Fax:', 'required' => false, 'belongsTo' => 'account', 'validators' => array(new FFR_Form_Validator_ValidPhone(), array('NotEmpty', true), array('StringLength', true, array(1, 15))))); // Email Element $account->addElement('text', 'account_email', array('filters' => array('StringTrim', 'StringToLower'), 'label' => 'Email:', 'required' => true, 'belongsTo' => 'account', 'validators' => array(array('NotEmpty', true), array('StringLength', true, array(1, 150)), array('EmailAddress')))); /** * Attach sub forms to main form */ $this->addSubForms(array('agent' => $agent, 'user' => $user, 'account' => $account)); /** * Buttons */ $this->addElement('button', 'saveCloseButton', array('Label' => 'Save & Close', 'class' => 'ui-state-default float-left ui-corner-all ui-button')); $this->getElement('saveCloseButton')->removeDecorator('DtDdWrapper'); $this->addElement('button', 'saveContinueButton', array('Label' => 'Save & Continue', 'class' => 'ui-state-default float-right ui-corner-all ui-button')); $this->getElement('saveContinueButton')->removeDecorator('DtDdWrapper'); }
public function setSubFormDecorators(Zend_Form_SubForm $subForm) { $subForm->setDecorators(array('FormElements', array('HtmlTag', array('tag' => 'dl', 'class' => 'zend_form')), 'Form')); //if ($subForm->getName() == 'basic_info') { // $subForm->setDecorators(array('PrepareElements', // array('ViewScript', // array('viewScript' => 'devotees/addNewDevotee.phtml')), // )); // // } // // if ($subForm->getName() == 'personal_info') { // $subForm->setDecorators(array('PrepareElements', // array('ViewScript', // array('viewScript' => 'devotees/addNewDevotee.phtml')), // )); // // } // // if ($subForm->getName() == 'address_info') { // $subForm->setDecorators(array('PrepareElements', // array('ViewScript', // array('viewScript' => 'addNewDevotee.phtml')), // )); // // } // // if ($subForm->getName() == 'family_info') { // $subForm->setDecorators(array('PrepareElements', // array('ViewScript', // array('viewScript' => 'addNewDevotee.phtml')), // )); // // } // // if ($subForm->getName() == 'education_info') { // $subForm->setDecorators(array('PrepareElements', // array('ViewScript', // array('viewScript' => 'addNewDevotee.phtml')), // )); // // } // // if ($subForm->getName() == 'office_info') { // $subForm->setDecorators(array('PrepareElements', // array('ViewScript', // array('viewScript' => 'addNewDevotee.phtml')), // )); // // } // // if ($subForm->getName() == 'devotional_info') { // $subForm->setDecorators(array('PrepareElements', // array('ViewScript', // array('viewScript' => 'addNewDevotee.phtml')), // )); // // } // // if ($subForm->getName() == 'services_info') { // $subForm->setDecorators(array('PrepareElements', // array('ViewScript', // array('viewScript' => 'addNewDevotee.phtml')), // )); // // } return $this; }
public function init() { // Set the form name, method and action $this->setAttrib('name', 'createClientEmploymentForm'); $this->setAttrib('method', 'post'); $this->setAttrib('action', '/error'); $this->setDecorators(array(array('ViewScript', array('viewScript' => 'partials/_createClientEmployment.phtml')))); $retirementPlanType = array('' => '**Retirement Plan Type**', '401k' => '401k', '403b' => '403b', '457' => '457', 'Defined Benefit' => 'Defined Benefit', 'IRA' => 'IRA', 'Keogh' => 'Keogh', 'Roth IRA' => 'Roth IRA', 'SEP' => 'SEP', 'SIMPLE' => 'SIMPLE', 'None' => 'None', 'Other' => 'Other'); $payFrequency = array('' => '**Pay Frequency**', 'Weekly' => 'Weekly', 'Bi-Weekly' => 'Bi-Weekly', 'Monthly' => 'Monthly', '1st & 15th' => '1st & 15th', 'Quarterly' => 'Quarterly', 'Semi-Annual' => 'Semi-Annual', 'Anually' => 'Anually', 'Other' => 'Other'); /** * Client Employment Form Fields */ $client = new Zend_Form_SubForm(); $client->setDecorators(array(array('ViewScript', array('viewScript' => 'partials/_createClientEmployment.phtml')))); // Client Employer Element $client->addElement('text', 'client_employment_employer', array('filters' => array('StringTrim'), 'label' => 'Employer:', 'required' => true, 'belongsTo' => 'client', 'validators' => array(array('NotEmpty', true, array('messages' => array(Zend_Validate_NotEmpty::IS_EMPTY => 'You are required to enter your Employer Name...'))), array('StringLength', true, array(1, 150))))); // Client Occupation Element $client->addElement('text', 'client_employment_occupation', array('filters' => array('StringTrim'), 'label' => 'Occupation:', 'required' => true, 'belongsTo' => 'client', 'validators' => array(array('NotEmpty', true, array('messages' => array(Zend_Validate_NotEmpty::IS_EMPTY => 'You are required to enter your Occupation...'))), array('StringLength', true, array(1, 150))))); // Client Gross Salary Element $client->addElement('text', 'client_employment_grosspay', array('filters' => array('StringTrim', new Zend_Filter_LocalizedToNormalized(array('precision' => 2))), 'label' => 'Annual Gross Pay ($):', 'required' => true, 'belongsTo' => 'client', 'validators' => array(new FFR_Form_Validator_ValidFloat(), array('NotEmpty', true, array('messages' => array(Zend_Validate_NotEmpty::IS_EMPTY => 'You are required to enter your Annual Gross Salary...'))), array('StringLength', true, array(1, 18))))); // Client Net Salary Element $client->addElement('text', 'client_employment_netpay', array('filters' => array('StringTrim', new Zend_Filter_LocalizedToNormalized(array('precision' => 2))), 'label' => 'Annual Net Take Home ($):', 'required' => true, 'belongsTo' => 'client', 'validators' => array(new FFR_Form_Validator_ValidFloat(), array('NotEmpty', true, array('messages' => array(Zend_Validate_NotEmpty::IS_EMPTY => 'You are required to enter your Annual Net Salary...'))), array('StringLength', true, array(1, 18))))); // Client Pay Frequency Element $client->addElement('select', 'client_employment_payfrequency', array('label' => 'Pay Frequency:', 'required' => false, 'belongsTo' => 'client', 'multiOptions' => $payFrequency, 'validators' => array(array('NotEmpty', true), array('StringLength', true, array(1, 100))))); // Work Phone Element $client->addElement('text', 'client_employment_workphone', array('filters' => array('StringTrim'), 'label' => 'Work Phone:', 'required' => false, 'belongsTo' => 'client', 'validators' => array(new FFR_Form_Validator_ValidPhone(), array('NotEmpty', true), array('StringLength', true, array(1, 15))))); // Retirement Year Element $client->addElement('text', 'client_employment_retirementyear', array('filters' => array('StringTrim'), 'label' => 'Retirement Year:', 'required' => true, 'belongsTo' => 'client', 'validators' => array(new FFR_Form_Validator_ValidDate(), array('NotEmpty', true, array('messages' => array(Zend_Validate_NotEmpty::IS_EMPTY => 'You are required to enter your planned Retirement Year'))), array('StringLength', true, array(4))))); // Year Started Element $client->addElement('text', 'client_employment_yearstarted', array('filters' => array('StringTrim'), 'label' => 'Year Started:', 'required' => false, 'belongsTo' => 'client', 'validators' => array(new FFR_Form_Validator_ValidDate(), array('StringLength', true, array(4))))); // Retirement Plan Type Element $client->addElement('select', 'client_employment_retirementplantype', array('label' => 'Retirement Plan Type:', 'required' => true, 'belongsTo' => 'client', 'multiOptions' => $retirementPlanType, 'validators' => array(array('NotEmpty', true, array('messages' => array(Zend_Validate_NotEmpty::IS_EMPTY => 'You are required to enter your Retirement Plan Type...'))), array('StringLength', true, array(1, 150))))); // Client Employment Investment Company Element $client->addElement('text', 'client_employment_investco', array('filters' => array('StringTrim'), 'label' => 'Investment Company:', 'required' => true, 'belongsTo' => 'client', 'validators' => array(array('NotEmpty', true, array('messages' => array(Zend_Validate_NotEmpty::IS_EMPTY => 'You are required to enter the Investment Company...'))), array('StringLength', true, array(1, 150))))); // Your Contribution Element $client->addElement('text', 'client_employment_yourcontribution', array('filters' => array('StringTrim', new Zend_Filter_LocalizedToNormalized(array('precision' => 2))), 'label' => 'Your Contribution ($):', 'required' => true, 'belongsTo' => 'client', 'validators' => array(new FFR_Form_Validator_ValidFloat(), array('NotEmpty', true, array('messages' => array(Zend_Validate_NotEmpty::IS_EMPTY => 'You are required to enter your contribution amount or 0'))), array('StringLength', true, array(1, 15))))); // Matching Percent Element $client->addElement('text', 'client_employment_matchingpercent', array('filters' => array('StringTrim', new Zend_Filter_LocalizedToNormalized(array('precision' => 2))), 'label' => 'Matching Percent (%):', 'required' => true, 'belongsTo' => 'client', 'validators' => array(new FFR_Form_Validator_ValidPercentage(), array('NotEmpty', true, array('messages' => array(Zend_Validate_NotEmpty::IS_EMPTY => 'You are required to enter your matching percent or 0')))))); // Matching Max Element $client->addElement('text', 'client_employment_matchingmax', array('filters' => array('StringTrim', new Zend_Filter_LocalizedToNormalized(array('precision' => 2))), 'label' => 'Up To ($):', 'required' => true, 'belongsTo' => 'client', 'validators' => array(new FFR_Form_Validator_ValidFloat(), array('NotEmpty', true, array('messages' => array(Zend_Validate_NotEmpty::IS_EMPTY => 'You are required to enter your Matching Max or 0')))))); // Total Value Element $client->addElement('text', 'client_employment_amount', array('filters' => array('StringTrim', new Zend_Filter_LocalizedToNormalized(array('precision' => 2))), 'label' => 'Total Value ($):', 'required' => true, 'belongsTo' => 'client', 'validators' => array(new FFR_Form_Validator_ValidFloat(), array('NotEmpty', true, array('messages' => array(Zend_Validate_NotEmpty::IS_EMPTY => 'You are required to enter the Total Value or 0')))))); // $ Avail for TX Element $client->addElement('text', 'client_employment_txamount', array('filters' => array('StringTrim', new Zend_Filter_LocalizedToNormalized(array('precision' => 2))), 'label' => '$ Available for Transfer:', 'required' => true, 'belongsTo' => 'client', 'validators' => array(new FFR_Form_Validator_ValidFloat(), array('NotEmpty', true, array('messages' => array(Zend_Validate_NotEmpty::IS_EMPTY => 'You are required to enter the TX Amount or 0')))))); // Retirement Plan Type Element $client->addElement('select', 'client_employment_taxstatus', array('label' => 'Tax Status:', 'required' => true, 'belongsTo' => 'client', 'multiOptions' => array('' => '**Tax Status**', 'Qualified' => 'Qualified', 'Non-Qualified' => 'Non-Qualified', 'N/A' => 'N/A'), 'validators' => array(array('NotEmpty', true, array('messages' => array(Zend_Validate_NotEmpty::IS_EMPTY => 'You are required to enter the Tax Status...')))))); //Add Client Id Element $client->addElement('hidden', 'client_id', array('belongsTo' => 'client', 'required' => true)); /** * Spouse Employment Form Fields */ $spouse = new Zend_Form_SubForm(); $spouse->setDecorators(array(array('ViewScript', array('viewScript' => 'partials/_createClientSpouseEmployment.phtml')))); // Spouse Employer Element $spouse->addElement('text', 'client_employment_employer', array('filters' => array('StringTrim'), 'label' => 'Employer:', 'required' => true, 'belongsTo' => 'spouse', 'validators' => array(array('NotEmpty', true, array('messages' => array(Zend_Validate_NotEmpty::IS_EMPTY => 'You are required to enter your Employer Name...'))), array('StringLength', true, array(1, 150))))); // Spouse Occupation Element $spouse->addElement('text', 'client_employment_occupation', array('filters' => array('StringTrim'), 'label' => 'Occupation:', 'required' => true, 'belongsTo' => 'spouse', 'validators' => array(array('NotEmpty', true, array('messages' => array(Zend_Validate_NotEmpty::IS_EMPTY => 'You are required to enter your Occupation...'))), array('StringLength', true, array(1, 150))))); // Spouse Gross Salary Element $spouse->addElement('text', 'client_employment_grosspay', array('filters' => array('StringTrim', new Zend_Filter_LocalizedToNormalized(array('precision' => 2))), 'label' => 'Annual Gross Pay ($):', 'required' => true, 'belongsTo' => 'spouse', 'validators' => array('Float', array('NotEmpty', true, array('messages' => array(Zend_Validate_NotEmpty::IS_EMPTY => 'You are required to enter your Annual Gross Salary...'))), array('StringLength', true, array(1, 15))))); // Spouse Net Salary Element $spouse->addElement('text', 'client_employment_netpay', array('filters' => array('StringTrim', new Zend_Filter_LocalizedToNormalized(array('precision' => 2))), 'label' => 'Annual Net Take Home ($):', 'required' => true, 'belongsTo' => 'spouse', 'validators' => array(new FFR_Form_Validator_ValidFloat(), array('NotEmpty', true, array('messages' => array(Zend_Validate_NotEmpty::IS_EMPTY => 'You are required to enter your Annual Net Salary...'))), array('StringLength', true, array(1, 15))))); // Spouse Pay Frequency Element $spouse->addElement('select', 'client_employment_payfrequency', array('label' => 'Pay Frequency:', 'required' => false, 'multiOptions' => $payFrequency, 'belongsTo' => 'spouse', 'validators' => array(array('StringLength', true, array(1, 100))))); // Spouse Work Phone Element $spouse->addElement('text', 'client_employment_workphone', array('filters' => array('StringTrim'), 'label' => 'Work Phone:', 'required' => false, 'belongsTo' => 'spouse', 'validators' => array(new FFR_Form_Validator_ValidPhone(), array('NotEmpty', true), array('StringLength', true, array(1, 15))))); // Spouse Retirement Year Element $spouse->addElement('text', 'client_employment_retirementyear', array('filters' => array('StringTrim'), 'label' => 'Retirement Year:', 'required' => true, 'belongsTo' => 'spouse', 'validators' => array(new FFR_Form_Validator_ValidDate(), array('NotEmpty', true, array('messages' => array(Zend_Validate_NotEmpty::IS_EMPTY => 'You are required to enter your planned Retirement Year'))), array('StringLength', true, array(1, 4))))); // Spouse Year Started Element $spouse->addElement('text', 'client_employment_yearstarted', array('filters' => array('StringTrim'), 'label' => 'Year Started:', 'required' => false, 'belongsTo' => 'spouse', 'validators' => array(new FFR_Form_Validator_ValidDate(), array('StringLength', true, array(1, 4))))); // Spouse Retirement Plan Type Element $spouse->addElement('select', 'client_employment_retirementplantype', array('filters' => array('StringTrim'), 'label' => 'Retirement Plan Type:', 'required' => true, 'multiOptions' => $retirementPlanType, 'belongsTo' => 'spouse', 'validators' => array(array('NotEmpty', true, array('messages' => array(Zend_Validate_NotEmpty::IS_EMPTY => 'You are required to enter your Retirement Plan Type...'))), array('StringLength', true, array(1, 150))))); // Spouse Employment Investment Company Element $spouse->addElement('text', 'client_employment_investco', array('filters' => array('StringTrim'), 'label' => 'Investment Company:', 'required' => true, 'belongsTo' => 'spouse', 'validators' => array(array('NotEmpty', true, array('messages' => array(Zend_Validate_NotEmpty::IS_EMPTY => 'You are required to enter the Investment Company...'))), array('StringLength', true, array(1, 150))))); // Spouse Your Contribution Element $spouse->addElement('text', 'client_employment_yourcontribution', array('filters' => array('StringTrim', new Zend_Filter_LocalizedToNormalized(array('precision' => 2))), 'label' => 'Your Contribution ($):', 'required' => true, 'belongsTo' => 'spouse', 'validators' => array(new FFR_Form_Validator_ValidFloat(), array('NotEmpty', true, array('messages' => array(Zend_Validate_NotEmpty::IS_EMPTY => 'You are required to enter your contribution amount or 0'))), array('StringLength', true, array(1, 15))))); // Spouse Matching Percent Element $spouse->addElement('text', 'client_employment_matchingpercent', array('filters' => array('StringTrim'), 'label' => 'Matching Percent (%):', 'required' => true, 'belongsTo' => 'spouse', 'validators' => array(new FFR_Form_Validator_ValidPercentage(), array('NotEmpty', true, array('messages' => array(Zend_Validate_NotEmpty::IS_EMPTY => 'You are required to enter your matching percent or 0')))))); // Spouse Matching Max Element $spouse->addElement('text', 'client_employment_matchingmax', array('filters' => array('StringTrim', new Zend_Filter_LocalizedToNormalized(array('precision' => 2))), 'label' => 'Up To ($):', 'required' => true, 'belongsTo' => 'spouse', 'validators' => array(new FFR_Form_Validator_ValidFloat(), array('NotEmpty', true, array('messages' => array(Zend_Validate_NotEmpty::IS_EMPTY => 'You are required to enter your Matching Max or 0')))))); // Total Value Element $spouse->addElement('text', 'client_employment_amount', array('filters' => array('StringTrim', new Zend_Filter_LocalizedToNormalized(array('precision' => 2))), 'label' => 'Total Value ($):', 'required' => true, 'belongsTo' => 'spouse', 'validators' => array(new FFR_Form_Validator_ValidFloat(), array('NotEmpty', true, array('messages' => array(Zend_Validate_NotEmpty::IS_EMPTY => 'You are required to enter the Total Value or 0')))))); // $ Avail for TX Element $spouse->addElement('text', 'client_employment_txamount', array('filters' => array('StringTrim', new Zend_Filter_LocalizedToNormalized(array('precision' => 2))), 'label' => '$ Available for Transfer:', 'required' => true, 'belongsTo' => 'spouse', 'validators' => array(new FFR_Form_Validator_ValidFloat(), array('NotEmpty', true, array('messages' => array(Zend_Validate_NotEmpty::IS_EMPTY => 'You are required to enter the TX Amount or 0')))))); // Retirement Plan Type Element $spouse->addElement('select', 'client_employment_taxstatus', array('label' => 'Tax Status:', 'required' => true, 'belongsTo' => 'spouse', 'multiOptions' => array('' => '**Tax Status**', 'Qualified' => 'Qualified', 'Non-Qualified' => 'Non-Qualified', 'N/A' => 'N/A'), 'validators' => array(array('NotEmpty', true, array('messages' => array(Zend_Validate_NotEmpty::IS_EMPTY => 'You are required to enter the Tax Status...')))))); //Add Client Id Element $spouse->addElement('hidden', 'client_id', array('belongsTo' => 'spouse', 'required' => true)); // Attach sub forms to main form $this->addSubForms(array('client' => $client, 'spouse' => $spouse)); /** * Buttons */ $this->addElement('button', 'saveCloseButton', array('Label' => 'Save & Close', 'class' => 'ui-state-default float-left ui-corner-all ui-button')); $this->getElement('saveCloseButton')->removeDecorator('DtDdWrapper'); $this->addElement('button', 'saveContinueButton', array('Label' => ' Save ', 'class' => 'ui-state-default float-right ui-corner-all ui-button')); $this->getElement('saveContinueButton')->removeDecorator('DtDdWrapper'); }
public function setSubFormDecorators(Zend_Form_SubForm $subForm) { $subForm->setDecorators(array('FormElements', array('HtmlTag', array('tag' => 'table', 'class' => 'zend_form')), 'Form')); return $this; }
public function addTempSeats($tempSeats) { if ($tempSeats == null) { throw new Exception('tempSeats is null'); } $subForm = new Zend_Form_SubForm(array('class' => 'addSeatStyle')); $subForm->setDecorators($this->_displayGroupDecorators); foreach ($tempSeats as $index => $ticketID) { $subForm->addElement('hidden', $index . '', array('value' => $ticketID, 'decorators' => array('ViewHelper'))); } $this->addSubForm($subForm, 'tempSeats'); }