diff --git a/lib/Drupal/profile2/ProfileTypeListController.php b/lib/Drupal/profile2/ProfileTypeListController.php index 982ee19..85a6dd9 100644 --- a/lib/Drupal/profile2/ProfileTypeListController.php +++ b/lib/Drupal/profile2/ProfileTypeListController.php @@ -21,17 +21,16 @@ class ProfileTypeListController extends EntityListController { public function getOperations(EntityInterface $entity) { $operations = parent::getOperations($entity); if (module_exists('field_ui')) { - $uri = $entity->uri(); + $admin_path = _field_ui_bundle_admin_path('profile2', $entity->id()); + $operations['manage-fields'] = array( 'title' => t('Manage fields'), - 'href' => $uri['path'] . '/fields', - 'options' => $uri['options'], + 'href' => $admin_path . '/fields', 'weight' => 11, ); $operations['manage-display'] = array( 'title' => t('Manage display'), - 'href' => $uri['path'] . '/display', - 'options' => $uri['options'], + 'href' => $admin_path . '/display', 'weight' => 12, ); } diff --git a/lib/Drupal/profile2/ProfileTypeStorageController.php b/lib/Drupal/profile2/ProfileTypeStorageController.php new file mode 100644 index 0000000..605f845 --- /dev/null +++ b/lib/Drupal/profile2/ProfileTypeStorageController.php @@ -0,0 +1,42 @@ +id()); + } + } + + /** + * Overrides \Drupal\Core\Config\Entity\ConfigStorageController::postSave(). + */ + protected function postSave(EntityInterface $entity, $update) { + parent::postSave($entity, $update); + + if (!$update) { + field_attach_create_bundle('profile2', $entity->id()); + } + elseif ($entity->original->id() != $entity->id()) { + field_attach_rename_bundle('profile2', $entity->original->id(), $entity->id()); + } + } +} diff --git a/profile2.module b/profile2.module index 24c93f8..7d60243 100644 --- a/profile2.module +++ b/profile2.module @@ -69,7 +69,7 @@ function profile2_entity_info() { 'label' => t('Profile type'), 'entity class' => 'Drupal\profile2\ProfileType', 'uri callback' => 'profile2_profile_type_uri', - 'controller class' => 'Drupal\Core\Config\Entity\ConfigStorageController', + 'controller class' => 'Drupal\profile2\ProfileTypeStorageController', 'list controller class' => 'Drupal\profile2\ProfileTypeListController', 'form controller class' => array( 'default' => 'Drupal\profile2\ProfileTypeFormController',