NodeTypeDeleteConfirm.php in Zircon Profile 8.0
Same filename and directory in other branches
Contains \Drupal\node\Form\NodeTypeDeleteConfirm.
Namespace
Drupal\node\FormFile
core/modules/node/src/Form/NodeTypeDeleteConfirm.phpView source
<?php
/**
* @file
* Contains \Drupal\node\Form\NodeTypeDeleteConfirm.
*/
namespace Drupal\node\Form;
use Drupal\Core\Entity\Query\QueryFactory;
use Drupal\Core\Entity\EntityDeleteForm;
use Drupal\Core\Form\FormStateInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Provides a form for content type deletion.
*/
class NodeTypeDeleteConfirm extends EntityDeleteForm {
/**
* The query factory to create entity queries.
*
* @var \Drupal\Core\Entity\Query\QueryFactory
*/
protected $queryFactory;
/**
* Constructs a new NodeTypeDeleteConfirm object.
*
* @param \Drupal\Core\Entity\Query\QueryFactory $query_factory
* The entity query object.
*/
public function __construct(QueryFactory $query_factory) {
$this->queryFactory = $query_factory;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) {
return new static($container
->get('entity.query'));
}
/**
* {@inheritdoc}
*/
public function buildForm(array $form, FormStateInterface $form_state) {
$num_nodes = $this->queryFactory
->get('node')
->condition('type', $this->entity
->id())
->count()
->execute();
if ($num_nodes) {
$caption = '<p>' . $this
->formatPlural($num_nodes, '%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(),
)) . '</p>';
$form['#title'] = $this
->getQuestion();
$form['description'] = array(
'#markup' => $caption,
);
return $form;
}
return parent::buildForm($form, $form_state);
}
}
Classes
Name | Description |
---|---|
NodeTypeDeleteConfirm | Provides a form for content type deletion. |