diff options
Diffstat (limited to 'mod/tagcloud/views/default')
-rw-r--r-- | mod/tagcloud/views/default/output/tagcloud.php | 47 | ||||
-rw-r--r-- | mod/tagcloud/views/default/tagcloud/css.php | 16 | ||||
-rw-r--r-- | mod/tagcloud/views/default/widgets/tagcloud/edit.php | 20 | ||||
-rw-r--r-- | mod/tagcloud/views/default/widgets/tagcloud/view.php | 9 |
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); +?> |