t('Role')); case 'attributes': return array('in_stock'); case 'fields': return array('role' => $node->role); break; case 'form': $form['role_settings'] = array( '#type' => 'fieldset', '#title' => t('Role settings'), '#collapsible' => true, ); //TODO: Find a way to set the default value. Why doesn't this work? $options = user_roles(1, "buy this role"); $form['role_settings']['role'] = array( '#type' => 'select', '#title' => t('Role'), '#default_value' => $options[$node->rid], '#options' => $options, '#description' => t('Select the role you woul like the users to be promoted to after buying this product. %role', array('%role' => $options[$node->rid])) ); $output = $form; return $output; case 'load': return db_fetch_object(db_query('SELECT * FROM {ec_product_role} WHERE nid = %d', $node->nid)); case 'insert': return db_query("INSERT INTO {ec_product_role} (nid, rid) VALUES ('%d', '%d')", $node->nid, $node->role); case 'update': return db_query("UPDATE {ec_product_role} SET rid = '%d' WHERE nid = '%d'", $node->role, $node->nid); case 'delete': return db_query('DELETE FROM {ec_product_role} WHERE nid = %d', $node->nid); break; /* switch($op) {*/ case 'on payment completion': //print_r($node); db_query('INSERT INTO {users_roles} (uid, rid) VALUES (%d, %d)', $node->uid, $node->rid); } } /** * Implementation of hook_perm(). */ function role_subscribe_perm() { return array('create selable roles', 'edit selable roles', 'buy this role'); } /** * Implementation of hook_access(). */ /*function role_subscribe_access($op, $node) { global $user; if ($op == 'create') { return user_access('create hosting packages'); } if ($op == 'update' || $op == 'delete') { if (user_access('edit own hosting packages') && ($user->uid == $node->uid)) { return TRUE; } } } */ /*function role_subscribe_cart_add_item() { global $base_url; $edit = $_POST['edit']; $op = $_POST['op']; switch ($op) { case t('add to cart'): $item = cart_get_items(); if (!$item[$edit['nid']]) { cart_add_item($edit['nid'], 1, $edit['data']); } else { cart_update_item($edit['nid'], 1, $edit['data']); } drupal_goto($edit['destination']); break; } } */ ?>