class OverrideController in Commerce Smart Importer 8
Controller used to override values in import.
Hierarchy
- class \Drupal\Core\Controller\ControllerBase implements ContainerInjectionInterface uses LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\commerce_smart_importer\Controller\OverrideController
Expanded class hierarchy of OverrideController
File
- src/
Controller/ OverrideController.php, line 17
Namespace
Drupal\commerce_smart_importer\ControllerView source
class OverrideController extends ControllerBase {
/**
* Current user.
*
* @var \Drupal\Core\Session\AccountProxy
*/
protected $currentUser;
/**
* Smart importer general service.
*
* @var \Drupal\commerce_smart_importer\Plugin\CommerceSmartImporerService
*/
protected $importerService;
/**
* OverrideController constructor.
*/
public function __construct(AccountProxy $user, CommerceSmartImporerService $service) {
$this->currentUser = $user;
$this->importerService = $service;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) {
return new static($container
->get('current_user'), $container
->get('commerce_smart_importer.service'));
}
/**
* Main function for overriding.
*/
public function overrideValue(Request $request) {
$import = $request->request
->get('import_name');
$row = $request->request
->get('row');
$index = $request->request
->get('index');
$value = $request->request
->get('value');
$entity_type = $request->request
->get('field_type');
$dir = $this
->importFolder($import);
if ($dir === FALSE) {
return new Response('No import under this name');
}
$field_definitions = $this->importerService
->getFieldDefinition();
$field_definition = $field_definitions[$entity_type][$index];
$values = explode('|', $value);
$parameters = new ImportingParameters();
$parameters->incorrectValues = FALSE;
$parameters->defaultValues = FALSE;
$parameters->exceedsCardinality = FALSE;
$parameters->duplicateValues = FALSE;
$field_log = $this->importerService
->formatMultipleFieldValues($values, $field_definition, $parameters, []);
$this->importerService
->duplicateValuesPass($field_log);
$this->importerService
->cardinalityPass($field_log, $field_definition);
$this->importerService
->useDefaultValuePass($field_log, $field_definition);
$this->importerService
->requiredPass($field_log, $field_definition);
$accepted = $parameters
->matchOneFieldLog($field_log);
if ($accepted) {
$this
->putOverrideValue($row, $value, $field_definition, $entity_type, $dir);
return new Response('Successfully overridden value');
}
else {
return new Response('Override was unsuccessful');
}
}
/**
* Finds import folder.
*/
private function importFolder($import_name) {
$dir = scandir(CommerceSmartImporterConstants::TEMP_DIR);
foreach ($dir as $imports) {
if (is_dir(CommerceSmartImporterConstants::TEMP_DIR . '/' . $imports)) {
if ($imports == $import_name) {
return CommerceSmartImporterConstants::TEMP_DIR . '/' . $imports;
}
}
}
return FALSE;
}
/**
* Puts override value in save folder.
*/
private function putOverrideValue($row, $value, $field_definition, $type, $save_folder) {
if (!is_file($save_folder . '/override_values.json')) {
touch($save_folder . '/override_values.json');
$json = [];
}
else {
$json = json_decode(file_get_contents($save_folder . '/override_values.json'), TRUE);
}
$json[$row][$type][$field_definition['machine_names']] = $value;
file_put_contents($save_folder . '/override_values.json', json_encode($json, JSON_UNESCAPED_UNICODE));
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ControllerBase:: |
protected | property | The configuration factory. | |
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. | |
OverrideController:: |
protected | property |
Current user. Overrides ControllerBase:: |
|
OverrideController:: |
protected | property | Smart importer general service. | |
OverrideController:: |
public static | function |
Instantiates a new instance of this class. Overrides ControllerBase:: |
|
OverrideController:: |
private | function | Finds import folder. | |
OverrideController:: |
public | function | Main function for overriding. | |
OverrideController:: |
private | function | Puts override value in save folder. | |
OverrideController:: |
public | function | OverrideController constructor. | |
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. |