function jammer_form_alter in Jammer 1.0.x
Same name and namespace in other branches
- 5 jammer.module \jammer_form_alter()
- 6 jammer.module \jammer_form_alter()
- 7 jammer.module \jammer_form_alter()
File
- ./
jammer.module, line 69 - General functions and hook implementations.
Code
function jammer_form_alter(&$form, FormStateInterface $form_state, $form_id) {
$messenger = \Drupal::messenger();
// get our data
$config = \Drupal::config('jammer.settings');
$data = $config
->get('stored_values');
$data = unserialize($data);
// sort entries by priority
usort($data, 'jammer_sortPriority');
// get current user roles
$user = \Drupal::currentUser();
$roles = $user
->getRoles();
// loop on entries to treat the ones that match $form_id
foreach ($data as $entry) {
// matching $form_id
if ('node_' . $entry['form'] . '_form' == $form_id) {
// check for roles matching
if (jammer_matchRoles($roles, $entry)) {
// ok. check for always/creation/exclude creation criteria
if (jammer_matchCreation($form, $form_state, $entry)) {
// ok. apply field(s) alteration
foreach ($entry['elements'] as $field) {
if (isset($form[$field])) {
if ($entry['remove']) {
// disable
$form[$field]['#disabled'] = 'disabled';
}
else {
// hide
$form[$field]['#access'] = FALSE;
}
}
}
}
}
}
}
}