/** * {@inheritdoc} */ public function buildEntity(array $form, FormStateInterface $form_state) { $entity = parent::buildEntity($form, $form_state); if ($entity->isNew()) { $entity->setCreatedTime(REQUEST_TIME); } return $entity; }
/** * {@inheritdoc} */ public function buildEntity(array $form, FormStateInterface $form_state) { $entity = parent::buildEntity($form, $form_state); // Set the computed 'path' value so it can used in the preSave() method to // derive the route name and parameters. $entity->path->value = $form_state['values']['path']; return $entity; }
/** * {@inheritdoc} */ public function buildEntity(array $form, FormStateInterface $form_state) { $term = parent::buildEntity($form, $form_state); // Prevent leading and trailing spaces in term names. $term->setName(trim($term->getName())); // Assign parents with proper delta values starting from 0. $term->parent = array_keys($form_state->getValue('parent')); return $term; }
/** * {@inheritdoc} */ public function buildEntity(array $form, FormStateInterface $form_state) { /** @var \Drupal\comment\CommentInterface $comment */ $comment = parent::buildEntity($form, $form_state); if (!$form_state->isValueEmpty('date') && $form_state->getValue('date') instanceof DrupalDateTime) { $comment->setCreatedTime($form_state->getValue('date')->getTimestamp()); } else { $comment->setCreatedTime(REQUEST_TIME); } // Empty author ID should revert to anonymous. $author_id = $form_state->getValue('uid'); if ($comment->id() && $this->currentUser->hasPermission('administer comments')) { // Admin can leave the author ID blank to revert to anonymous. $author_id = $author_id ?: 0; } if (!is_null($author_id)) { if ($author_id === 0 && $form['author']['name']['#access']) { // Use the author name value when the form has access to the element and // the author ID is anonymous. $comment->setAuthorName($form_state->getValue('name')); } else { // Ensure the author name is not set. $comment->setAuthorName(NULL); } } else { $author_id = $this->currentUser->id(); } $comment->setOwnerId($author_id); // Validate the comment's subject. If not specified, extract from comment // body. if (trim($comment->getSubject()) == '') { if ($comment->hasField('comment_body')) { // The body may be in any format, so: // 1) Filter it into HTML // 2) Strip out all HTML tags // 3) Convert entities back to plain-text. $comment_text = $comment->comment_body->processed; $comment->setSubject(Unicode::truncate(trim(Html::decodeEntities(strip_tags($comment_text))), 29, TRUE, TRUE)); } // Edge cases where the comment body is populated only by HTML tags will // require a default subject. if ($comment->getSubject() == '') { $comment->setSubject($this->t('(No subject)')); } } return $comment; }
/** * {@inheritdoc} */ public function buildEntity(array $form, FormStateInterface $form_state) { /** @var \Drupal\commerce_order\Entity\LineItemInterface $entity */ $entity = parent::buildEntity($form, $form_state); // Now that the purchased entity is set, populate the title and price. $entity->setTitle($entity->getPurchasedEntity()->getLineItemTitle()); // @todo Remove once the price calculation is in place. $entity->unit_price = $entity->getPurchasedEntity()->price; return $entity; }
/** * {@inheritdoc} */ public function buildEntity(array $form, FormStateInterface $form_state) { // Change the roles array to a list of enabled roles. // @todo: Alter the form state as the form values are directly extracted and // set on the field, which throws an exception as the list requires // numeric keys. Allow to override this per field. As this function is // called twice, we have to prevent it from getting the array keys twice. if (is_string(key($form_state->getValue('roles')))) { $form_state->setValue('roles', array_keys(array_filter($form_state->getValue('roles')))); } /** @var \Drupal\user\UserInterface $account */ $account = parent::buildEntity($form, $form_state); // Translate the empty value '' of language selects to an unset field. foreach (array('preferred_langcode', 'preferred_admin_langcode') as $field_name) { if ($form_state->getValue($field_name) === '') { $account->{$field_name} = NULL; } } // Set existing password if set in the form state. $current_pass = trim($form_state->getValue('current_pass')); if (strlen($current_pass) > 0) { $account->setExistingPassword($current_pass); } // Skip the protected user field constraint if the user came from the // password recovery page. $account->_skipProtectedUserFieldConstraint = $form_state->get('user_pass_reset'); return $account; }
/** * {@inheritdoc} */ public function buildEntity(array $form, FormStateInterface $form_state) { /** @var \Drupal\menu_link_content\MenuLinkContentInterface $entity */ $entity = parent::buildEntity($form, $form_state); $new_definition = $this->extractFormValues($form, $form_state); $entity->parent->value = $new_definition['parent']; $entity->menu_name->value = $new_definition['menu_name']; $entity->hidden->value = (bool) $new_definition['hidden']; $entity->expanded->value = $new_definition['expanded']; $entity->url->value = $new_definition['url']; $entity->route_name->value = $new_definition['route_name']; $entity->setRouteParameters($new_definition['route_parameters']); $entity->setOptions($new_definition['options']); return $entity; }
/** * {@inheritdoc} */ public function buildEntity(array $form, FormStateInterface $form_state) { // Change the roles array to a list of enabled roles. // @todo: Alter the form state as the form values are directly extracted and // set on the field, which throws an exception as the list requires // numeric keys. Allow to override this per field. As this function is // called twice, we have to prevent it from getting the array keys twice. if (is_string(key($form_state['values']['roles']))) { $form_state['values']['roles'] = array_keys(array_filter($form_state['values']['roles'])); } return parent::buildEntity($form, $form_state); }
/** * {@inheritdoc} */ public function buildEntity(array $form, FormStateInterface $form_state) { /** @var \Drupal\node\NodeInterface $entity */ $entity = parent::buildEntity($form, $form_state); // A user might assign the node author by entering a user name in the node // form, which we then need to translate to a user ID. // @todo: Remove it when https://www.drupal.org/node/2322525 is pushed. if (!empty($form_state->getValue('uid')[0]['target_id']) && ($account = User::load($form_state->getValue('uid')[0]['target_id']))) { $entity->setOwnerId($account->id()); } else { $entity->setOwnerId(0); } return $entity; }
/** * Overrides EntityForm::buildEntity(). */ public function buildEntity(array $form, FormStateInterface $form_state) { $comment = parent::buildEntity($form, $form_state); if (!$form_state->isValueEmpty('date') && $form_state->getValue('date') instanceof DrupalDateTime) { $comment->setCreatedTime($form_state->getValue('date')->getTimestamp()); } else { $comment->setCreatedTime(REQUEST_TIME); } $comment->changed->value = REQUEST_TIME; return $comment; }
/** * {@inheritdoc} */ public function buildEntity(array $form, FormStateInterface $form_state) { /** @var \Drupal\comment\CommentInterface $comment */ $comment = parent::buildEntity($form, $form_state); if (!$form_state->isValueEmpty('date') && $form_state->getValue('date') instanceof DrupalDateTime) { $comment->setCreatedTime($form_state->getValue('date')->getTimestamp()); } else { $comment->setCreatedTime(REQUEST_TIME); } $author_name = $form_state->getValue('name'); if (!$this->currentUser->isAnonymous()) { // Assign the owner based on the given user name - none means anonymous. $accounts = $this->entityManager->getStorage('user')->loadByProperties(array('name' => $author_name)); $account = reset($accounts); $uid = $account ? $account->id() : 0; $comment->setOwnerId($uid); } // If the comment was posted by an anonymous user and no author name was // required, use "Anonymous" by default. if ($comment->getOwnerId() === 0 && (!isset($author_name) || $author_name === '')) { $comment->setAuthorName($this->config('user.settings')->get('anonymous')); } // Validate the comment's subject. If not specified, extract from comment // body. if (trim($comment->getSubject()) == '') { if ($comment->hasField('comment_body')) { // The body may be in any format, so: // 1) Filter it into HTML // 2) Strip out all HTML tags // 3) Convert entities back to plain-text. $comment_text = $comment->comment_body->processed; $comment->setSubject(Unicode::truncate(trim(Html::decodeEntities(strip_tags($comment_text))), 29, TRUE, TRUE)); } // Edge cases where the comment body is populated only by HTML tags will // require a default subject. if ($comment->getSubject() == '') { $comment->setSubject($this->t('(No subject)')); } } return $comment; }
/** * {@inheritdoc} */ public function buildEntity(array $form, FormStateInterface $form_state) { /** @var \Drupal\support_ticket\SupportTicketInterface $entity */ $entity = parent::buildEntity($form, $form_state); if (!empty($form_state->getValue('uid')[0]['target_id']) && ($account = User::load($form_state->getValue('uid')[0]['target_id']))) { $entity->setOwnerId($account->id()); } else { $entity->setOwnerId(0); } return $entity; }
/** * Overrides EntityForm::buildEntity(). */ public function buildEntity(array $form, array &$form_state) { $comment = parent::buildEntity($form, $form_state); if (!empty($form_state['values']['date']) && $form_state['values']['date'] instanceof DrupalDateTime) { $comment->setCreatedTime($form_state['values']['date']->getTimestamp()); } else { $comment->setCreatedTime(REQUEST_TIME); } $comment->changed->value = REQUEST_TIME; return $comment; }
/** * {@inheritdoc} */ public function buildEntity(array $form, FormStateInterface $form_state) { /** @var \Drupal\menu_link_content\MenuLinkContentInterface $entity */ $entity = parent::buildEntity($form, $form_state); list($menu_name, $parent) = explode(':', $form_state->getValue('menu_parent'), 2); $entity->parent->value = $parent; $entity->menu_name->value = $menu_name; $entity->enabled->value = !$form_state->isValueEmpty(array('enabled', 'value')); $entity->expanded->value = !$form_state->isValueEmpty(array('expanded', 'value')); return $entity; }
/** * {@inheritdoc} */ public function buildEntity(array $form, array &$form_state) { /** @var \Drupal\node\NodeInterface $entity */ $entity = parent::buildEntity($form, $form_state); // A user might assign the node author by entering a user name in the node // form, which we then need to translate to a user ID. if (!empty($form_state['values']['uid']) && ($account = user_load_by_name($form_state['values']['uid']))) { $entity->setOwnerId($account->id()); } else { $entity->setOwnerId(0); } if (!empty($form_state['values']['created']) && $form_state['values']['created'] instanceof DrupalDateTime) { $entity->setCreatedTime($form_state['values']['created']->getTimestamp()); } else { $entity->setCreatedTime(REQUEST_TIME); } return $entity; }
/** * {@inheritdoc} */ public function buildEntity(array $form, FormStateInterface $form_state) { // Change the roles array to a list of enabled roles. // @todo: Alter the form state as the form values are directly extracted and // set on the field, which throws an exception as the list requires // numeric keys. Allow to override this per field. As this function is // called twice, we have to prevent it from getting the array keys twice. if (is_string(key($form_state->getValue('roles')))) { $form_state->setValue('roles', array_keys(array_filter($form_state->getValue('roles')))); } /** @var \Drupal\user\UserInterface $account */ $account = parent::buildEntity($form, $form_state); // Translate the empty value '' of language selects to an unset field. foreach (array('preferred_langcode', 'preferred_admin_langcode') as $field_name) { if ($form_state->getValue($field_name) === '') { $account->{$field_name} = NULL; } } return $account; }