class PanelizerEditWizard in Panelizer 8.4
Same name and namespace in other branches
- 8.5 src/Wizard/PanelizerEditWizard.php \Drupal\panelizer\Wizard\PanelizerEditWizard
- 8.3 src/Wizard/PanelizerEditWizard.php \Drupal\panelizer\Wizard\PanelizerEditWizard
Hierarchy
- class \Drupal\Core\Form\FormBase implements ContainerInjectionInterface, FormInterface uses DependencySerializationTrait, LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\ctools\Wizard\FormWizardBase implements FormWizardInterface
- class \Drupal\panelizer\Wizard\PanelizerWizardBase
- class \Drupal\panelizer\Wizard\PanelizerEditWizard
- class \Drupal\panelizer\Wizard\PanelizerWizardBase
- class \Drupal\ctools\Wizard\FormWizardBase implements FormWizardInterface
Expanded class hierarchy of PanelizerEditWizard
1 string reference to 'PanelizerEditWizard'
File
- src/
Wizard/ PanelizerEditWizard.php, line 10
Namespace
Drupal\panelizer\WizardView source
class PanelizerEditWizard extends PanelizerWizardBase {
/**
* {@inheritdoc}
*/
public function getRouteName() {
return 'panelizer.wizard.edit';
}
/**
* {@inheritdoc}
*/
public function initValues() {
$cached_values = parent::initValues();
// Load data in to values to be cached and managed by the
// wizard until the user clicks on Save or Cancel.
$cached_values['id'] = $this
->getMachineName();
list($entity_type, $bundle, $view_mode, $display_id) = explode('__', $this
->getMachineName());
$panelizer = \Drupal::service('panelizer');
// Load the panels display variant.
/** @var \Drupal\panelizer\Panelizer $panelizer */
// @todo this $display_id looks all wrong to me since it's the name and view_mode.
$variant_plugin = $panelizer
->getDefaultPanelsDisplay($display_id, $entity_type, $bundle, $view_mode);
$cached_values['plugin'] = $variant_plugin;
$cached_values['label'] = $cached_values['plugin']
->getConfiguration()['label'];
$display = $panelizer
->getEntityViewDisplay($entity_type, $bundle, $view_mode);
$config = $display
->getThirdPartySetting('panelizer', 'displays', []);
if (!empty($config[$display_id]['static_context'])) {
$cached_values['contexts'] = $config[$display_id]['static_context'];
}
return $cached_values;
}
/**
* {@inheritdoc}
*/
protected function customizeForm(array $form, FormStateInterface $form_state) {
// The page actions.
$form['wizard_actions'] = [
'#theme' => 'links',
'#links' => [],
'#attributes' => [
'class' => [
'inline',
],
],
];
// The tree of wizard steps.
$form['wizard_tree'] = [
'#theme' => [
'panelizer_wizard_tree',
],
'#wizard' => $this,
'#cached_values' => $form_state
->getTemporaryValue('wizard'),
];
$form['#theme'] = 'panelizer_wizard_form';
$form['#attached']['library'][] = 'panelizer/wizard_admin';
$form = parent::customizeForm($form, $form_state);
return $form;
}
/**
* {@inheritdoc}
*/
protected function actions(FormInterface $form_object, FormStateInterface $form_state) {
$cached_values = $form_state
->getTemporaryValue('wizard');
$operation = $this
->getOperation($cached_values);
$actions = [];
$actions['submit'] = [
'#type' => 'submit',
'#value' => $this
->t('Update'),
'#validate' => [
'::populateCachedValues',
[
$form_object,
'validateForm',
],
],
'#submit' => [
[
$form_object,
'submitForm',
],
],
];
$actions['update_and_save'] = [
'#type' => 'submit',
'#value' => $this
->t('Update and save'),
'#button_type' => 'primary',
'#validate' => [
'::populateCachedValues',
[
$form_object,
'validateForm',
],
],
'#submit' => [
[
$form_object,
'submitForm',
],
],
];
$actions['finish'] = [
'#type' => 'submit',
'#value' => $this
->t('Save'),
'#validate' => [
'::populateCachedValues',
[
$form_object,
'validateForm',
],
],
'#submit' => [
[
$form_object,
'submitForm',
],
],
];
$actions['cancel'] = [
'#type' => 'submit',
'#value' => $this
->t('Cancel'),
'#submit' => [
'::clearTempstore',
],
];
// Add any submit or validate functions for the step and the global ones.
foreach ([
'submit',
'update_and_save',
'finish',
] as $button) {
if (isset($operation['validate'])) {
$actions[$button]['#validate'] = array_merge($actions[$button]['#validate'], $operation['validate']);
}
$actions[$button]['#validate'][] = '::validateForm';
if (isset($operation['submit'])) {
$actions[$button]['#submit'] = array_merge($actions[$button]['#submit'], $operation['submit']);
}
$actions[$button]['#submit'][] = '::submitForm';
}
$actions['update_and_save']['#submit'][] = '::finish';
$actions['finish']['#submit'][] = '::finish';
if ($form_state
->get('ajax')) {
$cached_values = $form_state
->getTemporaryValue('wizard');
$ajax_parameters = $this
->getNextParameters($cached_values);
$ajax_parameters['step'] = $this
->getStep($cached_values);
$ajax_url = Url::fromRoute($this
->getRouteName(), $ajax_parameters);
$ajax_options = [
'query' => $this
->getRequest()->query
->all() + [
FormBuilderInterface::AJAX_FORM_REQUEST => TRUE,
],
];
$actions['submit']['#ajax'] = [
'callback' => '::ajaxSubmit',
'url' => $ajax_url,
'options' => $ajax_options,
];
$actions['update_and_save']['#ajax'] = [
'callback' => '::ajaxFinish',
'url' => $ajax_url,
'options' => $ajax_options,
];
$actions['finish']['#ajax'] = [
'callback' => '::ajaxFinish',
'url' => $ajax_url,
'options' => $ajax_options,
];
}
return $actions;
}
/**
* {@inheritdoc}
*/
public function submitForm(array &$form, FormStateInterface $form_state) {
$operations = array_map('strval', [
$this
->getNextOp(),
$this
->t('Update'),
$this
->t('Update and save'),
$this
->t('Save'),
]);
if (in_array($form_state
->getValue('op'), $operations)) {
$cached_values = $form_state
->getTemporaryValue('wizard');
if ($form_state
->hasValue('label')) {
$config = $cached_values['plugin']
->getConfiguration();
$config['label'] = $form_state
->getValue('label');
$cached_values['plugin']
->setConfiguration($config);
}
if ($form_state
->hasValue('id')) {
$cached_values['id'] = $form_state
->getValue('id');
}
if (is_null($this->machine_name) && !empty($cached_values['id'])) {
$this->machine_name = $cached_values['id'];
}
$this
->getTempstore()
->set($this
->getMachineName(), $cached_values);
if (!$form_state
->get('ajax')) {
$form_state
->setRedirect($this
->getRouteName(), $this
->getNextParameters($cached_values));
}
}
}
/**
* Clears the temporary store.
*
* @param array $form
* @param \Drupal\Core\Form\FormStateInterface $form_state
*/
public function clearTempstore(array &$form, FormStateInterface $form_state) {
$this
->getTempstore()
->delete($this
->getMachineName());
list($entity_type_id, $bundle, $view_mode) = explode('__', $this
->getMachineName());
$bundle_entity_type = \Drupal::entityTypeManager()
->getDefinition($entity_type_id)
->getBundleEntityType();
if ($view_mode == 'default') {
$route = "entity.entity_view_display.{$entity_type_id}.default";
$arguments = [
$bundle_entity_type => $bundle,
];
}
else {
$route = "entity.entity_view_display.{$entity_type_id}.view_mode";
$arguments = [
$bundle_entity_type => $bundle,
'view_mode_name' => $view_mode,
];
}
$form_state
->setRedirect($route, $arguments);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
FormBase:: |
protected | property | The config factory. | 1 |
FormBase:: |
protected | property | The request stack. | 1 |
FormBase:: |
protected | property | The route match. | |
FormBase:: |
protected | function | Retrieves a configuration object. | |
FormBase:: |
protected | function | Gets the config factory for this form. | 1 |
FormBase:: |
private | function | Returns the service container. | |
FormBase:: |
public static | function |
Instantiates a new instance of this class. Overrides ContainerInjectionInterface:: |
87 |
FormBase:: |
protected | function | Gets the current user. | |
FormBase:: |
protected | function | Gets the request object. | |
FormBase:: |
protected | function | Gets the route match. | |
FormBase:: |
protected | function | Gets the logger for a specific channel. | |
FormBase:: |
protected | function |
Returns a redirect response object for the specified route. Overrides UrlGeneratorTrait:: |
|
FormBase:: |
public | function | Resets the configuration factory. | |
FormBase:: |
public | function | Sets the config factory for this form. | |
FormBase:: |
public | function | Sets the request stack object to use. | |
FormWizardBase:: |
protected | property | The Form Builder. | |
FormWizardBase:: |
protected | property | The class resolver. | |
FormWizardBase:: |
protected | property | The event dispatcher. | |
FormWizardBase:: |
protected | property | The SharedTempStore key for our current wizard values. | |
FormWizardBase:: |
protected | property | The current active step of the wizard. | |
FormWizardBase:: |
protected | property | Tempstore Factory for keeping track of values in each step of the wizard. | |
FormWizardBase:: |
protected | property | The shared temp store factory collection name. | |
FormWizardBase:: |
public | function |
Overrides FormWizardInterface:: |
|
FormWizardBase:: |
public | function |
Overrides FormWizardInterface:: |
|
FormWizardBase:: |
public | function |
Overrides FormWizardInterface:: |
|
FormWizardBase:: |
public | function |
Form constructor. Overrides FormInterface:: |
|
FormWizardBase:: |
public | function |
Returns a unique string identifying the form. Overrides FormInterface:: |
|
FormWizardBase:: |
public | function |
The SharedTempStore key for our current wizard values. Overrides FormWizardInterface:: |
|
FormWizardBase:: |
public | function | The translated text of the "Next" button's text. | |
FormWizardBase:: |
public | function |
The Route parameters for a 'next' step. Overrides FormWizardInterface:: |
|
FormWizardBase:: |
public | function |
Retrieve the current Operation. Overrides FormWizardInterface:: |
|
FormWizardBase:: |
public static | function |
Return an array of parameters required to construct this wizard. Overrides FormWizardInterface:: |
1 |
FormWizardBase:: |
public | function |
The Route parameters for a 'previous' step. Overrides FormWizardInterface:: |
|
FormWizardBase:: |
public | function |
Retrieve the current active step of the wizard. Overrides FormWizardInterface:: |
|
FormWizardBase:: |
public | function |
The active SharedTempStore for this wizard. Overrides FormWizardInterface:: |
|
FormWizardBase:: |
public | function |
The shared temp store factory collection name. Overrides FormWizardInterface:: |
|
FormWizardBase:: |
public | function |
Form validation handler that populates the cached values from tempstore. Overrides FormWizardInterface:: |
|
FormWizardBase:: |
public | function |
Form submit handler to step backwards in the wizard. Overrides FormWizardInterface:: |
|
FormWizardBase:: |
public | function |
Form validation handler. Overrides FormBase:: |
|
FormWizardBase:: |
public | function | 1 | |
FormWizardInterface:: |
constant | Constant value for wizard load event. | ||
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. | |
PanelizerEditWizard:: |
protected | function |
Generates action elements for navigating between the operation steps. Overrides FormWizardBase:: |
|
PanelizerEditWizard:: |
public | function | Clears the temporary store. | |
PanelizerEditWizard:: |
protected | function |
Helper function for generating default form elements. Overrides PanelizerWizardBase:: |
|
PanelizerEditWizard:: |
public | function |
The name of the route to which forward or backwards steps redirect. Overrides FormWizardBase:: |
|
PanelizerEditWizard:: |
public | function |
Initialize wizard values. Overrides PanelizerWizardBase:: |
|
PanelizerEditWizard:: |
public | function |
Form submission handler. Overrides FormWizardBase:: |
|
PanelizerWizardBase:: |
public | function | ||
PanelizerWizardBase:: |
public | function |
Form submit handler for finalizing the wizard values. Overrides FormWizardBase:: |
1 |
PanelizerWizardBase:: |
protected | function | Wraps the context mapper. | |
PanelizerWizardBase:: |
protected | function | ||
PanelizerWizardBase:: |
public | function | ||
PanelizerWizardBase:: |
public | function |
Retrieve a list of FormInterface classes by their step key in the wizard. Overrides FormWizardInterface:: |
|
PanelizerWizardBase:: |
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. |