[Solar-talk] Forms, User roles and access
Benjamin Kaineder
benjamin at kaineder.com
Fri May 2 10:57:19 CDT 2008
I had the same problem. As grouping is seen as a design function, it has
to be used in the view, not in the controller. So you use setElements()
on the Solar_Form in your controller and something like that in the
view, utilizing the form-helper:
<?php
echo '<form action="anmeldung.php" method="post"
enctype="multipart/form-data">';
echo $this->form()
->setStatus($this->formanm->getStatus())
//->addFeedback($this->formanm->feedback)
->fetch(false);
echo '<h2>Termin für Qualifikation</h2>';
echo $this->form()
->addElement($this->formanm->elements['turnier'])
->addElement($this->formanm->elements['startzeit'])
->fetch(false);
echo '<h2>Spieler</h2>';
echo $this->form()
->beginGroup($this->getText('LABEL_ANM_NAME'))
->addElement($this->formanm->elements['nachname'])
->addElement($this->formanm->elements['vorname'])
->endGroup()
->addElement($this->formanm->elements['strasse'])
->beginGroup($this->getText('LABEL_ANM_ORT'))
->addElement($this->formanm->elements['plz'])
->addElement($this->formanm->elements['ort'])
->endGroup()
->addElement($this->formanm->elements['telefon'])
->addElement($this->formanm->elements['email'])
->fetch(false);
echo $this->form()
->addElement($this->formanm->elements['heimatclub'])
->addElement($this->formanm->elements['handicap'])
->fetch(false);
echo $this->form()
->addElement($this->formanm->elements['process'])
->fetch(false);
echo '</form>';
?>
Not very elegant in any way but that's the only way I got it to work
with grouping and html in between the fields.
I'd say this definitely is a topic worth improving :-)
Ben
Kilbride, James P. schrieb:
> Btw, I went back to this and realized that this is talking about the
> Solar_View_Helper_Form not Solar_Form.
>
> So I add the elements to the Solar_Form in my controller. I am not
> working with a Solar_View_Helper_Form in the controller. doing the
> setElements and such. But beginGroup doesn't seem to exist on Solar_Form
> so how do you begin/end the group if using the Solar_Form class?
>
> This is what I'm trying to do:
>
> $this->matrixForm = Solar::factory('Solar_Form');
>
> $this->matrixForm->beginGroup('Verification Equipment');
> $equipmentSet = $this->program->equipmentRelation;
> $equipmentList = $currMatrix->equipmentRelations;
> $verificationEquipment =
> Solar::factory('ProcedureMatrix_Models_VerificationEquipment');
> foreach ($equipmentSet as $equipment) {
> $currentValue = '';
> foreach ($equipmentList as $linkObject) {
> if($linkObject->equipment_id ==
> $equipment->equipment_id) {
> $currentValue =
> $linkObject->equipment_usage;
> }
> }
>
> $this->matrixForm->setElement('equipment'.$equipment->equipment_id,array
> (
> 'type' => 'select',
> 'label' =>
> $equipment->equipment->equipment_name.':',
> 'options' =>
> $verificationEquipment->usageOptions(),
> 'value' => $currentValue,
> ));
> }
> $this->matrixForm->endGroup();
>
> in my view I'm just doing:
>
> <?php echo $this->form($this->matrixForm); ?>
>
> James Kilbride
> -----Original Message-----
> From: solar-talk-bounces at lists.solarphp.com
> [mailto:solar-talk-bounces at lists.solarphp.com] On Behalf Of Kilbride,
> James P.
> Sent: Monday, March 24, 2008 12:38 PM
> To: solar at 3hex.com; solar-talk at lists.solarphp.com
> Subject: RE: [Solar-talk] Forms, User roles and access
>
> So it is in there! When was that added? Because I know we looked for
> something like this at one point and i think we discussed it then.
> Didn't realize it had come back into the trunk.
>
> James Kilbride
>
> -----Original Message-----
> From: solar-talk-bounces at lists.solarphp.com
> [mailto:solar-talk-bounces at lists.solarphp.com] On Behalf Of Jeff
> Surgeson
> Sent: Monday, March 24, 2008 12:34 PM
> To: solar-talk at lists.solarphp.com
> Subject: Re: [Solar-talk] Forms, User roles and access
>
> Hi James
>
>
>> Hehe, good questions. Solar_Form is not highly customizable in it's
>> structure. Though I had a thought. Paul, what about adding the
>> capability in Solar_Form to 'group' things together. Everything in a
>> given groups would be displayed horizontally rather than vertically(if
>>
>
> beginGroup() and endGroup() will group for example 3 buttons together
> and display them horizontally as apposed to default vertically.
>
> echo $this->form()
> ->auto($this->forms['edit'])
> ->beginGroup()
> ->addProcessGroup(array(
> 'save',
> 'cancel',
> 'delete' => array('attribs' => $attribs)
> ))
> ->endGroup()
> ->fetch();
>
>
>> + Solar_Form:
>> How can I customize the way the form is build up
>> concerning the design? E.g.: I would like to set some
>> fields next to each other instead of below.
>>
>> Tino
>>
>
> --
> ...........::::::...........
> Jeff Surgeson / South Africa
> _______________________________________________
> Solar-talk mailing list
> Solar-talk at lists.solarphp.com
> http://mailman-mail3.webfaction.com/listinfo/solar-talk
>
> _______________________________________________
> Solar-talk mailing list
> Solar-talk at lists.solarphp.com
> http://mailman-mail3.webfaction.com/listinfo/solar-talk
>
> _______________________________________________
> Solar-talk mailing list
> Solar-talk at lists.solarphp.com
> http://mailman-mail3.webfaction.com/listinfo/solar-talk
>
>
More information about the Solar-talk
mailing list