RoleLoginPageSettingsDelete.php in Multiple role login pages 8
File
src/Form/RoleLoginPageSettingsDelete.php
View source
<?php
namespace Drupal\role_login_page\Form;
use Drupal\Core\Form\FormStateInterface;
use Drupal\Core\Render\Element;
use Drupal\Core\Form\ConfirmFormBase;
use Drupal\Core\Url;
use Drupal\Core\Database\Database;
class RoleLoginPageSettingsDelete extends ConfirmFormBase {
protected $id;
protected $connection;
public function __construct() {
$this->connection = Database::getConnection();
}
public function getFormId() {
return '_role_login_page_settings_delete';
}
public function getQuestion() {
return $this
->t('Are you sure you want to delete the login page?');
}
public function getCancelUrl() {
return Url::fromUri('internal:/admin/config/login/role_login_settings/list');
}
public function getDescription() {
return $this
->t('This action cannot be undone. Only do this if you are sure!');
}
public function getConfirmText() {
return $this
->t('Delete');
}
public function getCancelText() {
return $this
->t('Cancel');
}
public function buildForm(array $form, FormStateInterface $form_state, $rlid = NULL) {
$this->id = $rlid;
return parent::buildForm($form, $form_state);
}
public function submitForm(array &$form, FormStateInterface $form_state) {
$url_query = $this->connection
->select('role_login_page_settings', 'rlps');
$url_query
->fields('rlps', [
'url',
]);
$url_query
->condition('rl_id', $this->id);
$url = $url_query
->execute()
->fetchObject();
$deleted = $this->connection
->delete('role_login_page_settings')
->condition('rl_id', $this->id)
->execute();
if ($deleted) {
_role_login_page_settings_cache_clear($url->url, 'delete');
}
}
}