public function ReferenceFormBuilder::buildForm in Bibliography & Citation 8
Same name and namespace in other branches
- 2.0.x modules/bibcite_entity/src/ReferenceFormBuilder.php \Drupal\bibcite_entity\ReferenceFormBuilder::buildForm()
Builds and processes a form for a given form ID.
The form may also be retrieved from the cache if the form was built in a previous page load. The form is then passed on for processing, validation, and submission if there is proper input.
Parameters
\Drupal\Core\Form\FormInterface|string $form_arg: The value must be one of the following:
- The name of a class that implements \Drupal\Core\Form\FormInterface.
- An instance of a class that implements \Drupal\Core\Form\FormInterface.
\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.
Return value
array The rendered form. This function may also perform a redirect and hence may not return at all depending upon the $form_state flags that were set.
Throws
\Drupal\Core\Form\FormAjaxException Thrown when a form is triggered via an AJAX submission. It will be handled by \Drupal\Core\Form\EventSubscriber\FormAjaxSubscriber.
\Drupal\Core\Form\EnforcedResponseException Thrown when a form builder returns a response directly, usually a \Symfony\Component\HttpFoundation\RedirectResponse. It will be handled by \Drupal\Core\EventSubscriber\EnforcedFormResponseSubscriber.
Overrides FormBuilder::buildForm
See also
File
- modules/
bibcite_entity/ src/ ReferenceFormBuilder.php, line 51
Class
- ReferenceFormBuilder
- Provides reference form building and processing hotfix.
Namespace
Drupal\bibcite_entityCode
public function buildForm($form_id, FormStateInterface &$form_state) {
$form = parent::buildForm($form_id, $form_state);
$form_id = $this
->getFormId($form_id, $form_state);
$input = $form_state
->getUserInput();
$check_cache = isset($input['form_id']) && $input['form_id'] == $form_id && !empty($input['form_build_id']);
if (!$check_cache) {
// If it is first form build (form not cached),
// we need to save entity for second form build.
$info = $form_state
->getBuildInfo();
$callback_object = $info['callback_object'];
$entity = $callback_object
->getEntity();
$current_user_id = \Drupal::currentUser()
->id();
\Drupal::cache()
->set('bibcite_entity_populate:' . $current_user_id . ':' . $form['#build_id'], $entity, \Drupal::time()
->getRequestTime() + 3600);
}
return $form;
}