Changeset 1857
- Timestamp:
- 04/11/08 04:33:15 (15 months ago)
- Location:
- branches/release-34
- Files:
-
- 3 modified
-
lib/MT/App/CMS.pm (modified) (1 diff)
-
lib/MT/CMS/Dashboard.pm (modified) (1 diff)
-
tmpl/cms/widget/blog_stats_tag_cloud.tmpl (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/release-34/lib/MT/App/CMS.pm
r1852 r1857 308 308 tag_cloud => { 309 309 label => 'Tag Cloud', 310 handler => "${pkg}Dashboard::mt_blog_stats_tag_cloud_tab", 310 311 template => 'widget/blog_stats_tag_cloud.tmpl', 311 312 }, -
branches/release-34/lib/MT/CMS/Dashboard.pm
r1738 r1857 379 379 } 380 380 381 sub mt_blog_stats_tag_cloud_tab { 382 my ($app, $tmpl, $param) = @_; 383 384 my $blog = $app->blog; 385 my $blog_id = $blog->id if $blog; 386 387 my $terms = {}; 388 $terms->{blog_id} = $blog_id if $blog_id; 389 $terms->{object_datasource} = 'entry'; 390 my $args = {}; 391 $args->{group} = [ 'tag_id' ]; 392 $args->{sort} = 'count(*)'; 393 $args->{direction} = 'descend'; 394 $args->{limit} = 100; 395 396 my $iter = MT::ObjectTag->count_group_by($terms, $args); 397 my @tag_loop; 398 my $ntags = 0; 399 my $min = undef; 400 my $max = undef; 401 while (my ($count, $tag_id) = $iter->()) { 402 my $tag = MT::Tag->load($tag_id) or next; 403 next if $tag->is_private; # weed these from the dashboard 404 $ntags += $count; 405 $min = defined $min ? ($count < $min ? $count : $min) : $count; 406 $max = defined $max ? ($count > $max ? $count : $max) : $count; 407 push @tag_loop, { name => $tag->name, count => $count }; 408 } 409 410 my $factor; 411 if ($max - $min == 0) { 412 $min -= 6; 413 $factor = 1; 414 } else { 415 $factor = 5 / log($max - $min + 1); 416 } 417 $factor *= ($ntags / 6) if $ntags < 6; 418 419 foreach my $tag (@tag_loop) { 420 # now calc rank 421 my $rank; 422 my $count = $tag->{count}; 423 if ($count - $min + 1 == 0) { 424 $rank = 0; 425 } else { 426 $rank = 6 - int(log($count - $min + 1) * $factor); 427 } 428 $tag->{rank} = $rank; 429 } 430 431 @tag_loop = sort { $a->{name} cmp $b->{name} } @tag_loop; 432 $param->{tag_loop} = \@tag_loop; 433 } 434 381 435 sub mt_blog_stats_widget_comment_tab { 382 436 my ($app, $tmpl, $param) = @_; -
branches/release-34/tmpl/cms/widget/blog_stats_tag_cloud.tmpl
r1103 r1857 1 <mt:if name="blog_id"><mt:setvar name="blog_scope" value="$blog_id"><mt:else><mt:setvar name="blog_scope" value="all"></mt:if> 2 <mt:setvar name="tag_cloud" value="0"><MTTags blog_ids="$blog_scope" limit="1"><mt:setvar name="tag_cloud" value="1"></MTTags> 3 <mt:if name="tag_cloud"> 1 <mt:if name="tag_loop"> 4 2 <mt:setvarblock name="tabs" append="1"> 5 3 <li id="tag-tab" class="tab <mt:if name="tab" eq="tag">selected-tab</mt:if>" mt:tab="tag" mt:command="select-tab" onclick="return blogStatsTabSelect('tag');"><a href="javascript:void(0);"><span><__trans phrase="Tags"></span></a></li> … … 9 7 <div id="tag-cloud"> 10 8 <ul id="tag-cloud-list"> 11 < MTTags blog_ids="$blog_scope" top="100" sort_by="name">12 <li class="tag-<$ MTTagRank$>"><a href="javascript:void(0)" onclick="recentEntriesForTag('<MTTagName escape="js">', 'tag-cloud-recent-entries'); return false"><$MTTagName$></a></li>13 </ MTTags>9 <mt:loop name="tag_loop"> 10 <li class="tag-<$mt:var name="rank"$>"><a href="javascript:void(0)" onclick="recentEntriesForTag('<mt:var name="name" escape="js">', 'tag-cloud-recent-entries'); return false"><$mt:var name="name"$></a></li> 11 </mt:loop> 14 12 </ul> 15 13 </div>
