+ $form['settings']['pz2_path'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Pazpar2/Service Proxy path'),
+ '#description' => t('Path that takes Pazpar2 commands via HTTP'),
+ '#required' => TRUE,
+ '#default_value' => $settings['pz2_path'],
+ );
+ $form['settings']['use_sessions'] = array(
+ '#type' => 'checkbox',
+ '#title' => t('Session handling'),
+ '#description' => t('Disable for use with Service Proxy'),
+ '#default_value' => $settings['use_sessions'],
+ );
+
+ $form['settings']['sp'] = array(
+ '#type' => 'fieldset',
+ '#title' => t('Service Proxy specific settings'),
+ '#collapsible' => TRUE,
+ '#collapsed' => TRUE
+ );
+ $form['settings']['sp']['user'] = array(
+ '#type' => 'password',
+ '#title' => t('Service Proxy username'),
+ '#description' => t('Service Proxy username'),
+ '#required' => FALSE,
+ '#default_value' => $settings['sp']['user'],
+ );
+ $form['settings']['sp']['pass'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Service Proxy password'),
+ '#description' => t('Service Proxy password'),
+ '#required' => FALSE,
+ '#default_value' => $settings['sp']['pass'],
+ );
+
+ $form['settings']['facets'] = array(
+ '#type' => 'fieldset',
+ '#title' => t('Facet settings'),
+ // Set up the wrapper so that AJAX will be able to replace the fieldset.
+ '#prefix' => '<div id="mkdru-facets-form-wrapper">',
+ '#suffix' => '</div>',
+ '#collapsible' => TRUE,
+ '#collapsed' => FALSE
+ );
+ if (empty($form_state['facet_names'])) {
+ $form_state['facet_names'] = array('source', 'author', 'subject');
+ }
+ foreach ($form_state['facet_names'] as $facet) {
+ $form['settings']['facets'][$facet] = array(
+ '#type' => 'fieldset',
+ '#title' => $facet . ' ' . t('facet'),
+ '#collapsible' => TRUE,
+ '#collapsed' => FALSE
+ );
+ $form['settings']['facets'][$facet]['displayName'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Facet name to display in UI'),
+ '#required' => TRUE,
+ '#default_value' => $settings['facets'][$facet]['displayName'],
+ );
+ $form['settings']['facets'][$facet]['pz2Name'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Name of termlist in Pazpar2'),
+ '#required' => TRUE,
+ '#default_value' => $settings['facets'][$facet]['pz2Name'],
+ );
+ $form['settings']['facets'][$facet]['limiter'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Query limiter string'),
+ '#default_value' => $settings['facets'][$facet]['limiter'],
+ '#size' => 5,
+ );
+ $form['settings']['facets'][$facet]['max'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Number of terms to display'),
+ '#required' => TRUE,
+ '#default_value' => $settings['facets'][$facet]['max'],
+ '#size' => 3,
+ '#maxlength' => 3,
+ );
+ $form['settings']['facets'][$facet]['orderWeight'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Facet weight'),
+ '#default_value' => $settings['facets'][$facet]['orderWeight'],
+ '#size' => 3,
+ '#maxlength' => 3,
+ );
+ }
+ $form['new_facet'] = array(
+ '#type' => 'fieldset',
+ '#title' => t('Add new facet...'),
+ '#tree' => TRUE,
+ '#collapsible' => TRUE,
+ '#collapsed' => FALSE
+ );
+ $form['new_facet']['canonical'] = array(
+ '#type' => 'textfield',
+ '#title' => t('Canonical name of new facet'),
+ );
+ $form['new_facet']['button'] = array(
+ '#type' => 'submit',
+ '#value' => t('Add facet'),
+ '#description' => t('Configure additional facets based on Pazpar2/SP termlists'),
+ '#weight' => 1,
+ '#submit' => array('mkdru_add_facet_form'),
+ '#ajax' => array(
+ 'callback' => 'mkdru_add_facet_callback',
+ 'wrapper' => 'mkdru-facets-form-wrapper',
+ ),
+ );