Index: /branches/release-36/php/lib/block.mttags.php
===================================================================
--- /branches/release-36/php/lib/block.mttags.php (revision 1926)
+++ /branches/release-36/php/lib/block.mttags.php (revision 2097)
@@ -15,4 +15,10 @@
         $blog_id = $ctx->stash('blog_id');
         $args['blog_id'] = $ctx->stash('blog_id');
+        if (isset($args['top'])) {
+            $post_sort_by = $args['sort_by'];
+            $post_sort_order = $args['sort_order'];
+            $args['sort_by'] = 'rank';
+            $args['sort_order'] = 'descend';
+        }
         if (isset($args['sort_by'])) {
             $s = $args['sort_by'];
@@ -48,4 +54,28 @@
             if (isset($args['limit'])) {
                 $tags = array_slice($tags, 0, $args['limit']);
+            }
+
+            // Handle ordering based on 'top' attribute
+            // implies sorting by rank/descend and limit by # requested
+            // then, resort based on attributes or sane defaults
+            if (isset($args['top'])) {
+                $tags = array_slice($tags, 0, $args['top']);
+                // now, resort by original sort order
+                $post_sort_by or $post_sort_by = 'name';
+                if ($post_sort_by == 'name') {
+                    $post_sort_order or $post_sort_order = 'ascend';
+                    require_once("MTUtil.php");
+                    usort($tags, 'tagarray_name_sort');
+                    if ($post_sort_order && ($post_sort_order == 'descend')) {
+                        $tags = array_reverse($tags);
+                    }
+                } elseif (($post_sort_by == 'rank') || ($post_sort_by == 'count')) {
+                    $post_sort_order or $post_sort_order = 'descend';
+                    // we're already sorted by rank; just check if
+                    // order is not descending
+                    if ($post_sort_order != 'descend') {
+                        $tags = array_reverse($tags);
+                    }
+                }
             }
         }
@@ -83,3 +113,2 @@
     return $content;
 }
-?>
