From 043d624016705e2b54772e5b6b248024e060bbce Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Sat, 24 Sep 2011 11:37:21 -0300 Subject: Adding more muamba actions --- muamba.misc.inc | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 86 insertions(+), 5 deletions(-) (limited to 'muamba.misc.inc') diff --git a/muamba.misc.inc b/muamba.misc.inc index 25fceac..c164664 100644 --- a/muamba.misc.inc +++ b/muamba.misc.inc @@ -16,14 +16,95 @@ function muamba_request($nid) { $nid = (int) $nid; $node = node_load($nid); - if (!$node) { - // TODO: error - return; + if (!$node || $node->type != MUAMBA_NODE_TYPE) { + drupal_not_found(); } global $user; - // TODO: check if user is not blocked? - privatemsg_new_thread(array(user_load($node->uid)), 'User request', 'User has requested an item'); + // 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') { +} -- cgit v1.2.3