From 5cd0054058a718e5694c8542f72f586f06b69fc8 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Sat, 24 Sep 2011 20:42:57 -0300 Subject: Basic working code for an item request --- muamba.business.inc | 39 ++++++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 13 deletions(-) (limited to 'muamba.business.inc') diff --git a/muamba.business.inc b/muamba.business.inc index f7b9e05..59e4bd1 100644 --- a/muamba.business.inc +++ b/muamba.business.inc @@ -12,30 +12,43 @@ * Requested item. */ function muamba_request($nid) { - // Sanitize + global $user; $nid = (int) $nid; $node = node_load($nid); - if (!$node || $node->type != MUAMBA_NODE_TYPE) { + // Access check + if (!$node || $node->type != MUAMBA_NODE_TYPE || !node_access('view', $node)) { 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 is blocked by the item owner + if (module_exists('pm_block_user')) { + $owner = user_load($node->uid); + if (pm_block_user_has_blocked($user, $owner)) { + return t('The item owner has blocked you from asking this item.'); + } + } // Check if user already requested the item if (muamba_check_user_request($nid, $user->uid)) { - // TODO + return t('You already requested this item.'); } // Notify item owner $thread = privatemsg_new_thread(array(user_load($node->uid)), t('Item request'), 'User has requested an item'); - $thread_id = $thread['message']['thread_id']; + $thread_id = $thread['message']->thread_id; // Issue item request - // TODO + $request = db_insert('muamba') + ->fields( + array( + 'nid' => $nid, + 'uid' => $user->uid, + 'status' => MUAMBA_REQUESTED, + 'thread_id' => $thread_id, + ) + ) + ->execute(); // User output return t('You have requested an item'); @@ -54,15 +67,15 @@ function muamba_request($nid) { * 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; - } + $nid = (int) $nid; + $uid = (int) $uid; $query = db_select('muamba', 'm'); $query ->condition('m.nid', $nid, '=') - ->condition('m.uid', $uid, '='); + ->condition('m.uid', $uid, '=') + ->condition('m.status', MUAMBA_REQUESTED, '='); $result = $query->countQuery()->execute()->fetchField(); -- cgit v1.2.3