aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoricewing <icewing@36083f99-b078-4883-b0ff-0f9b5a30f544>2008-03-18 11:34:19 +0000
committericewing <icewing@36083f99-b078-4883-b0ff-0f9b5a30f544>2008-03-18 11:34:19 +0000
commitc4f61dd4c1b5a28a7c073c734f003ffd45b820d4 (patch)
tree46054d2ccb246d3133c4523d010a3480cf4d84ac
parent4e7d013c52cdb2ae00f5faf6bae7519bf3dc72ed (diff)
downloadelgg-c4f61dd4c1b5a28a7c073c734f003ffd45b820d4.tar.gz
elgg-c4f61dd4c1b5a28a7c073c734f003ffd45b820d4.tar.bz2
Marcus Povey <marcus@dushka.co.uk>
* Added VERY simple tasklist plugin. git-svn-id: https://code.elgg.org/elgg/trunk@247 36083f99-b078-4883-b0ff-0f9b5a30f544
-rw-r--r--mod/tasklist/index.php52
-rw-r--r--mod/tasklist/start.php74
-rw-r--r--mod/tasklist/views/default/tasklist/item.php21
-rw-r--r--mod/tasklist/views/default/tasklist/main.php13
-rw-r--r--mod/tasklist/views/default/tasklist/newtask.php7
5 files changed, 167 insertions, 0 deletions
diff --git a/mod/tasklist/index.php b/mod/tasklist/index.php
new file mode 100644
index 000000000..5491baea8
--- /dev/null
+++ b/mod/tasklist/index.php
@@ -0,0 +1,52 @@
+<?php
+ require_once("../../engine/start.php");
+
+ global $CONFIG;
+
+ //$_SESSION['id'] = 2;
+
+ // Get the user
+ $owner_id = page_owner();
+ $owner = get_user(page_owner());
+
+ $description = get_input("task");
+ $status = get_input("status");
+ $action = get_input("action");
+ $guid = get_input("guid");
+
+ $limit = get_input("limit",10);
+ $offset = get_input("offset",0);
+
+ switch ($action)
+ {
+ case 'newtask' :
+ $taskid = create_entity("object", "task", $owner_id, 0);
+
+ if ($taskid)
+ {
+ $entity = get_entity($taskid);
+
+ $entity->setMetaData('task', $task, 'text');
+ $entity->setMetaData('status', 'notdone', 'text');
+
+
+ $entity->save();
+ } else echo "error";
+
+ break;
+
+ case 'tick' :
+ $entity = get_entity($guid);
+
+ $entity->setMetaData('status', 'done', 'text');
+ break;
+ }
+
+ $body = elgg_view("tasklist/main", array(
+ "name" => $owner->name,
+ "tasklist" => tasklist_drawtasks($owner_id, $limit, $offset),
+ "newtask" => tasklist_draw_newtask_form($owner_id)
+ ));
+ page_draw("Tasklist",$body);
+
+?> \ No newline at end of file
diff --git a/mod/tasklist/start.php b/mod/tasklist/start.php
new file mode 100644
index 000000000..260109866
--- /dev/null
+++ b/mod/tasklist/start.php
@@ -0,0 +1,74 @@
+<?php
+ /**
+ * Simple tasklist plugin
+ *
+ * These parameters are required for the event API, but we won't use them:
+ *
+ * @param unknown_type $event
+ * @param unknown_type $object_type
+ * @param unknown_type $object
+ */
+ function tasklist_init($event, $object_type, $object = null) {
+
+ global $CONFIG;
+
+ add_menu("Tasklist",$CONFIG->wwwroot . "mod/tasklist/",array(
+ menu_item("The tasklist plugin",$CONFIG->wwwroot."mod/tasklist/"),
+ ));
+ }
+
+ /**
+ * The entity.
+ *
+ * @param ElggObject $entity
+ */
+ function tasklist_draw_task($entity)
+ {
+ // Get the status
+ $status = $entity->getMetaData("status");
+
+ // Task
+ $task = $entity->getMetaData("task");
+
+ // Render the item
+ return elgg_view("tasklist/item", array(
+ "owner_id" => $entity->owner_guid,
+ "task" => $task,
+ "status" => $status,
+ "guid" => $entity->guid
+ ));
+ }
+
+ function tasklist_drawtasks($ownerid, $offset = 0, $limit = 10)
+ {
+ // Get all entities of task
+ //$entities = get_entities("object","task",$ownerid, "time_created desc", $limit, $offset);
+ $entities = get_entities_from_metadata("status", "notdone", "object", "task", $limit, $offset);
+
+ if (($entities) && (is_array($entities)))
+ {
+ $display = "<table>";
+
+ foreach($entities as $e)
+ $display .= tasklist_draw_task($e);
+
+ $display .= "</table>";
+
+ return $display;
+ }
+
+ return "No tasks present for user.";
+ }
+
+ function tasklist_draw_newtask_form($ownerid)
+ {
+ return elgg_view("tasklist/newtask", array(
+ "owner_id" => $ownerid,
+ "guid" => $entity->guid
+ ));
+ }
+
+ // Make sure test_init is called on initialisation
+ register_event_handler('init','system','tasklist_init');
+
+?> \ No newline at end of file
diff --git a/mod/tasklist/views/default/tasklist/item.php b/mod/tasklist/views/default/tasklist/item.php
new file mode 100644
index 000000000..a2225300f
--- /dev/null
+++ b/mod/tasklist/views/default/tasklist/item.php
@@ -0,0 +1,21 @@
+<tr>
+ <td><b><?php echo $vars['task'] ?></b></td>
+
+ <td>
+ <?php if ($vars['status']=='done')
+ echo "done";
+ else
+ {
+?>
+ <form method = "post">
+ <input type="hidden" name="action" value="tick" />
+ <input type="hidden" name="status" value="done" />
+ <input type="hidden" name="owner_id" value="<?php echo $vars['owner_id']; ?>"/>
+ <input type="hidden" name="guid" value="<?php echo $vars['guid']; ?>"/>
+ <input type="submit" name="Done" value="Done" />
+ </form>
+<?php
+ }
+?>
+ </td>
+</tr> \ No newline at end of file
diff --git a/mod/tasklist/views/default/tasklist/main.php b/mod/tasklist/views/default/tasklist/main.php
new file mode 100644
index 000000000..bb530b3c6
--- /dev/null
+++ b/mod/tasklist/views/default/tasklist/main.php
@@ -0,0 +1,13 @@
+<?php
+ /**
+ * Simple tasklist plugin.
+ * @author Marcus Povey <marcus@dushka.co.uk>
+ */
+
+?>
+<h1><?php echo $vars['name'] ?>'s Tasklist</h1>
+<?php echo $vars['tasklist']; ?>
+
+<?php echo $vars['newtask']; ?>
+
+
diff --git a/mod/tasklist/views/default/tasklist/newtask.php b/mod/tasklist/views/default/tasklist/newtask.php
new file mode 100644
index 000000000..420c409d6
--- /dev/null
+++ b/mod/tasklist/views/default/tasklist/newtask.php
@@ -0,0 +1,7 @@
+<form method="post">
+ <textarea name="task"></textarea>
+ <input type="hidden" name="action" value="newtask"/>
+ <input type="hidden" name="guid" value="<?php echo $vars['guid']; ?>"/>
+ <input type="hidden" name="owner_id" value="<?php echo $vars['owner_id']; ?>"/>
+ <input type="submit" name="submit" />
+</form> \ No newline at end of file