yform icon indicating copy to clipboard operation
yform copied to clipboard

Formulare im View- oder Edit-Modus ausgeben

Open engel4u opened this issue 3 years ago • 4 comments

Mit YForm kann man ganz schnell auch im Frontend Datensätze bearbeiten.

Schön wäre es, wenn man mit einem Schalter alle Datenfelder nur ausgeben kann (sprich nicht als Formular).

Bei einzelnen Felder kann man das mit showvalue erledigen. Bei allen Felder wird es dann schon aufwändig.

Vorschlag: Umsetzung eines Parameters, der true oder false ist. Der Parameter bewirkt:

Standard (Parameter = false)

$ycom_user = rex_ycom_auth::getUser(); $chorID = $ycom_user->getValue('chor'); $yform = new rex_yform(); $yform->setObjectparams('form_name', 'table-rex_xy'); $yform->setObjectparams('form_action',rex_getUrl('REX_ARTICLE_ID')); $yform->setObjectparams('form_ytemplate', 'bootstrap'); $yform->setObjectparams('form_showformafterupdate', 0); $yform->setObjectparams('real_field_names', true); $yform->setObjectparams('getdata',1); $yform->setObjectparams('main_where','id='.$id); $yform->setObjectparams('main_table','rex_xy');

$yform->setValueField('text', ['chorname','Chorname','','0']); $yform->setValueField('text', ['email','E-Mail','','0']); $yform->setActionField('db', array("rex_xy", "main_where")); $yform->setActionField('html', array("

Vielen Dank, die Daten wurden gespeichert.

")); echo $yform->getForm();

Nur Ansicht (Parameter = true)

$ycom_user = rex_ycom_auth::getUser(); $chorID = $ycom_user->getValue('chor'); $yform = new rex_yform(); $yform->setObjectparams('form_name', 'table-rex_xy'); $yform->setObjectparams('form_action',rex_getUrl('REX_ARTICLE_ID')); $yform->setObjectparams('form_ytemplate', 'bootstrap'); $yform->setObjectparams('real_field_names', true); $yform->setObjectparams('getdata',1); $yform->setObjectparams('main_where','id='.$id); $yform->setObjectparams('main_table','rex_xy');

$yform->setValueField('showvalue', ['chorname','Chorname','','0']); $yform->setValueField('showvalue', ['email','E-Mail','','0']); echo $yform->getForm();

Außerdem muss dann natürlich der Button für das Absenden ausgeblendet werden.

Vorteil: ein Code für Ansicht oder Edit-Modus.

engel4u avatar Sep 13 '21 09:09 engel4u

Ich fände es sogar ganz cool den Parameter optional an jedem Value zu haben, damit wäre doch die "Nur Lesen Ansicht" im Backend schön umzusetzen oder?

marcohanke avatar Sep 13 '21 18:09 marcohanke

Wobei es mir nicht um das Backend ging, sondern um das Frontend. Und ich würde schon vorschlagen, den Parameter auch für das ganze Formular zu machen. Denn es müssen ja wie gesagt auch andere Dinge im Code anders sein als im Edit-Modus (Sprich als Formular). Im Ansichtsmodus sollen einfach nur alle Werte angezeigt werden. Im Edit-Modus kann ich die Felder editieren und speichern...

engel4u avatar Sep 15 '21 09:09 engel4u

Man könnte es so lösen, dass man readonly-Theme für YForm entwirft.

alxndr-w avatar Sep 15 '21 16:09 alxndr-w

Bin mir unsicher damit schiebe ich erst mal auf 4.x

dergel avatar Nov 29 '21 08:11 dergel