]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Added updated tagcloud plugin and added to core mods.
authorpete <pete@36083f99-b078-4883-b0ff-0f9b5a30f544>
Fri, 12 Mar 2010 18:10:54 +0000 (18:10 +0000)
committerpete <pete@36083f99-b078-4883-b0ff-0f9b5a30f544>
Fri, 12 Mar 2010 18:10:54 +0000 (18:10 +0000)
git-svn-id: http://code.elgg.org/elgg/trunk@5379 36083f99-b078-4883-b0ff-0f9b5a30f544

mod/blog/views/default/blog/sidebar_menu.php
mod/tagcloud/languages/de.php [new file with mode: 0644]
mod/tagcloud/languages/en.php [new file with mode: 0644]
mod/tagcloud/manifest.xml [new file with mode: 0644]
mod/tagcloud/start.php [new file with mode: 0644]
mod/tagcloud/tagcloud.php [new file with mode: 0644]
mod/tagcloud/views/default/output/tagcloud.php [new file with mode: 0644]
mod/tagcloud/views/default/tagcloud/css.php [new file with mode: 0644]
mod/tagcloud/views/default/widgets/tagcloud/edit.php [new file with mode: 0644]
mod/tagcloud/views/default/widgets/tagcloud/view.php [new file with mode: 0644]
views/default/css.php

index 1a6124dbd9aa61211bbdeb0fc7673b7714267105..b910b420bbe0fd538566247aa74270139f223cba 100644 (file)
@@ -34,9 +34,14 @@ $page_owner = page_owner_entity();
 if ($loggedin_user) {
 
 }
-
 ?>
 
 <ul class="submenu">
        <li><a href="">Drafts</a></li>
-</ul>
\ No newline at end of file
+</ul>
+
+<?php // temporarily force tag-cloud display
+       echo "<h3>Tagcloud</h3>";
+       echo "<div class='tagcloud sidebar'>".display_tagcloud(0, 100, 'tags')."</div>";
+       echo "<a href=\"{$vars['url']}mod/tagcloud/tagcloud.php\">All site tags</a>";
+?>
diff --git a/mod/tagcloud/languages/de.php b/mod/tagcloud/languages/de.php
new file mode 100644 (file)
index 0000000..1192202
--- /dev/null
@@ -0,0 +1,12 @@
+<?php
+
+       $german = array(
+               "tagcloud:widget:title" => "Schlagworte",
+               "tagcloud:widget:description" => "Schlagworte",
+               "tagcloud:widget:notags" => "Anzahl anzeigen",
+               "item:object" => "Alle Einträge",
+       );
+                                       
+       add_translation("de",$german);
+
+?>
diff --git a/mod/tagcloud/languages/en.php b/mod/tagcloud/languages/en.php
new file mode 100644 (file)
index 0000000..749a864
--- /dev/null
@@ -0,0 +1,14 @@
+<?php
+
+  $english = array(
+    'tagcloud:widget:title' => 'Tag Cloud',
+    'tagcloud:site:title' => 'Site Tag Cloud',
+    'tagcloud:widget:description' => 'Tag cloud',
+    'tagcloud:widget:numtags' => 'Number of tags to show',
+    'item:object' => 'Items',
+    'advancedsearchtitle' => '%s with tags matching %s',
+       );
+
+  add_translation('en',$english);
+
+?>
diff --git a/mod/tagcloud/manifest.xml b/mod/tagcloud/manifest.xml
new file mode 100644 (file)
index 0000000..7f08072
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<plugin_manifest>
+        <field key="author" value="Curverider, Cash Costello" />
+        <field key="version" value="1.0" />
+        <field key="description" value="Site-wide and widget-based tag clouds." />
+        <field key="website" value="http://www.elgg.org/" />
+        <field key="copyright" value="(C) Curverider 2008-2010" />
+               <field key="licence" value="GNU Public License version 2" />
+               <field key="elgg_version" value="2010030101" />
+</plugin_manifest>
diff --git a/mod/tagcloud/start.php b/mod/tagcloud/start.php
new file mode 100644 (file)
index 0000000..cb397d7
--- /dev/null
@@ -0,0 +1,18 @@
+<?php
+       function tagcloud_init() {
+    add_widget_type('tagcloud', elgg_echo('tagcloud:widget:title'), elgg_echo('tagcloud:widget:description'));
+    
+       // Extend CSS
+       extend_view('css','tagcloud/css');
+       
+       if(is_plugin_enabled('blog')) {
+               // extend blog sidebar with a tag-cloud
+       }
+       if(is_plugin_enabled('bookmarks')) {
+               // extend bkmrks sidebar with a tag-cloud
+       }
+                                    
+  }
+                       
+  register_elgg_event_handler('init', 'system', 'tagcloud_init');      
+?>
diff --git a/mod/tagcloud/tagcloud.php b/mod/tagcloud/tagcloud.php
new file mode 100644 (file)
index 0000000..564e839
--- /dev/null
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Display site tagcloud
+ **/
+// Load Elgg engine
+require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
+$title = elgg_view_title(elgg_echo('tagcloud:site:title'));
+$tags = "<div class='tagcloud site'>".display_tagcloud(0, 100, 'tags')."</div>";
+
+//select the correct canvas area
+$body = elgg_view_layout("one_column_with_sidebar", $title . $tags, $sidebar);
+               
+// Display page
+page_draw(sprintf(elgg_echo('tagcloud:site:title'),$page_owner->name),$body);
\ No newline at end of file
diff --git a/mod/tagcloud/views/default/output/tagcloud.php b/mod/tagcloud/views/default/output/tagcloud.php
new file mode 100644 (file)
index 0000000..aa3d840
--- /dev/null
@@ -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 (file)
index 0000000..00e972c
--- /dev/null
@@ -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 (file)
index 0000000..449266f
--- /dev/null
@@ -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 (file)
index 0000000..dc96661
--- /dev/null
@@ -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);
+?>
index f7ed1c2db7259ee12929b0e722fc0a2eab59a310..b323a9902a29cf5324e5f8441fc9320e818460c4 100644 (file)
@@ -267,6 +267,9 @@ h2 {
        width: 100%;
        height:90px;
        background-color: #4690D6;
+       background-image: url(<?php echo $vars['url']; ?>_graphics/header_shadow.png);
+       background-repeat: repeat-x;
+       background-position: bottom left;
 }
 #elgg_header_contents {
        width:990px;