aboutsummaryrefslogtreecommitdiff
path: root/mod/file/views/default/file/typecloud.php
diff options
context:
space:
mode:
Diffstat (limited to 'mod/file/views/default/file/typecloud.php')
-rw-r--r--mod/file/views/default/file/typecloud.php50
1 files changed, 50 insertions, 0 deletions
diff --git a/mod/file/views/default/file/typecloud.php b/mod/file/views/default/file/typecloud.php
new file mode 100644
index 000000000..4253bf674
--- /dev/null
+++ b/mod/file/views/default/file/typecloud.php
@@ -0,0 +1,50 @@
+<?php
+/**
+ * Type cloud
+ */
+
+function file_type_cloud_get_url($type, $friends) {
+ $url = elgg_get_site_url() . 'file/search?subtype=file';
+
+ if ($type->tag != "all") {
+ $url .= "&md_type=simpletype&tag=" . urlencode($type->tag);
+ }
+
+ if ($friends) {
+ $url .= "&friends=$friends";
+ }
+
+ if ($type->tag == "image") {
+ $url .= "&list_type=gallery";
+ }
+
+ if (elgg_get_page_owner_guid()) {
+ $url .= "&page_owner=" . elgg_get_page_owner_guid();
+ }
+
+ return $url;
+}
+
+
+$types = elgg_extract('types', $vars, array());
+if (!$types) {
+ return true;
+}
+
+$friends = elgg_extract('friends', $vars, false);
+
+$all = new stdClass;
+$all->tag = "all";
+elgg_register_menu_item('page', array(
+ 'name' => 'file:all',
+ 'text' => elgg_echo('all'),
+ 'href' => file_type_cloud_get_url($all, $friends),
+));
+
+foreach ($types as $type) {
+ elgg_register_menu_item('page', array(
+ 'name' => "file:$type->tag",
+ 'text' => elgg_echo("file:type:$type->tag"),
+ 'href' => file_type_cloud_get_url($type, $friends),
+ ));
+}