aboutsummaryrefslogtreecommitdiff
path: root/muamba.misc.inc
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2011-09-24 11:37:21 -0300
committerSilvio Rhatto <rhatto@riseup.net>2011-09-24 11:37:21 -0300
commit043d624016705e2b54772e5b6b248024e060bbce (patch)
treee2710f9d74dcc968660fcaad7cc4a2657beb49ab /muamba.misc.inc
parent9f31ba02a50d8930a5ce6d9365fcd4a454218271 (diff)
downloadmuamba-043d624016705e2b54772e5b6b248024e060bbce.tar.gz
muamba-043d624016705e2b54772e5b6b248024e060bbce.tar.bz2
Adding more muamba actions
Diffstat (limited to 'muamba.misc.inc')
-rw-r--r--muamba.misc.inc91
1 files changed, 86 insertions, 5 deletions
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') {
+}