From e3375f0159e4f625629f75c0f14396a21fca5cb9 Mon Sep 17 00:00:00 2001 From: Marek Isalski Date: Sun, 3 Mar 2019 22:00:56 +0100 Subject: [PATCH] add form to be able to configure which memberships a user can edit themselves --- fulcrm_membership.admin.inc | 52 +++++++++++++++++++++++++++++++++++++ fulcrm_membership.module | 16 ++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 fulcrm_membership.admin.inc diff --git a/fulcrm_membership.admin.inc b/fulcrm_membership.admin.inc new file mode 100644 index 0000000..6a6b134 --- /dev/null +++ b/fulcrm_membership.admin.inc @@ -0,0 +1,52 @@ + 'item', + '#title' => 'fulcrm Membership Integration Settings', + '#description' => '', + ); + + $products = array( '' => '-- disabled --' ); + + $membership_data = fulcrm_apiv2_GET( 'membership/', + $query = array( 'page_size' => 1000, + ) ); + if ( $membership_data[ 'success' ] ) { + if ( $membership_data[ 'data' ][ 'results' ] ) { + foreach ( $membership_data[ 'data' ][ 'results' ] as $membership ) { + $memberships[ $membership[ 'id' ] ] = $membership[ 'name' ]; + if ( $membership[ 'archived' ] ) + $memberships[ $membership[ 'id' ] ] .= ' (archived)'; + } + } + } else { + $memberships[ 'ERROR' ] = '** ERROR fetching memberships from fulcrm **'; + } + + $form[ 'self_set_membership_ids' ] = array( '#type' => 'checkboxes', + '#title' => 'Self-Set Memberships', + '#options' => $memberships, + '#default_value' => variable_get( 'fulcrm_membership_self_set_membership_ids', array() ), + '#description' => 'Which memberships can users add/remove for themselves?', + ); + + $form[ 'actions' ] = array( '#type' => 'actions' ); + $form[ 'actions' ][ 'save' ] = array( '#type' => 'submit', + '#value' => t('Save'), + '#submit' => array( 'fulcrm_membership_admin_form_submit' ), + ); + + return $form; +} + +function fulcrm_membership_admin() { + return drupal_get_form( 'fulcrm_membership_admin_form' ); +} diff --git a/fulcrm_membership.module b/fulcrm_membership.module index 423a549..b9c2ad8 100644 --- a/fulcrm_membership.module +++ b/fulcrm_membership.module @@ -1,7 +1,23 @@ array( 'title' => t('Administer fulcrm membership'), + 'description' => t('Perform main installation/administration tasks for fulcrm membership integration.'), + ), + ); +} + function fulcrm_membership_menu() { $items = array(); + + $items[ 'admin/config/services/fulcrm/membership' ] = array( 'page callback' => 'fulcrm_membership_admin', + 'file' => 'fulcrm_membership.admin.inc', + 'title' => 'fulcrm Membership', + 'description' => 'Configure Membership integration with fulcrm.org.', + 'access callback' => 'user_access', + 'access arguments' => array('administer fulcrm membership'), + ); + $items[ 'user/fulcrm/optin/%' ] = array( 'page callback' => 'fulcrm_membership_optin', 'page arguments' => array(3), 'title' => 'Subscription Opt-In',