Chris@0: getTargetType(); Chris@0: $b_type = $b->getTargetType(); Chris@0: $type_order = strnatcasecmp($a_type, $b_type); Chris@0: return $type_order != 0 ? $type_order : parent::sort($a, $b); Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function getTargetType() { Chris@0: return $this->targetEntityType; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function setTargetType($target_entity_type) { Chris@0: $this->targetEntityType = $target_entity_type; Chris@0: return $this; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function calculateDependencies() { Chris@0: parent::calculateDependencies(); Chris@0: $target_entity_type = \Drupal::entityManager()->getDefinition($this->targetEntityType); Chris@0: $this->addDependency('module', $target_entity_type->getProvider()); Chris@0: return $this; Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public function preSave(EntityStorageInterface $storage) { Chris@0: parent::preSave($storage); Chris@0: \Drupal::entityManager()->clearCachedFieldDefinitions(); Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: public static function preDelete(EntityStorageInterface $storage, array $entities) { Chris@0: parent::preDelete($storage, $entities); Chris@0: \Drupal::entityManager()->clearCachedFieldDefinitions(); Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: protected function urlRouteParameters($rel) { Chris@0: $uri_route_parameters = parent::urlRouteParameters($rel); Chris@0: if ($rel === 'add-form') { Chris@0: $uri_route_parameters['entity_type_id'] = $this->getTargetType(); Chris@0: } Chris@0: Chris@0: return $uri_route_parameters; Chris@0: } Chris@0: Chris@0: }