Class ::xowiki::includelet::my-tags

::xowiki::includelet::my-tags[i] create ... \
           [ -__decoration (default "none") ] \
           [ -id id ] \
           [ -parameter_declaration (default " {-summary 1} ") ]

List the tags associated with the current page.
Documented Parameters:
summary
when specified, tag points to a summarized listing
Defined in packages/xowiki/tcl/includelet-procs.tcl

Class Relations

  • class: ::xowiki::IncludeletClass[i]
  • superclass: ::xowiki::Includelet[i]
::xowiki::IncludeletClass create ::xowiki::includelet::my-tags \
     -superclass ::xowiki::Includelet

Methods (to be applied on instances)

  • __decoration (setter)

  • id (setter)

  • parameter_declaration (setter)

  • render (scripted)

    :get_parameters
    
    set p_link [${:__including_page} pretty_link]
    set return_url [::xo::cc url]?[::xo::cc actual_query]
    set weblog_page [::$package_id get_parameter weblog_page:graph weblog]
    set save_tag_link [::$package_id make_link -link $p_link ${:__including_page}  save-tags return_url]
    set popular_tags_link [::$package_id make_link -link $p_link ${:__including_page}  popular-tags]
    
    set :tags [lsort [::xowiki::Page get_tags -user_id [::xo::cc user_id]  -item_id [${:__including_page} item_id] -package_id $package_id]]
    set entries [list]
    
    foreach tag ${:tags} {
      set href [export_vars -base [::$package_id package_url]/tag/$tag {summary}]
      lappend entries "<a rel='tag' href='[ns_quotehtml $href]'>[ns_quotehtml $tag]</a>"
    }
    set tags_with_links [join [lsort $entries] {, }]
    
    if {![info exists :id]} {
      set :id [::xowiki::Includelet html_id [self]]
    }
    set content [subst {
      <span class='your-tags'>#xowiki.your_tags_label#: $tags_with_links</span>
      (<a id='${:id}-edit-tags-control' href='.'>#xowiki.edit_link#</a>,
       <a id='${:id}-popular-tags-control' href='.'>#xowiki.popular_tags_link#</a>)
      <form id='${:id}-edit_tags' style='display: none' action="[ns_quotehtml $save_tag_link]" method='POST'>
      <div><input name='new_tags' type='text' value="[ns_quotehtml ${:tags}]"></div>
      </form>
      <span id='${:id}-popular_tags' style='display: none'></span><br >
    }]
    
    template::add_event_listener  -id ${:id}-edit-tags-control  -script [subst {document.getElementById("${:id}-edit_tags").style.display="block";}]
    
    template::add_event_listener  -id ${:id}-popular-tags-control  -script [subst {get_popular_tags("[ns_quotehtml $popular_tags_link]","${:id}");}]
    
    return $content