protected function JsCallbackBase::convertParameters in JS Callback Handler 8.3
Convert callback parameters into fully loaded objects.
Return value
array An associative array of converted parameters.
1 call to JsCallbackBase::convertParameters()
- JsCallbackBase::__construct in src/
Plugin/ Js/ JsCallbackBase.php - Constructs a \Drupal\Component\Plugin\PluginBase object.
File
- src/
Plugin/ Js/ JsCallbackBase.php, line 111
Class
- JsCallbackBase
- Base JsCallback class.
Namespace
Drupal\js\Plugin\JsCode
protected function convertParameters() {
if (!$this->js
->isExecuting()) {
return [];
}
// Create a standalone "Request" object.
$request = $this->js
->getRequest();
$parameters = $request->query
->all() + $request->request
->all();
if ($this->pluginDefinition['parameters']) {
$options = [
'parameters' => $this->pluginDefinition['parameters'],
];
$route = new Route('/{' . implode('}/{', array_keys($parameters)) . '}', $parameters, [], $options);
$parameters = $this->paramConversion
->enhance([
'_route_object' => $route,
] + $parameters, Request::create(''));
unset($parameters['_route_object']);
unset($parameters['_raw_variables']);
// Handle JSON data.
$boolean_values = [
'true',
'false',
'1',
'0',
'yes',
'no',
];
foreach ($parameters as $key => $value) {
// Convert possible JSON strings into arrays.
if (is_string($value) && $value !== '' && ($value[0] === '[' || $value[0] === '{') && ($json = Json::decode($value))) {
$parameters[$key] = $json;
}
elseif (is_string($value) && in_array($value, $boolean_values)) {
$parameters[$key] = (bool) $value;
}
}
}
return $parameters;
}