class ProvidersController in Persistent URL 8
Hierarchy
- class \Drupal\Core\Controller\ControllerBase implements ContainerInjectionInterface uses LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\purl\Controller\BaseController
- class \Drupal\purl\Controller\ProvidersController
- class \Drupal\purl\Controller\BaseController
Expanded class hierarchy of ProvidersController
File
- src/
Controller/ ProvidersController.php, line 11
Namespace
Drupal\purl\ControllerView source
class ProvidersController extends BaseController {
protected $modifierIndex;
protected $providerManager;
protected $methodManager;
public static function create(ContainerInterface $container) {
return new self($container
->get('purl.plugin.provider_manager'), $container
->get('purl.plugin.method_manager'), $container
->get('purl.modifier_index'));
}
public function __construct(ProviderManager $providerManager, MethodPluginManager $methodManager, ModifierIndex $modifierIndex) {
$this->modifierIndex = $modifierIndex;
$this->providerManager = $providerManager;
$this->methodManager = $methodManager;
}
public function saveProviderSettings(Request $request) {
if ($request
->getMethod() === "POST") {
$providers = $request->request
->get('providers', array());
foreach ($providers as $providerId => $data) {
$provider = $this->providerManager
->getProvider($providerId);
if ($data['method']) {
$this->providerManager
->saveProviderConfiguration($providerId, $data['method'], isset($data['settings']) ? $data['settings'] : array());
$this->modifierIndex
->indexModifiers($provider, $data['method']);
}
else {
$this->providerManager
->deleteProviderConfiguration($providerId);
$this->modifierIndex
->deleteEntriesByProvider($providerId);
}
}
}
return $this
->redirect('purl.admin');
}
public function providers(Request $request) {
$methods = array(
'' => sprintf('-- %s --', t('Disabled')),
);
foreach ($this->methodManager
->getDefinitions() as $definition) {
$methods[$definition['id']] = $definition['name'];
}
$providers = array();
$defaultConfig = array(
'method' => null,
'settings' => array(),
);
$headers = array(
'providers',
'methods',
'settings',
);
$rows = array();
foreach ($this->providerManager
->getDefinitions() as $id => $definition) {
$row = array(
array(
'data' => $definition['name'],
),
array(
'data' => array(
'#theme' => 'select',
'#value' => $definition['method'],
'#options' => $methods,
'#name' => sprintf('providers[%s][method]', $id),
),
),
array(
'data' => '',
),
);
$rows[] = $row;
}
$tableData = array(
'#theme' => 'table',
'#header' => array_map(function ($header) {
return array(
'data' => t($header),
);
}, $headers),
'#rows' => $rows,
);
$build = array();
$build['providers_settings_form'] = array(
'#type' => 'html_tag',
'#tag' => 'form',
'#attributes' => array(
'method' => 'POST',
'action' => \Drupal::url('purl.admin.save_providers_config'),
),
);
$submitData = array(
'#type' => 'html_tag',
'#tag' => 'input',
'#attributes' => array(
'class' => array(
'button button--primary form-submit',
),
'type' => 'submit',
'value' => 'Save',
),
);
$formContents = array(
'table' => $tableData,
'submit' => $submitData,
);
$form = drupal_render($formContents);
$build['providers_settings_form']['#value'] = $form;
return $build;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ControllerBase:: |
protected | property | The configuration factory. | |
ControllerBase:: |
protected | property | The current user service. | 1 |
ControllerBase:: |
protected | property | The entity form builder. | |
ControllerBase:: |
protected | property | The entity manager. | |
ControllerBase:: |
protected | property | The entity type manager. | |
ControllerBase:: |
protected | property | The form builder. | 2 |
ControllerBase:: |
protected | property | The key-value storage. | 1 |
ControllerBase:: |
protected | property | The language manager. | 1 |
ControllerBase:: |
protected | property | The module handler. | 2 |
ControllerBase:: |
protected | property | The state service. | |
ControllerBase:: |
protected | function | Returns the requested cache bin. | |
ControllerBase:: |
protected | function | Retrieves a configuration object. | |
ControllerBase:: |
private | function | Returns the service container. | |
ControllerBase:: |
protected | function | Returns the current user. | 1 |
ControllerBase:: |
protected | function | Retrieves the entity form builder. | |
ControllerBase:: |
protected | function | Retrieves the entity manager service. | |
ControllerBase:: |
protected | function | Retrieves the entity type manager. | |
ControllerBase:: |
protected | function | Returns the form builder service. | 2 |
ControllerBase:: |
protected | function | Returns a key/value storage collection. | 1 |
ControllerBase:: |
protected | function | Returns the language manager service. | 1 |
ControllerBase:: |
protected | function | Returns the module handler. | 2 |
ControllerBase:: |
protected | function |
Returns a redirect response object for the specified route. Overrides UrlGeneratorTrait:: |
|
ControllerBase:: |
protected | function | Returns the state storage service. | |
LinkGeneratorTrait:: |
protected | property | The link generator. | 1 |
LinkGeneratorTrait:: |
protected | function | Returns the link generator. | |
LinkGeneratorTrait:: |
protected | function | Renders a link to a route given a route name and its parameters. | |
LinkGeneratorTrait:: |
public | function | Sets the link generator service. | |
LoggerChannelTrait:: |
protected | property | The logger channel factory service. | |
LoggerChannelTrait:: |
protected | function | Gets the logger for a specific channel. | |
LoggerChannelTrait:: |
public | function | Injects the logger channel factory. | |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
ProvidersController:: |
protected | property | ||
ProvidersController:: |
protected | property | ||
ProvidersController:: |
protected | property | ||
ProvidersController:: |
public static | function |
Instantiates a new instance of this class. Overrides ControllerBase:: |
|
ProvidersController:: |
public | function | ||
ProvidersController:: |
public | function | ||
ProvidersController:: |
public | function | ||
RedirectDestinationTrait:: |
protected | property | The redirect destination service. | 1 |
RedirectDestinationTrait:: |
protected | function | Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url. | |
RedirectDestinationTrait:: |
protected | function | Returns the redirect destination service. | |
RedirectDestinationTrait:: |
public | function | Sets the redirect destination service. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. | |
UrlGeneratorTrait:: |
protected | property | The url generator. | |
UrlGeneratorTrait:: |
protected | function | Returns the URL generator service. | |
UrlGeneratorTrait:: |
public | function | Sets the URL generator service. | |
UrlGeneratorTrait:: |
protected | function | Generates a URL or path for a specific route based on the given parameters. |