queryFactory = $query_factory; $this->translation = $string_translation; } /** * {@inheritdoc} */ public static function create(ContainerInterface $container) { return new static( $container->get('entity.query'), $container->get('string_translation') ); } /** * {@inheritdoc} */ public function getQuestion() { return t('Are you sure you want to delete the crop type %type?', array('%type' => $this->entity->label())); } /** * {@inheritdoc} */ public function getCancelUrl() { return new Url('crop.overview_types'); } /** * {@inheritdoc} */ public function getConfirmText() { return t('Delete'); } /** * {@inheritdoc} */ public function buildForm(array $form, FormStateInterface $form_state) { $count = $this->queryFactory->get('crop') ->condition('type', $this->entity->id()) ->count() ->execute(); if ($count) { $form['#title'] = $this->getQuestion(); $form['description'] = [ '#prefix' => '

', '#markup' => $this->translation->formatPlural($count, '%type is used by 1 piece of content on your site. You can not remove this content type until you have removed all of the %type content.', '%type is used by @count pieces of content on your site. You may not remove %type until you have removed all of the %type content.', array('%type' => $this->entity->label())), '#suffix' => '

', ]; return $form; } return parent::buildForm($form, $form_state); } /** * {@inheritdoc} */ public function submitForm(array &$form, FormStateInterface $form_state) { $this->entity->delete(); $t_args = array('%name' => $this->entity->label()); drupal_set_message($this->t('The crop type %name has been deleted.', $t_args)); $this->logger('crop')->notice('Deleted crop type %name.', $t_args); $form_state->setRedirectUrl($this->getCancelUrl()); } }