]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Extending default tagcloud view to include a link to all site tags.
authornickw <nickw@36083f99-b078-4883-b0ff-0f9b5a30f544>
Tue, 1 Jun 2010 16:22:51 +0000 (16:22 +0000)
committernickw <nickw@36083f99-b078-4883-b0ff-0f9b5a30f544>
Tue, 1 Jun 2010 16:22:51 +0000 (16:22 +0000)
Also fixing a bug where errant "," was prepended to tag list.

git-svn-id: http://code.elgg.org/elgg/trunk@6309 36083f99-b078-4883-b0ff-0f9b5a30f544

mod/tagcloud/start.php
mod/tagcloud/views/default/tagcloud/extend.php [new file with mode: 0644]
views/default/output/tagcloud.php

index d026163a0df7c051b32beea7b433ae5d953e6761..9cd9164f6f7a796f11d27ec7555b5ba83787c9ec 100644 (file)
@@ -1,18 +1,28 @@
 <?php
-       function tagcloud_init() {
-    add_widget_type('tagcloud', elgg_echo('tagcloud:widget:title'), elgg_echo('tagcloud:widget:description'));
-    
-       // Extend CSS
+/**
+ * 
+ */
+
+
+function tagcloud_init() {
+       add_widget_type('tagcloud', elgg_echo('tagcloud:widget:title'), elgg_echo('tagcloud:widget:description'));
+
        elgg_extend_view('css','tagcloud/css');
+       register_page_handler('tagcloud', 'tagcloud_page_handler');
+}
+
+function tagcloud_page_handler($page) {
+       global $CONFIG;
        
-       if(is_plugin_enabled('blog')) {
-               // extend blog sidebar with a tag-cloud
-       }
-       if(is_plugin_enabled('bookmarks')) {
-               // extend bkmrks sidebar with a tag-cloud
-       }
-                                    
-  }
+       switch ($page[0]) {
+               default:
+                       $title = elgg_view_title(elgg_echo('tagcloud:site:title'));
+                       $tags = display_tagcloud(0, 100, 'tags');
+                       $body = elgg_view_layout('one_column', $title . $tags);
                        
-  register_elgg_event_handler('init', 'system', 'tagcloud_init');      
-?>
+                       page_draw(elgg_echo('tagcloud:site:title'), $body);
+                       break;
+       }
+}
+
+register_elgg_event_handler('init', 'system', 'tagcloud_init');
diff --git a/mod/tagcloud/views/default/tagcloud/extend.php b/mod/tagcloud/views/default/tagcloud/extend.php
new file mode 100644 (file)
index 0000000..d70fa77
--- /dev/null
@@ -0,0 +1,5 @@
+<?php
+
+echo '<div>';
+echo "<a href=\"{$vars['url']}pg/tagcloud\">All site tags</a>";
+echo '</div>';
\ No newline at end of file
index 2296c01fe684adb36aa9304694ef7ab2d327f6bf..ced3f2f30c725f2a9278e420f42b02dd14037c43 100644 (file)
@@ -34,26 +34,32 @@ if (!empty($vars['tagcloud']) && is_array($vars['tagcloud'])) {
        $cloud = "";
        $max = 0;
        
-       $cloud .= "<h3>".elgg_echo('tagcloud')."</h3><div class='tagcloud'>";
+       $cloud .= '<h3>'.elgg_echo('tagcloud').'</h3>';
+       $cloud .= '<div class="tagcloud">';
 
        foreach($vars['tagcloud'] as $tag) {
                if ($tag->total > $max) {
                        $max = $tag->total;
                }
        }
+       
+       $list = '';
        foreach($vars['tagcloud'] as $tag) {
-               if (!empty($cloud)) {
-                       $cloud .= ", ";
+               if ($list != '') {
+                       $list .= ', ';
                }
                // protecting against division by zero warnings
                $size = round((log($tag->total) / log($max + .0001)) * 100) + 30;
                if ($size < 100) {
                        $size = 100;
                }
-               $url = $vars['url'] . "pg/search/?q=". urlencode($tag->tag) . "&search_type=tags{$type}{$subtype}";
-               $cloud .= "<a href=\"{$url}\" style=\"font-size: {$size}%\" title=\"".addslashes($tag->tag)." ({$tag->total})\" style=\"text-decoration:none;\">" . htmlentities($tag->tag, ENT_QUOTES, 'UTF-8') . "</a>";
+               $url = "{$vars['url']}pg/search/?q=". urlencode($tag->tag) . "&search_type=tags$type$subtype";
+               $list .= "<a href=\"$url\" style=\"font-size: $size%\" title=\"".addslashes($tag->tag)." ($tag->total)\" style=\"text-decoration:none;\">" . htmlentities($tag->tag, ENT_QUOTES, 'UTF-8') . "</a>";
        }
        
-       $cloud .= "</div>";
+       $cloud .= "$list</div>";
+       
+       $cloud .= elgg_view('tagcloud/extend');
+       
        echo $cloud;
 }
\ No newline at end of file