self-service Drupal module, RT#9380
[freeside.git] / fs_selfservice / drupal / admin.inc
diff --git a/fs_selfservice/drupal/admin.inc b/fs_selfservice/drupal/admin.inc
new file mode 100644 (file)
index 0000000..45d83d5
--- /dev/null
@@ -0,0 +1,46 @@
+<?php
+
+function freeside_admin() {
+  return drupal_get_form('freeside_admin_form');
+}
+
+function freeside_admin_form() {
+  $hostname = variable_get('freeside_hostname','');
+
+  $form = array(
+    'freeside_hostname'=> array(
+      '#type'   => 'textfield',
+      '#title'  => t('Freeside server address'),
+      '#default_value'=>variable_get('freeside_hostname',''),
+      '#required'=>1,
+    ),
+  );
+
+  if($hostname) {
+    $freeside = new FreesideSelfService();
+    $signup_info = $freeside->signup_info(); // no agent in this request
+
+    $agents = array();
+    foreach((array)$signup_info['agent'] as $a) {
+      $agents[$a['agentnum']] = $a['agent'];
+    }
+
+    $form['freeside_agentnum'] = array(
+      '#type'   => 'select',
+      '#title'  => t('Signup agent'),
+      '#default_value'=>variable_get('freeside_agentnum',''),
+      '#required'=>1,
+      '#options'=> $agents,
+    );
+
+    $form['freeside_debug'] = array(
+      '#type'   => 'checkbox',
+      '#title'  => t('Enable debugging'),
+      '#default_value'=>variable_get('freeside_debug',0),
+    );
+  }
+
+  return system_settings_form($form);
+}
+
+?>