'
', ]; $form['actions'] = [ '#type' => 'actions', ]; $form['actions']['subscribe'] = [ '#type' => 'submit', '#value' => 'ja tak', '#validate' => ['mkbh_article_page_form_project_subscribe_subscribe_validate'], '#submit' => ['mkbh_article_page_form_project_subscribe_subscribe_submit'], '#name' => 'mkbh_article_page_form_project_subscribe_subscribe_button', '#asaf_target_area' => 'security', ]; $form['#attributes']['class'] = ['mkbh-project-subscriber-form']; $form['#attributes']['data-uid'] = $userAccount->uid; asaf_prepare_form($form, $form_state); return $form; } function mkbh_article_page_form_project_subscribe_subscribe_validate($form, &$form_state) { if ($form_state['storage']['user']->uid == 0) { form_set_error('', 'Du skal logge ind for at abonnere på et projekt.'); } if (empty($form_state['storage']['user']->uid) || empty($form_state['storage']['project']->nid)) { form_set_error('', 'Noget gik galt. Opdater side, og prøv igen. Hvis problemet fortsætter, skal du kontakte hjemmeside support.'); } else { $existingSubscriber = db_query("SELECT mps .* FROM mkbh_project_subscribers mps WHERE mps.user_id = :uid AND mps.project_id = :nid", [ ':uid' => $form_state['storage']['user']->uid, ':nid' => $form_state['storage']['project']->nid, ])->fetchAssoc(); if (!empty(($existingSubscriber))) { form_set_error('', 'Du er allerede tilmeldt til dette projekt.'); } } $form_state['asaf_ajax_commands'][] = ajax_command_html('#mkbh-project-subscribe-form-messages', theme('status_messages')); } function mkbh_article_page_form_project_subscribe_subscribe_submit($form, &$form_state) { try { $entity = entity_create('mkbh_project_subscriber', [ 'user_id' => $form_state['storage']['user']->uid, 'project_id' => $form_state['storage']['project']->nid, ]); $entity->save(); drupal_set_message(format_string('Du har abonneret på @title projektopdateringer.', [ '@title' => $form_state['storage']['project']->title, ]), 'status', FALSE); } catch (Exception $e) { drupal_set_message('Noget gik galt. Opdater side, og prøv igen. Hvis problemet fortsætter, skal du kontakte hjemmeside support.', 'error', FALSE); } $form_state['asaf_ajax_commands'][] = ajax_command_html('#mkbh-project-subscribe-form-messages', theme('status_messages')); }