Skip to content
Snippets Groups Projects
Commit 2064289b authored by M Parker's avatar M Parker
Browse files

Revert "Issue #3076862 by simeonkesmev: Avoid depending on 'field_' field name...

Revert "Issue #3076862 by simeonkesmev: Avoid depending on 'field_' field name prefix for determining bundle fields"

This reverts commit bad9be3d.
parent bad9be3d
No related branches found
No related tags found
No related merge requests found
......@@ -6,37 +6,20 @@
use Drupal\structure_sync\StructureSyncHelper;
use Drupal\Core\Form\FormStateInterface;
use Drupal\taxonomy\Entity\Term;
use Drupal\Core\Entity\EntityFieldManagerInterface;
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Controller for syncing taxonomy terms.
*/
class TaxonomiesController extends ControllerBase {
/**
* The entity field manager.
*
* @var \Drupal\Core\Entity\EntityFieldManagerInterface
*/
protected $entityFieldManager;
private $config;
/**
* Constructor for taxonomies controller.
*/
public function __construct(EntityFieldManagerInterface $entity_field_manager) {
public function __construct() {
$this->config = $this->getEditableConfig();
$this->entityTypeManager();
$this->entityFieldManager = $entity_field_manager;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) {
return new static($container->get('entity_field.manager'));
}
/**
......@@ -118,7 +101,8 @@ public function exportTaxonomies(array $form = NULL, FormStateInterface $form_st
$entity_field_names = [];
$all_term_fields = $entity->getFields();
foreach ($all_term_fields as $field_name => $field) {
if ($this->isCustomField($vocabulary, $field_name)) {
$is_custom_field = 'field_' === substr($field_name, 0, 6);
if ($is_custom_field) {
$entity_field_names[] = $field_name;
}
}
......@@ -228,18 +212,18 @@ public function importTaxonomies(array $form, FormStateInterface $form_state = N
switch ($style) {
case 'full':
self::deleteDeletedTaxonomies($taxonomies, $context);
$this->importTaxonomiesFull($taxonomies, $context);
self::importTaxonomiesFull($taxonomies, $context);
self::taxonomiesImportFinishedCallback(NULL, NULL, NULL);
break;
case 'safe':
$this->importTaxonomiesSafe($taxonomies, $context);
self::importTaxonomiesSafe($taxonomies, $context);
self::taxonomiesImportFinishedCallback(NULL, NULL, NULL);
break;
case 'force':
self::deleteTaxonomies($context);
$this->importTaxonomiesForce($taxonomies, $context);
self::importTaxonomiesForce($taxonomies, $context);
self::taxonomiesImportFinishedCallback(NULL, NULL, NULL);
break;
}
......@@ -338,7 +322,7 @@ public static function deleteDeletedTaxonomies($taxonomies, &$context) {
* Basically a safe import with update actions for already existing taxonomy
* terms.
*/
public function importTaxonomiesFull($taxonomies, &$context) {
public static function importTaxonomiesFull($taxonomies, &$context) {
$uuidsInConfig = [];
foreach ($taxonomies as $voc) {
foreach ($voc as $taxonomy) {
......@@ -379,7 +363,8 @@ public function importTaxonomiesFull($taxonomies, &$context) {
// terms.
$entity_fields = [];
foreach ($taxonomy as $field_name => $field_value) {
if ($this->isCustomField($vid, $field_name)) {
$is_custom_field = 'field_' === substr($field_name, 0, 6);
if ($is_custom_field) {
$not_term_reference = empty($field_value[0]['vid']);
if ($not_term_reference) {
......@@ -501,7 +486,7 @@ public function importTaxonomiesFull($taxonomies, &$context) {
StructureSyncHelper::logMessage('Running additional full import'
. ' after all terms have been created in order to identify missing '
. ' TIDs for term reference fields.');
$this->importTaxonomiesFull($taxonomies, $context);
Self::importTaxonomiesFull($taxonomies, $context);
}
$firstRun = FALSE;
......@@ -525,7 +510,7 @@ public function importTaxonomiesFull($taxonomies, &$context) {
* Safely meaning that it should only add what isn't already there and not
* delete and/or update any terms.
*/
public function importTaxonomiesSafe($taxonomies, &$context) {
public static function importTaxonomiesSafe($taxonomies, &$context) {
$tidsDone = [];
$tidsLeft = [];
$newTids = [];
......@@ -568,7 +553,8 @@ public function importTaxonomiesSafe($taxonomies, &$context) {
// terms.
$entity_fields = [];
foreach ($taxonomy as $field_name => $field_value) {
if ($this->isCustomField($vid, $field_name)) {
$is_custom_field = 'field_' === substr($field_name, 0, 6);
if ($is_custom_field) {
$not_term_reference = empty($field_value[0]['vid']);
if ($not_term_reference) {
......@@ -668,7 +654,7 @@ public function importTaxonomiesSafe($taxonomies, &$context) {
StructureSyncHelper::logMessage('Running additional full import'
. ' after all terms have been created in order to identify missing '
. ' TIDs for term reference fields.');
$this->importTaxonomiesFull($taxonomies, $context);
Self::importTaxonomiesFull($taxonomies, $context);
}
$firstRun = FALSE;
......@@ -697,7 +683,7 @@ public static function deleteTaxonomies(&$context) {
/**
* Function to import (create) all taxonomies that need to be imported.
*/
public function importTaxonomiesForce($taxonomies, &$context) {
public static function importTaxonomiesForce($taxonomies, &$context) {
$tidsDone = [];
$tidsLeft = [];
$newTids = [];
......@@ -734,7 +720,8 @@ public function importTaxonomiesForce($taxonomies, &$context) {
// terms.
$entity_fields = [];
foreach ($taxonomy as $field_name => $field_value) {
if ($this->isCustomField($vid, $field_name)) {
$is_custom_field = 'field_' === substr($field_name, 0, 6);
if ($is_custom_field) {
$not_term_reference = empty($field_value[0]['vid']);
if ($not_term_reference) {
......@@ -817,7 +804,7 @@ public function importTaxonomiesForce($taxonomies, &$context) {
StructureSyncHelper::logMessage('Running additional full import'
. ' after all terms have been created in order to identify missing '
. ' TIDs for term reference fields.');
$this->importTaxonomiesFull($taxonomies, $context);
Self::importTaxonomiesFull($taxonomies, $context);
}
$firstRun = FALSE;
......@@ -835,14 +822,4 @@ public static function taxonomiesImportFinishedCallback($success, $results, $ope
drupal_set_message(t('Successfully imported taxonomies'));
}
/**
* Determines if the field name is a custom field.
*/
private function isCustomField($entity_bundle_id, $field_name) {
$base_field_definitions = $this->entityFieldManager->getBaseFieldDefinitions('taxonomy_term');
$field_definitions = $this->entityFieldManager->getFieldDefinitions('taxonomy_term', $entity_bundle_id);
return isset($field_definitions[$field_name]) && !isset($base_field_definitions[$field_name]);
}
}
......@@ -16,7 +16,7 @@ class StructureSyncHelper {
* Function to export taxonomy terms.
*/
public static function exportTaxonomies(array $form = NULL, FormStateInterface $form_state = NULL) {
$taxonomiesController = TaxonomiesController::create(\Drupal::getContainer());
$taxonomiesController = new TaxonomiesController();
$taxonomiesController->exportTaxonomies($form, $form_state);
}
......@@ -44,7 +44,7 @@ public static function exportMenuLinks(array $form = NULL, FormStateInterface $f
* 'safe' or 'force' to apply that import style.
*/
public static function importTaxonomies(array $form, FormStateInterface $form_state = NULL) {
$taxonomiesController = TaxonomiesController::create(\Drupal::getContainer());
$taxonomiesController = new TaxonomiesController();
$taxonomiesController->importTaxonomies($form, $form_state);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment