aboutsummaryrefslogtreecommitdiff
path: root/mod/tagcloud/views
diff options
context:
space:
mode:
authorpete <pete@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-03-12 18:10:54 +0000
committerpete <pete@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-03-12 18:10:54 +0000
commitf46bd9269d84f35e809cb6fddb72264adfbb0904 (patch)
treede421898a3162d5b58837b039c94b4c2908cd389 /mod/tagcloud/views
parent73ed4ae8513af1cc6e795b125cc1f319a965bfb4 (diff)
downloadelgg-f46bd9269d84f35e809cb6fddb72264adfbb0904.tar.gz
elgg-f46bd9269d84f35e809cb6fddb72264adfbb0904.tar.bz2
Added updated tagcloud plugin and added to core mods.
git-svn-id: http://code.elgg.org/elgg/trunk@5379 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'mod/tagcloud/views')
-rw-r--r--mod/tagcloud/views/default/output/tagcloud.php47
-rw-r--r--mod/tagcloud/views/default/tagcloud/css.php16
-rw-r--r--mod/tagcloud/views/default/widgets/tagcloud/edit.php20
-rw-r--r--mod/tagcloud/views/default/widgets/tagcloud/view.php9
4 files changed, 92 insertions, 0 deletions
diff --git a/mod/tagcloud/views/default/output/tagcloud.php b/mod/tagcloud/views/default/output/tagcloud.php
new file mode 100644
index 000000000..aa3d84081
--- /dev/null
+++ b/mod/tagcloud/views/default/output/tagcloud.php
@@ -0,0 +1,47 @@
+<?php
+
+ /**
+ * Elgg tagcloud
+ * Displays a tagcloud
+ */
+
+ if (!empty($vars['subtype'])) {
+ $subtype = "&subtype=" . urlencode($vars['subtype']);
+ } else {
+ $subtype = "";
+ }
+ if (!empty($vars['object'])) {
+ $object = "&object=" . urlencode($vars['object']);
+ } else {
+ $object = "";
+ }
+
+ if (empty($vars['tagcloud']) && !empty($vars['value']))
+ $vars['tagcloud'] = $vars['value'];
+
+ if (!empty($vars['tagcloud']) && is_array($vars['tagcloud'])) {
+
+ if (get_context() === 'random')
+ shuffle($vars['tagcloud']);
+
+ $counter = 0;
+ $cloud = "";
+ $max = 0;
+ foreach($vars['tagcloud'] as $tag) {
+ if ($tag->total > $max) {
+ $max = $tag->total;
+ }
+ }
+ foreach($vars['tagcloud'] as $tag) {
+ if (!empty($cloud)) $cloud .= ",";
+ $size = round((log($tag->total) / log($max)) * 100) + 80;
+ if ($size < 100) $size = 100;
+ $cloud .= "<a href=\"" . $vars['url'] . "search/?tag=". urlencode($tag->tag) . $object . $subtype . "\" style=\"font-size: {$size}%\" title=\"".addslashes($tag->tag)." ({$tag->total})\" style=\"text-decoration:none;\">" . htmlentities($tag->tag, ENT_QUOTES, 'UTF-8') . "</a>";
+ }
+ $tags = explode(',', $cloud);
+ asort($tags);
+ $tags = implode(',', $tags);
+ echo str_replace(",", " ", $tags);
+ }
+
+?>
diff --git a/mod/tagcloud/views/default/tagcloud/css.php b/mod/tagcloud/views/default/tagcloud/css.php
new file mode 100644
index 000000000..00e972c8a
--- /dev/null
+++ b/mod/tagcloud/views/default/tagcloud/css.php
@@ -0,0 +1,16 @@
+<?php
+ /**
+ * Elgg tagcloud
+ */
+?>
+
+.tagcloud {
+ text-align:justify;
+ font-size:1.0em; /* default font-size for single page tagcloud */
+}
+.tagcloud.site a {
+ margin-right:0.2em;
+}
+.tagcloud.sidebar {
+ font-size:0.7em; /* reset default size for sidebar tagclouds */
+} \ No newline at end of file
diff --git a/mod/tagcloud/views/default/widgets/tagcloud/edit.php b/mod/tagcloud/views/default/widgets/tagcloud/edit.php
new file mode 100644
index 000000000..449266f13
--- /dev/null
+++ b/mod/tagcloud/views/default/widgets/tagcloud/edit.php
@@ -0,0 +1,20 @@
+<p>
+<?php
+
+ $num_items = $vars['entity']->num_items;
+ if (!isset($num_items)) $num_items = 30;
+
+ echo elgg_echo('tagcloud:widget:numtags');
+
+ echo elgg_view('input/pulldown', array(
+ 'internalname' => 'params[num_items]',
+ 'options_values' => array( '10' => '10',
+ '20' => '20',
+ '30' => '30',
+ '50' => '50',
+ '100' => '100',
+ ),
+ 'value' => $num_items
+ ));
+?>
+</p>
diff --git a/mod/tagcloud/views/default/widgets/tagcloud/view.php b/mod/tagcloud/views/default/widgets/tagcloud/view.php
new file mode 100644
index 000000000..dc9666185
--- /dev/null
+++ b/mod/tagcloud/views/default/widgets/tagcloud/view.php
@@ -0,0 +1,9 @@
+<?php
+
+ $num_items = $vars['entity']->num_items;
+ if (!isset($num_items)) $num_items = 30;
+
+ $prev_context = get_context();
+ echo display_tagcloud(1, $num_items, 'tags', '', '', page_owner());
+ set_context($prev_context);
+?>