index 498a4b5..b9e6179 100644 (file) --- a/user_relationship_limits.module +++ b/user_relationship_limits.module @@ -15,26 +15,19 @@ function user_relationship_limits_user_relationships($op, &$relationship) { switch ($op) { case 'presave': - //watchdog('user_relationship_limits','Relationship
'.print_r($relationship,TRUE).''); //below works except during accept, where we don't have the full user object $requester_uid = $relationship->requester->uid; $requester = user_load($requester_uid); - //watchdog('user_relationship_limits','Requester:
'.print_r($requester,TRUE).''); $requester_limit = user_relationship_limits_user_limit($relationship->rtid, $requester); $requester_count = user_relationship_limits_relationship_count($relationship->rtid, $requester->uid); - //watchdog('user_relationship_limits','Requester Limit:
'.print_r($requester_limit,TRUE).''); - //watchdog('user_relationship_limits','Requester Count:
'.print_r($requester_count,TRUE).''); //check the requestee to make sure they have an available slot as well $requestee_uid = $relationship->requestee->uid; $requestee = user_load($requestee_uid); - //watchdog('user_relationship_limits','Requestee:
'.print_r($requestee,TRUE).''); + $requestee_limit = user_relationship_limits_user_limit($relationship->rtid, $requestee); $requestee_count = user_relationship_limits_relationship_count($relationship->rtid, $requestee->uid); - //watchdog('user_relationship_limits','Requestee Limit:
'.print_r($requestee_limit,TRUE).''); - //watchdog('user_relationship_limits','Requestee Count:
'.print_r($requestee_count,TRUE).''); - if (($requester_limit != 0) & ($requester_count >= $requester_limit)) { //we can't submit any more requests, post an error message and keep the form from submitting //check if the error is being triggered on acceptance and display a different warning @@ -73,16 +66,13 @@ function user_relationship_limits_role_limit($rtid, $rid) { function user_relationship_limits_relationship_count($rtid, $uid) { //find current count for this relationships (requested and accepted) $pending = variable_get('user_relationship_limits_pending', 1); - //watchdog('user_relationship_limits', 'pending status: ' . print_r($pending,TRUE)); if ($pending == 1) { $sql = "SELECT COUNT(*) FROM {user_relationships} WHERE requester_id = :uid AND rtid = :rtid"; $rel_number = db_query($sql, array(':uid' => $uid, ':rtid' => $rtid))->fetchField(); - //watchdog('user_relationship_limits', 'pending included: ' . print_r($rel_number,TRUE)); } else { $sql = "SELECT COUNT(*) FROM {user_relationships} WHERE requester_id = :uid AND rtid = :rtid AND approved = 1"; $rel_number = db_query($sql, array(':uid' => $uid, ':rtid' => $rtid))->fetchField(); - //watchdog('user_relationship_limits', 'pending not included: ' . print_r($rel_number,TRUE)); } return $rel_number; } @@ -122,10 +112,13 @@ function user_relationship_limits_form_alter(&$form, &$form_state, $form_id) { '#description' => t('Enter the maximum number of relationships (pending and active) allowed per role. Enter O for unlimited.'), '#weight' => 9, ); + $form['settings']['limits']['tabs'] = array( + '#type' => 'vertical_tabs', + ); //perform a check to make sure we have an active relationship to work with if (empty($relationships)) { - $form['settings']['limits']['empty-message'] = array( + $form['settings']['limits']['tabs']['empty-message'] = array( '#type' => 'markup', '#value' => t('You currently have no active relationships'), ); @@ -134,12 +127,10 @@ function user_relationship_limits_form_alter(&$form, &$form_state, $form_id) { //generate a section of the form for each individual relationship foreach ($relationships as $key => $value) { $rtid = $value->rtid; - $form['settings']['limits'][$value->name] = array( - '#type' => 'container', - '#title' => check_plain($value->name), - '#collapsible' => TRUE, - '#collapsed' => TRUE, - '#tree' => TRUE, + $form['settings']['limits']['tabs'][$value->name] = array( + '#type' => 'fieldset', + '#title' => check_plain($value->name), + '#tree' => TRUE, ); $user_roles = user_roles(); @@ -150,7 +141,7 @@ function user_relationship_limits_form_alter(&$form, &$form_state, $form_id) { if (empty($role_limit)) { $role_limit = 0; } - $form['settings']['limits'][$value->name][$user_roles[$key]] = array( + $form['settings']['limits']['tabs'][$value->name][$user_roles[$key]] = array( '#type' => 'textfield', '#title' => check_plain($user_roles[$role]), '#default_value' => $role_limit, @@ -167,7 +158,7 @@ function user_relationship_limits_form_alter(&$form, &$form_state, $form_id) { if (empty($role_limit)) { $role_limit = 0; } - $form['settings']['limits'][$value->name][$role] = array( + $form['settings']['limits']['tabs'][$value->name][$role] = array( '#type' => 'textfield', '#title' => check_plain($role), '#default_value' => $role_limit, @@ -196,6 +187,10 @@ function user_relationship_limits_form_alter(&$form, &$form_state, $form_id) { break; case 'user_relationships_admin_type_edit': $relationship = user_relationships_type_load(array('name' => $form['name']['#default_value'])); + if(empty($relationship)) { + //we need our relationship object for this to work properly so break if it doesn't exist yet + break; + } $form['tabs']['limits'] = array( '#type' => 'fieldset', '#title' => 'Limits', @@ -247,13 +242,16 @@ function user_relationship_limits_form_alter(&$form, &$form_state, $form_id) { } function user_relationship_limits_submit(&$form, &$form_state) { - foreach ($form_state['values']['limits'] as $key => $limits) { + foreach ($form_state['values']['limits']['tabs'] as $key => $limits) { $sql = "SELECT rtid FROM {user_relationship_types} WHERE name = :key"; $rtid = db_query($sql, array(':key' => $key))->fetchField(); - foreach ($limits as $key => $value) { - $rid = array_search($key, user_roles()); - $sql = "REPLACE INTO {user_relationship_limits} SET rtid = :rtid, rid = :rid, role_limit = :rlimit"; - db_query($sql, array(':rtid' => $rtid, ':rid' => $rid, ':rlimit' => $value)); + //vertical tabs adds extra value only need values to save + if(is_array($limits)) { + foreach ($limits as $key => $value) { + $rid = array_search($key, user_roles()); + $sql = "REPLACE INTO {user_relationship_limits} SET rtid = :rtid, rid = :rid, role_limit = :rlimit"; + db_query($sql, array(':rtid' => $rtid, ':rid' => $rid, ':rlimit' => $value)); + } } }