[dw-free] let user select if tag count should be displayed in title or inline for tag modules.
[commit: http://hg.dwscoalition.org/dw-free/rev/2df6dee613e7]
http://bugs.dwscoalition.org/show_bug.cgi?id=805
Properties to control display of tag counts in the module, and in the tags
page (not in wizard)
Patch by
draigwen.
Files modified:
http://bugs.dwscoalition.org/show_bug.cgi?id=805
Properties to control display of tag counts in the module, and in the tags
page (not in wizard)
Patch by
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Files modified:
- bin/upgrading/s2layers/core2.s2
-------------------------------------------------------------------------------- diff -r d8f1ea234c7c -r 2df6dee613e7 bin/upgrading/s2layers/core2.s2 --- a/bin/upgrading/s2layers/core2.s2 Sun May 17 13:00:23 2009 +0000 +++ b/bin/upgrading/s2layers/core2.s2 Sun May 17 17:27:08 2009 +0000 @@ -1173,6 +1173,14 @@ property string comment_management_links des = "Select whether comment management links are printed as text or using the available icons"; values = "icons|icons|text|text-only|"; } +property string tags_page_count_type { + des = "Determines how the tag count is displayed on the tags page"; + values = "|(default for this tag display)|title|Title|number|Number|text|Text"; +} +property string module_tags_opts_count_type { + des = "Determines how the tag count is displayed in the module"; + values = "|(default for this tag display)|title|Title|number|Number|text|Text"; +} set use_shared_pic = false; set tags_aware = true; @@ -1181,7 +1189,8 @@ set userlite_interaction_links = "icons" set userlite_interaction_links = "icons"; set entry_management_links = "icons"; set comment_management_links = "icons"; - +set tags_page_count_type = ""; +set module_tags_opts_count_type = ""; ##=============================== ## Display settings - sidebar ##=============================== @@ -2836,25 +2845,33 @@ function print_tag_manage_link() "Prints print viewer_is_owner() ? "<div class=\"manage-tags-link\"><a href=\"" + $p.journal->tag_manage_url() + "\">$*text_tags_manage</a></div>" : ""; } -function print_list_tags(TagDetail[] tagslist, string{} opts) "Prints out a list of tags. Takes as arguments the taglist and a hash with optional arguments 'text_tags_uses' (property name to use for tags use), 'list-class' and 'item-class'" +function print_list_tags(TagDetail[] tagslist, string{} opts) "Prints out a list of tags. Takes as arguments the taglist and a hash with optional arguments 'list-class' and 'item-class'. 'print_uses' option can be 'number', 'text' or 'title' to determine whether to display the uses as a number, as full text, or in the link title. It defaults to full text" { var string list_class = $opts{"list-class"} ? """class="$opts{"list-class"}" """ : ""; var string item_class = $opts{"item-class"} ? """class="$opts{"item-class"}" """ : ""; + var string print_uses = $opts{"print_uses"} ? $opts{"print_uses"} : "text"; if (size $tagslist) { println """<ul $list_class>"""; foreach var TagDetail t ($tagslist) { - var string uses = get_plural_phrase($t.use_count, "text_tag_uses"); - println """<li $item_class><a href="$t.url" title="$uses">$t.name</a></li>\n"""; + if ($print_uses == "title") { + var string uses = get_plural_phrase($t.use_count, "text_tag_uses"); + println """<li $item_class><a href="$t.url" title="$uses">$t.name</a></li>\n"""; + } elseif ($print_uses == "number") { + println """<li $item_class><a href="$t.url">$t.name</a> [$t.use_count]</li>\n"""; + } else { + var string uses = get_plural_phrase($t.use_count, "text_tag_uses"); + println """<li $item_class><a href="$t.url">$t.name</a> - $uses</li>\n"""; + } } println """</ul>"""; } } -function print_cloud_tags(TagDetail[] tagslist, string{} opts) "Prints out a list of tags in a cloud. Takes as arguments the taglist and a hash with optional arguments 'text_tags_uses' (property name to use for tags use), 'min_size' (minimum size in ems, times 10), 'maz_size' (maximum size in ems, times 10), 'list-class' and 'item-class'" -{ - +function print_cloud_tags(TagDetail[] tagslist, string{} opts) "Prints out a list of tags in a cloud. Takes as arguments the taglist and a hash with optional arguments 'min_size' (minimum size in ems, times 10), 'maz_size' (maximum size in ems, times 10), 'list-class' and 'item-class'. 'print_uses' option can be 'number', 'text' or 'title' to determine whether to display the uses as a number, as full text, or in the link title. It defaults to the link title" +{ var string list_class = $opts{"list-class"} ? """class="$opts{"list-class"}" """ : ""; var string item_class = $opts{"item-class"} ? """class="$opts{"item-class"}" """ : ""; + var string print_uses = $opts{"print_uses"} ? $opts{"print_uses"} : "title"; var int min_size = $opts{"min_size"} ? int($opts{"maz_size"}) : 9; var int maz_size = $opts{"maz_size"} ? int($opts{"maz_size"}) : 20; @@ -2874,19 +2891,28 @@ function print_cloud_tags(TagDetail[] ta $tag_size = string((($maz_size-$min_size)*$t.use_count)/$high_count + $min_size); } var string tag_size_em = $tag_size->substr(0,($tag_size->length())-1) + "." + $tag_size->substr(($tag_size->length())-1,1) + "em"; - var string uses = get_plural_phrase($t.use_count, "text_tag_uses"); - println """<span $item_class style="font-size: $tag_size_em;"><a href="$t.url" title="$uses">$t.name</a></span> \n"""; + if ($print_uses == "number") { + println """<span $item_class style="font-size: $tag_size_em;"><a href="$t.url">$t.name</a> [$t.use_count]</span>\n"""; + } elseif ($print_uses == "text") { + var string uses = get_plural_phrase($t.use_count, "text_tag_uses"); + println """<span $item_class style="font-size: $tag_size_em;"><a href="$t.url">$t.name</a> - $uses</span>\n"""; + } else { + var string uses = get_plural_phrase($t.use_count, "text_tag_uses"); + println """<span $item_class style="font-size: $tag_size_em;"><a href="$t.url" title="$uses">$t.name</a></span>\n"""; + } + } println """</div>"""; } -function print_multilevel_tags(TagDetail[] tagslist, string{} opts) "Prints out a list of multilevel tags. Takes as arguments the taglist and a hash with optional arguments 'text_tags_uses' (property name to use for tags use), 'list-class' and 'item-class'" +function print_multilevel_tags(TagDetail[] tagslist, string{} opts) "Prints out a list of multilevel tags. Takes as arguments the taglist and a hash with optional arguments 'list-class' and 'item-class'. 'print_uses' option can be 'number', 'text' or 'title' to determine whether to display the uses as a number, as full text, or in the link title. It defaults to uses as a number" { if (size($tagslist) < 1) { return; } var string list_class = $opts{"list-class"} ? """class="$opts{"list-class"}" """ : ""; var string item_class = $opts{"item-class"} ? """class="$opts{"item-class"}" """ : ""; + var string print_uses = $opts{"print_uses"} ? $opts{"print_uses"} : "number"; var string[] closing_html; var string[] prev_tags; @@ -2914,12 +2940,14 @@ function print_multilevel_tags(TagDetail # If we're on a tag's last tier, we need to return a link to the tag, # otherwise plain text is returned. if (size $tags == ($pos + 1)) { - $tier_code = """<a rel="tag" href="$t.url">$tier</a>"""; - if ($opts{"text_uses"}) { - var string uses = get_plural_phrase($t.use_count, $opts{"text_uses"}); - $tier_code = $tier_code + " - $uses"; + if ($print_uses == "title") { + var string uses = get_plural_phrase($t.use_count, "text_tag_uses"); + $tier_code = """<a rel="tag" href="$t.url" title="$uses">$tier</a>"""; + } elseif ($print_uses == "text") { + var string uses = get_plural_phrase($t.use_count, "text_tag_uses"); + $tier_code = """<a rel="tag" href="$t.url">$tier</a> - $uses"""; } else { - $tier_code = $tier_code + " [${t.use_count}]"; + $tier_code = """<a rel="tag" href="$t.url">$tier</a> [${t.use_count}]"""; } } else { @@ -3199,19 +3227,19 @@ function print_module_tags() { } elseif ($*module_tags_opts_type == "multi") { open_module("tags_multilevel", $title, $p.view_url{"tags"}); - print_multilevel_tags($tags, { "list-class" => "module-list", "item-class" => "module-list-item" }); + print_multilevel_tags($tags, { "list-class" => "module-list", "item-class" => "module-list-item", "print_uses" => $*module_tags_opts_count_type }); print_tag_manage_link(); close_module(); } elseif ($*module_tags_opts_type == "cloud") { open_module("tags_cloud", $title, $p.view_url{"tags"}); - print_cloud_tags($tags, { "list-class" => "module-list", "item-class" => "module-list-item" }); + print_cloud_tags($tags, { "list-class" => "module-list", "item-class" => "module-list-item", "print_uses" => $*module_tags_opts_count_type }); print_tag_manage_link(); close_module(); } else { open_module("tags_list", $title, $p.view_url{"tags"}); - print_list_tags($tags, { "list-class" => "module-list", "item-class" => "module-list-item" }); + print_list_tags($tags, { "list-class" => "module-list", "item-class" => "module-list-item", "print_uses" => $*module_tags_opts_count_type }); print_tag_manage_link(); close_module(); } @@ -4565,15 +4593,15 @@ function TagsPage::print_body print safe "<div class='tags-container'><h2>$*text_tags_page_header</h2>"; if ($*tags_page_type == "multi") { - print_multilevel_tags($.tags, { "list-class" => "ljtaglist", "text_uses" => "text_tag_uses" }); + print_multilevel_tags($.tags, { "list-class" => "ljtaglist", "print_uses" => $*tags_page_count_type }); print_tag_manage_link(); } elseif ($*tags_page_type == "cloud") { - print_cloud_tags($.tags, { "list-class" => "ljtaglist" }); - print_tag_manage_link(); - } - else { - print_list_tags($.tags, { "list-class" => "ljtaglist" }); + print_cloud_tags($.tags, { "list-class" => "ljtaglist", "print_uses" => $*tags_page_count_type }); + print_tag_manage_link(); + } + else { + print_list_tags($.tags, { "list-class" => "ljtaglist", "print_uses" => $*tags_page_count_type }); print_tag_manage_link(); } --------------------------------------------------------------------------------