function acquia_search_form_apachesolr_environment_edit_form_alter in Acquia Connector 7.3
Same name and namespace in other branches
- 7 acquia_search/acquia_search.module \acquia_search_form_apachesolr_environment_edit_form_alter()
- 7.2 acquia_search/acquia_search.module \acquia_search_form_apachesolr_environment_edit_form_alter()
Implements hook_form_FORM_ID_alter().
File
- acquia_search/
acquia_search.module, line 478 - Integration between Acquia Drupal and Acquia's hosted solr search service.
Code
function acquia_search_form_apachesolr_environment_edit_form_alter(&$form, $form_state) {
// Gets environment from form, gets connection status to Acquia Search.
$env_id = isset($form['env_id']['#default_value']) ? $form['env_id']['#default_value'] : '';
$environment = $env_id ? apachesolr_environment_load($env_id) : FALSE;
// Add message to Acquia-connected indexes.
if ($environment && acquia_search_environment_connected($environment)) {
acquia_search_add_form_status_message($form, $form_state, $environment);
if (acquia_search_is_environment_overridden_to_read_only($environment)) {
$dsm = acquia_search_get_read_only_mode_warning($environment);
drupal_set_message($dsm, 'warning', FALSE);
// Avoid accidental saving of overridden values into the Database.
$form['conf']['apachesolr_read_only']['#disabled'] = TRUE;
$form['conf']['apachesolr_read_only']['#type'] = 'hidden';
}
$form['url']['#disabled'] = TRUE;
$form['env_id']['#disabled'] = TRUE;
}
// Don't let the user delete the initial environment.
$acquia_solr_environment = FALSE;
if ($env_id == ACQUIA_SEARCH_ENVIRONMENT_ID || $env_id == ACQUIA_SEARCH_V3_ENVIRONMENT_ID) {
$form['name']['#disabled'] = TRUE;
$form['actions']['delete']['#access'] = FALSE;
$acquia_solr_environment = TRUE;
}
// Adding solr core select option.
$solr_core = '';
if ($environment['env_id'] == ACQUIA_SEARCH_ENVIRONMENT_ID) {
$solr_core = ACQUIA_SEARCH_SOLR_CORE_V2;
}
elseif ($environment['env_id'] == ACQUIA_SEARCH_V3_ENVIRONMENT_ID) {
$solr_core = ACQUIA_SEARCH_SOLR_CORE_V3;
}
$form_element['acquia_search_api']['acquia_search_solr_core'] = [
'#title' => t('Acquia Search Solr core'),
'#type' => 'select',
'#options' => [
ACQUIA_SEARCH_SOLR_CORE_V2 => 'Solr 6 and below',
ACQUIA_SEARCH_SOLR_CORE_V3 => 'Solr 7 and above',
],
'#empty_value' => '',
'#empty_option' => t('- None -'),
'#default_value' => $solr_core,
'#description' => t('Select version of Solr Core.'),
'#disabled' => $acquia_solr_environment,
'#ajax' => [
'callback' => '_acquia_make_environment_url',
'event' => 'change',
'wrapper' => 'acquia_search_environment_values',
],
];
array_unshift($form, $form_element['acquia_search_api']);
$form['#prefix'] = '<div id="acquia_search_environment_values">';
$form['#suffix'] = '</div>';
$acquia_environment = acquia_search_get_environment();
// Override default values.
foreach ($acquia_environment as $key => $value) {
$environment[$key] = $value;
}
$environment['env_id'] = ACQUIA_SEARCH_ENVIRONMENT_ID;
$environment['name'] = t('Acquia Search');
$form['actions']['save']['#submit'][] = 'acquia_search_solr_settings_form_new_environment_submit';
$form['actions']['save_edit']['#submit'] = [
'acquia_search_solr_settings_form_new_environment_submit',
];
$form['actions']['save']['#validate'][] = 'acquia_search_environment_edit_form_validate';
}