'hiraigc02eb46spa06iiog6tvh' ] */ //debug($_ENV); //debug($_REQUEST); // Variables passées par le controleur $CAN_EDIT = true; $CAN_EDIT = $CAN_EDIT; $READONLY = $READONLY; $contact = $contact; $fieldsets = $fieldsets; //debug($fieldsets); $icon = $READONLY ? '' : ""; //$icon = $READONLY ? '' : ""; //$end = $READONLY ? "(Visualisation)" : "(Modification)"; //$title = "Configuration des champs obligatoires ou non modifiables de la fiche Matériel $end"; $title = "Configuration des champs obligatoires ou non modifiables de la fiche Matériel"; echo "

$icon $title



"; /* Autres icones possibles : echo "

$title



"; echo "

$title



"; echo "

$title



"; echo "

$title



"; echo "

$title



"; */ if ($READONLY && $CAN_EDIT) $this->MyHelper->echoEditButton(); if ($READONLY && $CAN_EDIT) $this->MyHelper->echoButtonForAction('icon-trash', 'reset-to-default', 'Remettre les valeurs par défaut', 'Remettre les valeurs par défaut', true); //echo $this->Html->icon('pencil'); echo $this->Form->create($contact); if (!$READONLY) { echo $this->Form->button('Enregistrer', ['class'=>'btn btn-outline-success', 'type'=>'submit']); //echo $this->Form->button('Submit'); echo '

'; } //echo $this->Form->button($this->Html->icon('pencil'), ['escape' => false]); // ...can be easily rewritten as: //echo $this->Form->button('i:pencil'); foreach ($fieldsets as $fieldset_name => $fields) { $controls = []; //foreach ($fields as $field) { foreach ($fields as $field_name => $attributes) { if ($field_name=='fieldset_comment') continue; // champ activé ou désactivé $checked = $attributes['selected']; $comment = $attributes['comment']; $except_roles = isset($attributes['except_roles']) ? $attributes['except_roles'] : []; $name = "$fieldset_name.$field_name"; // - CHAMP de la table materiel : Checkbox pour le dé/sélectionner $label = $field_name; if ($READONLY) { if ($comment) $label .= ' ('.$comment.')'; if ($except_roles) $label .= ' (sauf '.implode(', ',$except_roles).')'; } $controls["$name.selected"] = [ 'type' => 'checkbox', //'hiddenField' => true, 'label' => $label, 'checked' => $checked, 'disabled' => $READONLY, //'readonly' =>$READONLY, //'readonly' => 'readonly', ]; // (EDIT ONLY) // - Label associé au champ (entre parenthèses) doit pouvoir être modifié if (!$READONLY) $controls["$name.comment"] = [ //'type' => 'input', 'label' => false, 'val' => $comment, //'size' => 20, //'disabled' => $READONLY, //'readonly' => $READONLY, ]; // (EDIT ONLY) $fieldsets_with_roles = ['UNEDITABLE_FIELDS','UNEDITABLE_FIELDS_AFTER_LOT0', 'UNEDITABLE_FIELDS_AFTER_LOT1', 'UNEDITABLE_FIELDS_AFTER_LOT2']; // - ROLES exceptés (select multiple list) //if (!$READONLY && $field_name!='HAS_ORDER_BUTTON') if ( !$READONLY && in_array($fieldset_name, $fieldsets_with_roles) ) $controls["$name.except_roles"] = [ 'type' => 'select', 'label' => '(excepté pour les rôles)', //'options' => ['', 'user', 'admin', 'resp'], //'options' => ['Utilisateur', 'Responsable', 'Administration'], 'options' => [ ['text' => 'Utilisateur', 'value' => 'Utilisateur'], ['text' => 'Responsable', 'value' => 'Responsable'], ['text' => 'Administration', 'value' => 'Administration'], ], //'val' => ['Responsable', 'Utilisateur'], 'val' => $except_roles, 'multiple' => 'checkbox', //'size' => 20, 'disabled' => $READONLY, ]; } // foreach $fields // https://api.cakephp.org/3.5/class-Cake.View.Helper.FormHelper.html#_controls $DEBUG && debug($controls); $fieldset_name_with_comment = $fieldset_name; if ( isset($fields['fieldset_comment']) ) $fieldset_name_with_comment .= ' ('. $fields['fieldset_comment'] .')'; echo $this->Form->controls($controls, ['legend' => $fieldset_name_with_comment.' :']); } // foreach $fieldsets /* echo $this->Form->control('name'); echo $this->Form->control('email'); echo $this->Form->control('body'); */ if (!$READONLY) echo $this->Form->button('Enregistrer', ['class'=>'btn btn-outline-success', 'type'=>'submit']); //echo $this->Form->button('Submit'); echo $this->Form->end(); if ($READONLY && $CAN_EDIT) $this->MyHelper->echoEditButton();