type != MUAMBA_NODE_TYPE) { drupal_not_found(); } global $user; // TODO: check if user has permission to access the node. // TODO: check if user is not blocked by privatemsg? // Check if user already requested the item if (muamba_check_user_request($nid, $user->uid)) { // TODO } // Issue item request // TODO // Notify item owner privatemsg_new_thread(array(user_load($node->uid)), t('Item request'), 'User has requested an item'); // User output return t('You have requested an item'); } /** * Check if user already requested an item. * * @param $nid * Item nid. * * @param $uid * Requester user nid. * * @return * TRUE if user already requested an item, FALSE otherwise. */ function muamba_check_user_request($nid, $uid) { if (!is_int($nid) || !is_int($uid)) { return FALSE; } $query = db_select('muamba', 'm'); $query ->condition('m.nid', $nid, '=') ->condition('m.uid', $uid, '='); $result = $query->countQuery()->execute()->fetchField(); if ($result > 0) { return TRUE; } return FALSE; } /** * Release an item requested by a given user. * * @param $nid * Item nid. * * @param $uid * Requester user uid. * * @todo */ function muamba_release($nid, $uid) { global $user; $nid = (int) $nid; $node = node_load($nid); if (!$node || $node->type != MUAMBA_NODE_TYPE) { drupal_not_found(); } if ($node->uid != $user->uid) { // TODO: not node owner } } /** * Get the requests sent or received. * * @param $uid * Requester user uid. * * @todo */ function muamba_get_requests($nid, $type = 'sent') { }