' . t('About') . ''; $output .= '

' . t('Provides case entities and a required field on activities linking them to a case.') . '

'; return $output; default: } } /** * Implements hook_theme(). */ function opencase_cases_theme() { return [ 'opencase_cases' => [ 'render element' => 'children', ], ]; } function opencase_cases_entity_base_field_info($entity_type) { $fields = array(); // Add Case field to Activity if ($entity_type->id() === 'oc_activity') { $fields['oc_case'] = BaseFieldDefinition::create('entity_reference') ->setLabel(t('Case')) ->setDescription(t('The case this activity belongs to.')) ->setSetting('target_type', 'oc_case') ->setSetting('handler', 'default') ->setTranslatable(TRUE) ->setCardinality(1) ->setDefaultValueCallback('opencase_cases_default_activity_case_value') ->setDisplayOptions('view', [ 'type' => 'string', 'weight' => -3, ]) ->setRequired(TRUE); } return $fields; } /** * When creating an activity, it sets the case id from the URL. */ public static function opencase_cases_default_activity_case_value() { return array(\Drupal::request()->query->get('case_id')); } /** * Implementation of hook_form_alter() * Changes what page is redirected to after deleting things */ function opencase_cases_form_alter(&$form, &$form_state, $form_id) { if (preg_match('/oc_actor_.*_delete_form/', $form_id) or (preg_match('/oc_case_.*_delete_form/', $form_id)) or (preg_match('/oc_organisation_.*_delete_form/', $form_id))) { $form['actions']['submit']['#submit'][] = '_opencase_cases_redirect_to_home'; $form['actions']['cancel']['#url'] = $form_state->getFormObject()->getEntity()->toUrl(); } if (preg_match('/oc_activity_.*_delete_form/', $form_id)) { $form['actions']['submit']['#submit'][] = '_opencase_cases_delete_activity_redirect'; $form['actions']['cancel']['#url'] = $form_state->getFormObject()->getEntity()->toUrl(); } } function _opencase_cases_redirect_to_home($form, &$form_state) { $form_state->setRedirect(''); } function _opencase_cases_delete_activity_redirect($form, &$form_state) { $case_id = $form_state->getFormObject()->getEntity()->oc_case->target_id; $form_state->setRedirect('entity.oc_case.canonical', ['oc_case' => $case_id]); }